ULTRA

Modern Streaming React Framework

ultrajs.dev

GitHub Workflow Status


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 to importMap
  • 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.