78aff362ff
Document optional PWA/offline support as an adapter boundary: cached shell, domain-command queues, server-canonical replay, conflict/fingerprint behavior, and sync-crate shape without adding a client state graph or service worker to core. req: canonical_authoring/008 req: runtime/003 req: runtime/004 req: auth/002 req: auth/004 req: failure/004 req: failure/005 req: sync/001 req: sync/007
30 lines
1.3 KiB
Markdown
30 lines
1.3 KiB
Markdown
# hemx SaaS tutorial skeleton
|
|
|
|
This is the compile-tested skeleton for the v1 production-shaped tutorial app. It is intentionally provider-light: auth/session, CSRF, persistence, deploy, metrics, and islands are explicit app boundaries, not hemx core services. Read the walkthrough in `../../docs/tutorial-saas.md`. req: examples/001 req: auth/001
|
|
|
|
What it proves today:
|
|
|
|
- typed form/newtype inputs for project creation
|
|
- auth/session context passed through normal Rust state
|
|
- CSRF-safe mutation checked before persistence
|
|
- local in-memory persistence adapter instead of a vendored SQL/auth provider
|
|
- generated form, slot, keyed row, page-swap, and live-status commands
|
|
- page shell with plain CSS and one explicit metrics island script
|
|
- compile-time surface generation plus interaction tests
|
|
|
|
For provider-explicit boundaries, see `../../docs/recipes/sqlx-persistence.md`, `../../docs/recipes/auth-session-csrf.md`, `../../docs/recipes/observability-flags.md`, `../../docs/recipes/deploy-versioning.md`, and `../../docs/recipes/pwa-offline.md`.
|
|
|
|
What it deliberately does not claim yet:
|
|
|
|
- a checked-in SQLx migration crate or database pool
|
|
- production cookie/session middleware
|
|
- a deploy target, flags, analytics, billing, or offline sync
|
|
- browser automation for the metrics island
|
|
|
|
Run:
|
|
|
|
```sh
|
|
cargo run -p hemx-saas-example
|
|
cargo test -p hemx-saas-example
|
|
```
|