Skip to content

exhibitionist-digital/ultra

main
Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
July 12, 2023 02:38
October 18, 2023 08:39
app
October 18, 2023 08:39
lib
October 18, 2023 08:39
September 2, 2022 01:02
November 15, 2022 15:21
September 13, 2022 05:34
March 24, 2022 02:43
March 3, 2023 19:00
September 19, 2023 03:51

Ultra 2.0

Zero-Legacy Deno/React Suspense SSR Framework*

Discord GitHub Workflow Status Deno module Deno compatibility

* If you want to get very meta (not facebook), Ultra can be viewed as a tiny bridge to utilise native browser features 🌐 whilst using popular front-end libraries. 🧰

πŸ§™ Start your journey

Here's a basic Ultra project to set you on your way.

deno run -A -r https://deno.land/x/ultra/create.ts

✨ What's new

Ultra allows you to write web-apps which massively simplify your tool chain. You write ESM, we ship ESM. Where we are going, there is no "bundling" (it feels so 2018 just saying that word).

  • Less opinionated, BYO routing, styling, data fetching, and head libraries
  • Support for much of the React ecosystem by custom server/client controls**
  • Native import maps in browser πŸ€–
  • Localised import maps for production πŸ”₯
  • API routing
  • Overhaul of internal source code
  • Updated Deno Deploy support

** Examples include (but not limited to) react-query twind stitches react-router wouter mdx @__@

Does Ultra 'ship JS'?

Yes, Ultra creates rich web applications which allow complex client-side routing, allow components to persist through route changes (media players, interactive elements, etc).

Our goal is to both write AND ship source code that works the same way on server/runtime and client. We view the browser as more than just a "target". Browser is life, and JavaScript is good.

Can I use TypeScript and/or JSX?

If you want.

What native browser features should we all be using more?

Unbundled ESM, service workers, universal import maps, cascading style sheets.

Ultra always has been (and always will be) powered 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

πŸ‘¨β€πŸ‘©β€πŸ‘§β€πŸ‘¦ Community

We have the Discord. Come say 'sup.

🧟 Contributions

The Ultra community welcomes outside contributions. See the Contributor Guidelines for details.

πŸ¦₯ Wishlist

Here some things we are interested in for the future of JS and/or Ultra:

Thank you for going on this journey with us.