-
-
Notifications
You must be signed in to change notification settings - Fork 0
Home
Effuse is a TypeScript application framework built around fine-grained
reactivity, define({ script, template }) components, and typed capability
layers that can own browser services and server endpoints.
Project status: Experimental. The repository has production-oriented tests, diagnostics, SSR infrastructure, and CI gates, but it does not yet claim a stable production release contract.
This wiki documents the implementation on the dev branch. Implemented,
experimental, and planned behavior are marked separately. When code and older
documentation disagree, this wiki follows exported APIs and tests.
| Page | Purpose |
|---|---|
| Why Effuse | Framework thesis, audience, and non-goals. |
| Getting Started | Minimal application, routing, layers, and commands. |
| Reference Index | Public concepts and implementation status. |
| Runnable Examples | Small examples aligned with current APIs. |
| Production Readiness | Current guarantees and explicit release boundaries. |
| DX Gaps And Roadmap | Open architecture and documentation work. |
component script/template
|
v
typed local layer bindings
|
v
application capability graph
|
+---- browser services and lifecycle
|
+---- server API routes and actions
|
+---- manifest and typed client surface
The application composition root calls app.useLayers(...) once. Components
and hooks declare local aliases into that graph. A missing registration fails
before user setup with LayerBindingNotRegisteredError; local declarations do
not mutate a running layer graph.
- Fine-grained signals, computed values, watchers, and reactive props exist.
- Components use
define({ script, template })and support lifecycle hooks, context, refs, events, Suspense, and error boundaries. - Layers own services, state, dependencies, lifecycle, server routes, actions, validation, middleware metadata, diagnostics, and tracing.
- The router supports nested routes, aliases, guards, grouped paths, colon params, bracket params, required catch-alls, and optional catch-alls.
- SSR, streaming handlers, hydration data, head management, file-derived server
endpoints, manifests, and typed manifest clients exist in
@effuse/core. - The CLI builds and serves projects and can generate client/server entry files.
The unified route manifest, complete public documentation migration, stable adapter matrix, and production release policy remain open work.
- Source
- Issues
- Pull requests
- License: MIT