Skip to content

Rewrite the entire framework#76

Open
aalin wants to merge 345 commits intomainfrom
rewrite
Open

Rewrite the entire framework#76
aalin wants to merge 345 commits intomainfrom
rewrite

Conversation

@aalin
Copy link
Contributor

@aalin aalin commented Mar 23, 2024

This is the code from the rewrite that I started writing in August 2024.

Todo

  • Implement a better VDOM
  • Make the root layout work
  • Fix string callbacks (onclick="event.preventDefault()")
  • Generate image versions and static assets
  • Reload routes when pages are added/removed
  • mayu build to build apps
  • mayu start to run built apps
  • Prometheus endpoint
    • Remove irrelevant metrics
  • Rewrite stack traces in Mayu::Modules::System by resolving modules
  • Custom elements? #5
  • Use https://github.com/socketry/async-container

Issues that should have been fixed already in this branch

aalin added 30 commits February 8, 2026 20:50
Add ImportRewriter to rewrite static import calls to stable hash IDs and
return a hash->resolved path map. Store rewritten imports and dependency
nodes on each module, and rebuild dependency/dependant links from those
imports during load and reload.

Stage transformed source updates during watch reloads, skip no-op reloads
when transformed output is unchanged, and preserve previous exports on
parse failures. Add structured ReloadResult/ReloadFailure so reload
errors flow to the session/runtime, and clear rendered errors after a
successful reload.
Convert procs and async task to nil, for example.
They can't be marshalled.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Handle url() in CSS files Transform @foo to self.state[:foo] Validate nesting of DOM nodes Transform CSS

1 participant