- Personal website
- Rust server
- Markdown-first content
- Low operational complexity
- Keep changes small, isolated, reversible
- Fix root cause, not symptom
- Preserve existing route behavior unless task says otherwise
- Avoid adding dependencies unless clear value
- Prefer stable, production-safe defaults
- Server-rendered HTML
- Markdown converted to HTML at startup
- Pre-rendered content held in shared in-memory state
- Single-process web service
- Home page content, including project list, lives in
src/sheets/home.md
- For add/remove/reorder project entries, edit
src/sheets/home.md - Keep project entries in existing markdown shape: heading, one-line description, tech tags
- Preserve surrounding copy/style; avoid incidental rewrites
- When asked for labels like
WIP, keep them inline in the project heading unless told otherwise - For content-only edits, prefer minimal verification: diff review, targeted file readback
- Bind to
PORTwhen provided - Default to
8080locally - Keep endpoints backward-compatible
- Cache headers matter for public content
- Match existing Rust/Axum style
- Keep handlers straightforward and explicit
- Handle unhappy paths as carefully as happy paths
- Avoid broad refactors during feature or bug tasks
- Run dev server with
cargo watch -x run(assumescargo-watchis installed) - Server defaults to port
8080
- For code changes:
cargo checkcargo fmt --checkcargo clippy -- -D warningswhen practical
- Route smoke test locally when behavior changes
- For docs-only changes:
- skip heavy checks unless requested
- Use Dockerfile builder
- Keep image/runtime simple and debuggable
- Prefer deterministic builds over smallest image
- If Railway CLI says
Unauthorized, stop and ask user to runrailway login - Preferred deploy flow:
railway up --detach - After deploy, verify with
railway status - Check logs when status looks wrong or user asks for confirmation
- Confirm deploy status and logs after
railway up
- Be concise
- State assumptions before coding
- Provide short progress updates while executing
- End with what changed, what was verified, and next actions if relevant