your personal website on atproto - mirror
blento.app
Repository Guidelines#
Project Structure & Module Organization#
src/routescontains SvelteKit routes, including dynamic handle pages insrc/routes/[handle]/[[page]], edit flows insrc/routes/[handle]/[[page]]/editandsrc/routes/edit, and API endpoints undersrc/routes/api.src/libholds reusable modules: card implementations insrc/lib/cards, shared UI insrc/lib/components, OAuth helpers insrc/lib/oauth, and site data/loading insrc/lib/website.- Root app setup lives in
src/app.htmlandsrc/app.css. staticis for public assets served as-is.docsincludes contributor-facing docs like custom cards and self-hosting.
Build, Test, and Development Commands#
pnpm devstarts the Vite dev server.pnpm buildcreates a production build.pnpm previewbuilds and runs locally with Wrangler.pnpm checkrunssvelte-checkfor type diagnostics.pnpm lintruns Prettier check and ESLint.pnpm formatauto-formats the codebase with Prettier.pnpm deploybuilds and deploys to Cloudflare Workers.
Coding Style & Naming Conventions#
- Indentation uses tabs, single quotes, and 100-column width (see
.prettierrc). - Svelte components use PascalCase filenames; utilities and helpers use camelCase.
- Prefer TypeScript in
srcand keep module boundaries aligned withsrc/libsubfolders (cards, components, website, oauth).
Testing Guidelines#
- There is no dedicated test runner yet.
- Before submitting changes, you must:
- Run
pnpm check- Must complete with 0 errors and 0 warnings - Run
pnpm format- Format all code with Prettier - Run
pnpm lint- Ensure no linting errors
- Run
- For UI changes, verify key flows manually (login, card editing, save/load, and route navigation across
[handle]pages).
Commit & Pull Request Guidelines#
- Keep commits short and direct; recent history favors lowercase, imperative summaries (e.g.,
small fixes). - PRs should include a clear description, linked issues when relevant, and screenshots for UI changes.
Configuration & Deployment Notes#
- Copy
.env.exampleto.envand adjustPUBLIC_*values for local or self-hosted setups. - Cloudflare configuration lives in
wrangler.jsonc; deployments use Wrangler viapnpm deploy.