Our great sponsors
-
SurveyJS
Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.
-
Snowpack
Discontinued ESM-powered frontend build tool. Instant, lightweight, unbundled development. ✌️ [Moved to: https://github.com/FredKSchott/snowpack] (by withastro)
-
create-react-app-esbuild
Use esbuild in your create-react-app for faster compilation, development and tests
-
WorkOS
The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.
He said in the past that he's not interested in implementing HMR[0]
[0] https://github.com/evanw/esbuild/issues/97
Shameless plug: esbuild-config allows you to declare your esbuild config as a JSON file.
https://github.com/bpierre/esbuild-config
How does this compare to https://www.snowpack.dev/ ?
Unfortunately it's not officially supported (as usual in CRA world), so you have to resort to one of the config rewriters. I've been using this⁰ and only had one problem with numeric enums in TypeScript. I don't remember the exact issue, but it was my own stupidity, and was easy to fix.
[0] https://github.com/pradel/create-react-app-esbuild/tree/main...
This is written in Go and is orders of magnitude faster at bundling. Snowpack is just regular JS and isn't a slouch by any means, but really can't compete with native code. Snowpack has a very nice developer experience with automatic hot module reloading, big plugin ecosystem, and even fancy stuff like streaming npm imports (i.e. import directly from your HTML and never even worry or care about npm install commands again).
Something to check out is vite, which is kind of like if esbuild and snowpack combined forces--it uses esbuild for fast bundling but adds a lot of similar dev server niceties as snowpack: https://github.com/vitejs/vite
We love esbuild and we use it internally for SST https://github.com/serverless-stack/serverless-stack.
The work Evan does is seriously impressive.
React & next.js are worth evaluating. It's a super powerful full stack with everything from server side rendered data (REST APIs even) all the way to complete SPAs, all using the same react components. It's a slick little swiss-army knife that can make anything from a basic blog with markdown content, to a static marketing page, to a full client-first PWA experience.
MDX is another neat step, it's markdown + react components and fits in very well with next.js: https://github.com/hashicorp/next-mdx-enhanced
Vue, and Svelte to just get an idea of what other components systems are like. They're all equally capable and just have different tradeoffs and styles. Keep an eye on Svelte in particular as its next.js-like system (SvelteKit) is working on a major revamp to be serverless-first and is quite interesting. Once you learn one component system it's easy to switch between them all--they're all cribbing and building on top of each other's ideas. The whole space is innovating in a great way.
Web components are tood to learn and compare to component frameworks above. It's still a changing space but points to a nice future where we can all just publish and share components.
For current projects relying a lot on babel - what are the options?
If anyone uses relay, I started an issue here about using it with next-gen bundlers like esbuild: https://github.com/facebook/relay/issues/3319
For those who don't know, relay is a graphql system by facebook. It seems dependent on babel (to my knowledge?) Two developments on this front:
1. @sciyoshi built an esbuild proof of concept for relay: https://gist.github.com/sciyoshi/34e5865f2523848f0d60b4cdd49...
2. Meanwhile, the compiler has been being quietly rewritten in rust: https://github.com/facebook/relay/tree/master/compiler
They're also claiming that it will include type generation. Time will tell.
One thing I haven't seen yet is SCSS and CSS Modules. It looks like it'd be emotion+styled-components or styled-system, which would be a big move.