a428097e0e
Promote examples/saas from skeleton wording to the canonical tutorial app and record the v1 release decision that local persistence plus provider-explicit recipes is the supported production boundary for CI-friendly docs. req: examples/001 req: auth/001 req: laws/004 req: public_api/005
31 lines
1.6 KiB
Markdown
31 lines
1.6 KiB
Markdown
# hemx SaaS tutorial app
|
|
|
|
This is the compile-tested v1 production-shaped tutorial app. It intentionally uses an equivalent local persistence adapter and provider recipes as the supported v1 production boundary: auth/session, CSRF, SQLx persistence, deploy, metrics, flags, offline behavior, and islands are explicit app integrations, not hemx core services. Read the walkthrough in `../../docs/tutorial-saas.md`. req: examples/001 req: auth/001
|
|
|
|
What it proves:
|
|
|
|
- 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 keeps out of the tutorial crate:
|
|
|
|
- a vendored SQL/auth/metrics/flags/deploy provider dependency
|
|
- provider credentials, external services, migrations, or browser automation
|
|
- billing, account administration, or other SaaS platform scope
|
|
|
|
Those production concerns belong in app adapters and recipes so the tutorial remains runnable in CI without external side effects.
|
|
|
|
Run:
|
|
|
|
```sh
|
|
cargo run -p hemx-saas-example
|
|
cargo test -p hemx-saas-example
|
|
```
|