src/contains the Leptos app, SSR entrypoint, and feature modules.src/app.rsholds routes and UI views; feature code lives undersrc/features/.src/db/manages the SQLite pool and migrations.migrations/contains SQL migrations executed at startup.style/holds Tailwind input (style/main.css).public/contains static assets copied to the site root.end2end/hosts Playwright tests.splitify-rs/is a reference project with similar stack choices.
cargo leptos watch— run the SSR server with live reload for local development.cargo leptos build— build server + WASM + assets for local verification.cargo leptos build --release— production build (outputs totarget/).cargo leptos end-to-end— run Playwright tests inend2end/.pnpm install— install Tailwind tooling for CSS builds.
- Rust: follow
rustfmtdefaults; usesnake_casefor functions/modules andCamelCasefor types. - Leptos components use
#[component]withPascalCasenames. - SQL migrations are numbered (
0001_*.sql,0002_*.sql). - Keep UI classes in Tailwind utility form; use
style/main.cssonly for base rules.
- End-to-end tests run via Playwright (
end2end/). - Prefer descriptive test names that match user flows (e.g.,
login.spec.ts). - Run
cargo leptos end-to-endbefore major UI or auth changes.
- Commit history uses Conventional Commit-style prefixes (e.g.,
feat: invites). - Keep commits focused and scoped to a single change.
- PRs should include: summary of changes, relevant commands run, and screenshots for UI changes.
- Auth uses SQLite and sessions; admin is bootstrapped via
.env(ADMIN_USERNAME,ADMIN_PASSWORD,ADMIN_EMAIL). - Copy
.env.exampleto.envfor local setup. - Invite-only registration is enforced via
/invite/:token->/register/:token.