GitShow/remix-run/remix
remix-run

remix

Build Better Websites. Create modern, resilient user experiences with web fundamentals.

by remix-run
Star on GitHubForkWebsitenpm

TypeScript

33.3k stars2.8k forks775 contributorsActive · 2d agoSince 2020ui@0.5.0MIT

Meet the team

See all 775 on GitHub →
mjackson
mjackson2.5k contributions
brophdawg11
brophdawg11925 contributions
remix-run-bot
remix-run-bot695 contributions
ryanflorence
ryanflorence546 contributions
chaance
chaance536 contributions
pcattori
pcattori433 contributions
MichaelDeBoey
MichaelDeBoey403 contributions
mcansh
mcansh402 contributions

Languages

View on GitHub →
TypeScript99.7%
JavaScript0.2%
CSS0%
Shell0%
HTML0%
Lua0%

Commit activity

Last 12 weeks · 170 commits

Full graph →

Community health

3 of 6 standards met

Community profile →
62
✓README✓License✓Contributing○Code of Conduct○Issue Template○PR Template

Recent PRs & issues

Active · Last activity 2d ago
See all on GitHub →
brophdawg11
Add client-rendered SPA routingOpenPR

Replaces https://github.com/remix-run/remix/pull/11629 Adds a first-class client-rendered SPA boundary without changing the fetch router's standard to contract. Add and the entrypoint with two application-facing APIs: installs middleware, and connects an ordinary fetch router to the browser UI runtime. Keep the in-memory SPA response carrier behind the render middleware. It is browser-only, lazily creates its , and throws if used in a non-browser environment. Reuse top-frame navigation for the initial route, links, forms, history traversal, cancellation, named-frame targeting, and same-origin redirects with Fetch method semantics and a 10-redirect limit. Make include the initial top-frame reload, with an optional live Remix node fallback displayed while that route resolves. Add package docs, release notes, browser/server coverage, and a Vite SPA demo covering deep links, superseded navigations, contextual form pending UI, and push/replace history behavior.

brophdawg11 · 2d ago
brophdawg11
Add mount-scoped middleware to fetch routerOpenPR

Controller middleware applies only to actions directly owned by that controller. This adds an explicit mount-scoped middleware boundary so shared policy continues across multiple controllers and nested mounts. Adds a backwards-compatible overload Runs middleware in router, outer mount, inner mount, controller, then action order Runs mount middleware only after a descendant route matches, preserving fallthrough for unknown paths Infers middleware-provided context and mount params in descendant inline actions and controllers Includes a focused parent/child/grandchild demo of controller-local and mount-wide middleware execution A route refactor can accidentally remove middleware without changing the URL: Mount middleware keeps the boundary intact across the refactor:

brophdawg11 · 2d ago
brophdawg11
Add a default browser frame resolverOpenPR

Remix UI now provides a default browser frame resolver, so apps using no longer need to repeat the standard boilerplate. Enable enhanced link and form navigation when a custom is omitted Allow to leave link and form navigation to the browser and make manual frame reloads reject explicitly Fetch frame HTML with the submitted method and abort signal, using for , CRLF-delimited plain text for , and for Stream returned bodies for statuses below 500, including 4xx responses, while rejecting 5xx responses without replacing the current frame content Remove redundant resolvers from demos and documentation while preserving the frame-navigation demo's custom validation and error UI policy The default resolver is equivalent to: Apps can still provide when they need custom headers, request encoding, redirects, or error presentation.

brophdawg11 · 2d ago

Recent fixes

View closed PRs →
brophdawg11
Bump static middleware back to 0.4.14MergedPR

Revert the changes to static-middleware so we can re-try publishing it as 0.4.14 to fix issues with beta.6. More info in https://github.com/remix-run/remix/pull/11697 and https://github.com/remix-run/remix/pull/11698. Output from a local dry run publish script run:

brophdawg11 · 23h ago
markdalgleish
Support preloads in resolved client entriesMergedPR

This adds an additional field to the object returned from . These are collected and automatically added to the head during server rendering, and are dynamically injected at runtime for client entries introduced by non-blocking or reloaded frames. This allows their module graphs to begin loading before hydration imports the entry module, avoiding dependency waterfalls.

markdalgleish · 2d ago
Structured data for AI agents

Repository: remix-run/remix. Description: Build Better Websites. Create modern, resilient user experiences with web fundamentals. Stars: 33314, Forks: 2787. Primary language: TypeScript. Languages: TypeScript (99.7%), JavaScript (0.2%), CSS (0%), Shell (0%), HTML (0%). License: MIT. Homepage: https://remix.run Latest release: ui@0.5.0 (3d ago). Open PRs: 37, open issues: 27. Last activity: 2d ago. Community health: 62%. Top contributors: mjackson, brophdawg11, remix-run-bot, ryanflorence, chaance, pcattori, MichaelDeBoey, mcansh, markdalgleish, github-actions[bot] and others.

·@ofershap

Replace github.com with gitshow.dev