{"id":13469625,"url":"https://github.com/exhibitionist-digital/ultra","last_synced_at":"2025-05-14T01:07:33.201Z","repository":{"id":37737986,"uuid":"381427046","full_name":"exhibitionist-digital/ultra","owner":"exhibitionist-digital","description":"Zero-Legacy Deno/React Suspense SSR Framework","archived":false,"fork":false,"pushed_at":"2024-10-28T09:07:24.000Z","size":9725,"stargazers_count":2986,"open_issues_count":30,"forks_count":68,"subscribers_count":17,"default_branch":"main","last_synced_at":"2025-04-03T06:06:13.710Z","etag":null,"topics":["0-legacy","deno","esm","no-bundle","react","ssr","streaming","suspense","typescript","zero-legacy"],"latest_commit_sha":null,"homepage":"https://ultrajs.dev","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/exhibitionist-digital.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":".github/FUNDING.yml","license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null},"funding":{"github":["mashaal"]}},"created_at":"2021-06-29T16:16:27.000Z","updated_at":"2025-04-02T04:31:59.000Z","dependencies_parsed_at":"2024-01-05T21:00:16.049Z","dependency_job_id":"6edf32ce-3531-47bd-955b-e721df12814b","html_url":"https://github.com/exhibitionist-digital/ultra","commit_stats":{"total_commits":1034,"total_committers":24,"mean_commits":"43.083333333333336","dds":0.5290135396518375,"last_synced_commit":"300e27ce309db9f1aa41aaf33c70e068d3da131c"},"previous_names":[],"tags_count":82,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exhibitionist-digital%2Fultra","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exhibitionist-digital%2Fultra/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exhibitionist-digital%2Fultra/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/exhibitionist-digital%2Fultra/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/exhibitionist-digital","download_url":"https://codeload.github.com/exhibitionist-digital/ultra/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248202125,"owners_count":21064266,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["0-legacy","deno","esm","no-bundle","react","ssr","streaming","suspense","typescript","zero-legacy"],"created_at":"2024-07-31T15:01:47.394Z","updated_at":"2025-04-10T10:48:13.009Z","avatar_url":"https://github.com/exhibitionist-digital.png","language":"TypeScript","funding_links":["https://github.com/sponsors/mashaal"],"categories":["TypeScript","typescript","📦 Legacy \u0026 Inactive Projects","Modules"],"sub_categories":["Frontend framework"],"readme":"\u003cdiv align=\"center\"\u003e\n\u003cbr /\u003e\n\u003cimg src=\"https://raw.githubusercontent.com/exhibitionist-digital/ultra/main/examples/ultra-website/public/ultra.svg\" height=\"250\" /\u003e\n\n### Ultra 2.0\n\n#### Zero-Legacy Deno/React Suspense SSR Framework\u003csup\u003e*\u003c/sup\u003e\n\n[![Discord][discord-badge]][discord]\n![GitHub Workflow Status](https://github.com/exhibitionist-digital/ultra/actions/workflows/ci.yml/badge.svg)\n[![Deno module](https://shield.deno.dev/x/ultra)](https://deno.land/x/ultra)\n![Deno compatibility](https://shield.deno.dev/deno/^1.27.1)\n\n\u003c/div\u003e\n\n\\* If you want to get very meta (not facebook), **Ultra** can be viewed as a\ntiny bridge to utilise native browser features 🌐 whilst using popular front-end\nlibraries. 🧰\n\n## 🧙 Start your journey\n\nHere's a basic **Ultra** project to set you on your way.\n\n```sh\ndeno run -A -r https://deno.land/x/ultra/create.ts\n```\n\n## ✨ What's new\n\n**Ultra** allows you to write web-apps which massively simplify your tool chain.\nYou write ESM, we ship ESM. Where we are going, there is no \"bundling\" (it feels\nso 2018 just saying that word).\n\n- Less opinionated, BYO routing, styling, data fetching, and head libraries\n- Support for much of the React ecosystem by custom server/client\n  controls\u003csup\u003e**\u003c/sup\u003e\n- Native import maps in browser 🤖\n- Localised import maps for production 🔥\n- API routing\n- Overhaul of internal source code\n- Updated Deno Deploy support\n\n\\*\\* _Examples include (but not limited to) `react-query` `twind` `stitches`\n`react-router` `wouter` `mdx`_ **@__@**\n\n**Does Ultra _'ship JS'_?**\n\nYes, **Ultra** creates rich web applications which allow complex client-side\nrouting, allow components to persist through route changes (media players,\ninteractive elements, etc).\n\nOur goal is to both write _AND_ ship source code that works the same way on\nserver/runtime and client. We view the browser as more than just a \"target\".\nBrowser is life, and JavaScript is good.\n\n**Can I use TypeScript and/or JSX?**\n\nIf you want.\n\n**What native browser features should we all be using more?**\n\nUnbundled ESM, service workers, universal import maps, cascading style sheets.\n\n**Ultra always has been (and always will be) powered by the following\nhot-takes:**\n\n- **ESM** is non-negotiable in {currentYear}\n- **SSR** is non-negotiable in {currentYear}\n- Bundling is an **anti-pattern** in {currentYear}\n- **Data can be requested anywhere, and is accessible on the server, always**\n- **Lazy routing with dynamic imports** trumps FS routing\n- **Less magic** in tooling and frameworks is a good thing\n- **Simplify** your workflow and tech stack at all costs - life is too short\n- **Streams** are neat\n\n---\n\n### 👨‍👩‍👧‍👦 Community\n\nWe have the [Discord](https://discord.gg/XDC5WxGHb2). Come say 'sup.\n\n### 🧟 Contributions\n\nThe **Ultra** community welcomes outside contributions. See the\n[Contributor Guidelines](./CONTRIBUTING.md) for details.\n\n### 🦥 Wishlist\n\nHere some things we are interested in for the future of JS and/or Ultra:\n\n- React [ESM exports](https://github.com/facebook/react/issues/10021)\n- [AbTs: Anything but TypeScript](https://tc39.es/proposal-type-annotations)\n- Libraries supporting\n  [optimal JavaScript module design](https://jaydenseric.com/blog/optimal-javascript-module-design)\n- React [resources](https://github.com/reactjs/rfcs/pull/219) for streaming head\n  management\n- React [async/await support](https://github.com/reactjs/rfcs/pull/229)\n- [Native import maps](https://caniuse.com/import-maps) support in Safari and\n  Firefox\n- [Dynamic import](https://github.com/denoland/deploy_feedback/issues/1) support\n  on Deno Deploy\n- [Native CSS modules](https://css-tricks.com/css-modules-the-native-ones/)\n- More and better ESM CDNs\n\n**Thank you for going on this journey with us.**\n\n[docs-badge]: https://img.shields.io/github/v/release/exhibitionist-digital/ultra?label=Docs\u0026logo=deno\u0026color=000000\u0026\n[docs]: https://ultrajs.dev/docs\n[discord-badge]: https://img.shields.io/discord/956480805088153620?logo=discord\u0026label=Discord\u0026color=000000\u0026\u0026logoColor=ffffff\n[discord]: https://discord.gg/XDC5WxGHb2\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexhibitionist-digital%2Fultra","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fexhibitionist-digital%2Fultra","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fexhibitionist-digital%2Fultra/lists"}