State of front-end tooling and infra
๐ค Why should I care about tooling and infra?
- The Web is moving fast
- JavaScript is becoming faster? But how?
- Et al. apps are becoming faster
- We should know how to pick tooling
- Developer experience
๐คฏ Few Thiiiings
- JavaScript Runtimes ๐๏ธ
- Transpilers ๐
- Bundlers ๐งต
- Build systems ๐จ
- Architectures: Micro front-ends, Islands ๐๏ธ
- Vite, React RSC, Next, Remix, Astro, SvelteKit, Qwik ๐ฟ
- Edge computing ๐ค
๐ฆ Rust
- Systems programming language - control of low-level primitives
- Statically typed
- Memory safe
- Compiled
- No garbage collection
- Different memory management model - ownership and borrow
Go
- Statically typed
- Memory safe
- Garbage collected
- Concurrent
- Compiled
- Efficient
- Simple syntax
- Built-in support for testing and benchmarking
๐๏ธ JavaScript Runtimes
๐ Transpilers
Transpiler-Architecture.001.jpeg
ref: https://tomassetti.me/how-to-write-a-transpiler/
- Babel
- ESBuild https://esbuild.github.io/ https://github.com/evanw/esbuild/blob/main/internal/ast/ast.go
- SWC
๐งต Bundlers
webpack.png
๐จ Build Systems
๐๏ธ Architectures
๐ฟ Vite, React RSC, Next, Remix, Astro, SvelteKit, Qwik
- Vite
- React RSC https://www.patterns.dev/posts/react-server-components https://beta.nextjs.org/docs/rendering/server-and-client-components
- Next
- Remix
- Astro
- Qwik
- SvelteKit