Ultra is a web framework that leans hard into your browser’s native features. Embrace the future of ES Modules, Import Maps, and Web Streams. All while supporting some of the non-standards that many normal people love for some reason (JSX and TypeScript).
It’s driven by the following hot-takes:
- ESM is non-negotiable in {currentYear}
- SSR is non-negotiable in {currentYear}
- Bundling is an anti-pattern in {currentYear}
- Data can be requested anywhere, and is accessible on the server, always
- Lazy routing with dynamic imports trumps FS routing
- Less magic in tooling and frameworks is a good thing
- Simplify your workflow and tech stack at all costs - life is too short
- Streams are neat
v0.7.0
This is a near full rewrite of Ultra. It includes:
- Removal of Oak, in favour of
std/http
library. This makes it heaps easier to deploy to multiple targets - Addition of
preloadmodule
link
header attributes for core and application level assets - Main
app
entry point added toimportMap
- Deno Deploy support via GitHub Actions
- Fly/Docker support
- Example projects moved into their own repo for easier hacking
v1.0.0 Roadmap (+ Beyond)
As we await the official release of React 18, here some things we are interested in for the future of Ultra:
- Deno vendor: Serve remote packages locally
- Vercel support
- React 18 ESM support
- Native import maps: Browser support for import maps is still a bit sketchy. Instead of using import map polyfills, Ultra inlines your imports directly into the served ES modules.
- Simpler alternatives to esm.sh
- Dynamic import support on Deno Deploy
- Native CSS modules
- A custom
request
context hook - Meaningful Puppeteer tests
Thank you for going on this journey with us.