shadow-cljs
vite
shadow-cljs | vite | |
---|---|---|
20 | 791 | |
2,204 | 64,913 | |
- | 1.1% | |
9.1 | 9.9 | |
2 days ago | 1 day ago | |
Clojure | TypeScript | |
Eclipse Public License 1.0 | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
shadow-cljs
-
A History of Clojure (2020) [pdf]
* Single-Page App: shadow-cljs for the build concerns (https://github.com/thheller/shadow-cljs), Reagent with Re-frame for complex/large app (https://reagent-project.github.io and https://github.com/day8/re-frame). Even if we now prefer using HTMX (https://htmx.org) and server-side rendering (Hiccup way of manipulating HTML is just amazing, https://github.com/weavejester/hiccup).
-
Supercharge Your JS/TS Project with ClojureScript REPL
Now, add shadow-cljs.
-
[ANN] Malli 0.11.0 is out - a data-driven data specification library for Clojure/Script
Work with latest shadow-cljs (& closure compiler) #890
-
Cherry: ClojureScript to ES6 Module Compiler
You can already develop with ClojureScript on the back-end. A popular ClojureScript compiler, Shadow-CLJS (https://github.com/thheller/shadow-cljs) has a target for Node among many others.
-
Why metabase and circle are not using cljs (mostly)?
Hi, I'm looking at Clojurescript again after not having paid attention to it after several years. Are you saying that shadow-cljs does something to deal with the, "I have no idea if this library I want to use works with the Google Closure compiler," problem? If so, what? I'd really like to know.
- Clojure needs a Rails, but not for the reason you think
- shadow.css - CSS-in-CLJS
-
Rich Hickey – open-source is Not About You
I don't know, the community in general tend to use macros that are well written. I keep seeing core.async being used (`go`) in Clojure projects, and also various macros for writing HTTP servers (compojure being a popular one which main code interface is a macro `defroutes`).
ClojureScript projects also routinely add support for making asynchronous code look synchronous (like `async/await` in vanilla JavaScript) via macros. shadow-cljs's `js-await` being one of the well-written ones: https://github.com/thheller/shadow-cljs/blob/49fb078b834e64f...
Usage:
(defn my-async-fn [foo]
- Finalmente, depois de dois aninhos no ventre, minha empresa nasceu 👶🚀
-
ClojureDocs – Community-powered documentation and examples for Clojure
Unclear what "rendering a webpage" entails exactly.
If you want to do frontend development, you can give shadow-cljs a try, the quickstart is pretty quick: https://github.com/thheller/shadow-cljs#quick-start
If you want to just render server-side HTML, something like compojure (HTTP routing) and hiccup (Clojure data -> HTML) is pretty easy and quick to get started with (https://gist.github.com/zehnpaard/2071c3f55ed319aa8528d54d90...).
If you want to generate HTML files to serve with nginx/whatever, you can just use hiccup and `(spit)` the resulting HTML to files on disk.
vite
-
FlowDiver: The Road to SSR - Part 1
Given our team's collective proficiency within the React ecosystem, we decided to leverage this expertise for our project. Initially, we contemplated utilizing Next.js; however, due to the limited practical experience with this technology among key engineers and the pressing timeline to develop the first prototype, we opted for a Single Page Application(SPA) approach. For bundling, we selected Vite, primarily due to its super fast build times, simplicity of configuration, and potential for a nearly seamless transition to server-side rendering.
-
Inflight Magazine no. 9
We are continuing to add new project templates for various types of projects, and we've recently created one for the infamous combination of React with Vite tooling.
-
Top 12+ Battle-Tested React Boilerplates for 2024
Vite focuses on providing an extremely fast development server and workflow speed in web development. It uses its own ES module imports during development, speeding up the startup time.
-
Vite vs Nextjs: Which one is right for you?
Vite and Next.js are both top 5 modern development framework right now. They are both great depending on your use case so we’ll discuss 4 areas: Architecture, main features, developer experience and production readiness. After learning about these we’ll have a better idea of which one is best for your project.
-
Setup React Typescript with Vite & ESLint
import { defineConfig } from 'vite' import react from '@vitejs/plugin-react-swc' import path from 'path' // https://vitejs.dev/config/ export default defineConfig({ plugins: [react()], server: { port: 3000 }, css: { devSourcemap: true }, resolve: { alias: { '~': path.resolve(__dirname, './src') } } })
-
Approaches to Styling React Components, Best Use Cases
I am currently utilizing Vite:
-
Getting started with TiniJS framework
Homepage: https://vitejs.dev/
-
Use CSS Variables to style react components on demand
Without any adding any dependencies you can connect react props to raw css at runtime with nothing but css variables (aka "custom properties"). If you add CSS modules on top you don't have to worry about affecting the global scope so components created in this way can be truly modular and transferrable. I use this with vite.
-
RubyJS-Vite
Little confused as to why it has vite in it‘s name, it seems unrelated to https://vitejs.dev/
-
Ask HN: How do we include JavaScript scripts in a browser these days?
it says in their docs that they recommend Vite https://vitejs.dev/
it goes like this.
1. you create a repo folder, you cd into it.
2. you create a client template using vite which can be plain typescript, or uses frameworks such as react or vue, at https://vitejs.dev/guide/
3. you cd in that client directory, you npm install, then you npm run dev, it should show you that it works at localhost:5173
4. you follow the instructions on your url, you do npm install @web3modal/wagmi @wagmi/core @wagmi/connectors viem
5. you follow the further instructions.
> It seems like this is for npm or yarn to pull from a remote repository maintained by @wagmi for instance. But then what?
you install the wagmi modules, then you import them in your js code, those code can run upon being loaded or upon user actions such as button clicks
> Do I just symlink to the node_modules directory somehow? Use browserify? Or these days I'd use webpack or whatever the cool kids are using these days?
no need for those. browserify is old school way of transpiling commonjs modules into browser-compatible modules. webpack is similar. vite replaces both webpack and browserify. vite also uses esbuild and swc under the hood which replaces babel.
> I totally get how node package management works ... for NODE. But all these client-side JS projects these days have docs that are clearly for the client-side but the ES2015 module examples they show seem to leave out all instructions for how to actually get the files there, as if it's obvious.
pretty much similar actually. except on client-side, you have src and dist folders. when you run "npm run build" vite will compile the src dir into dist dir. the outputs are the static files that you can serve with any http server such as npx serve, or caddy, or anything really.
> What gives? And finally, what exactly does "browserify" do these days, since I think Node supports both ES modules and and CJS modules? I also see sometimes UMD universal modules
vite supports both ecmascript modules and commonjs modules. but these days you'll just want to stick with ecmascript which makes your code consistently use import and export syntax, and you get the extra benefit of it working well with your vscode intellisense.
> In short, I'm a bit confused how to use package management properly with browsers in 2024: https://modern-web.dev/guides/going-buildless/es-modules/
if people want plain js there is unpkg.com and esm.sh way, but the vite route is the best for you as it's recommended and tested by the providers of your modules.
> And finally, if you answer this, can you spare a word about typescript? Do we still need to use Babel and Webpack together to transpile it to JS, and minify and tree-shake, or what?
I recommend typescript, as it gives you better type-safety and better intellisense, but it really depends. If you're new to it, it can slow you down at first. But as your project grows you'll eventually see the value of it. In vite there are options to scaffold your project in pure js or ts.
What are some alternatives?
helix - A simple, easy to use library for React development in ClojureScript.
Next.js - The React Framework
reagent - A minimalistic ClojureScript interface to React.js
parcel - The zero configuration build tool for the web. 📦🚀
biff - A Clojure web framework for solo developers.
esbuild - An extremely fast bundler for the web
storybook - Storybook is a frontend workshop for building UI components and pages in isolation. Made for UI development, testing, and documentation.
swc - Rust-based platform for the Web
re-frame - A ClojureScript framework for building user interfaces, leveraging React
astro - The web framework for content-driven websites. ⭐️ Star to support our work!
mkcert - A simple zero-config tool to make locally trusted development certificates with any names you'd like.
Rollup - Next-generation ES module bundler