mirror of
https://github.com/whekin/household-bot.git
synced 2026-03-31 10:34:02 +00:00
* feat(WHE-15): bootstrap bun workspace with app and package scaffolds * chore(WHE-17): switch workspace typecheck to tsgo * chore(WHE-16): configure oxlint and oxfmt no-semicolon style * chore: address CodeRabbit review feedback * chore: apply coderabbit fixes and add review script * docs: add ADR decision metadata
1.5 KiB
1.5 KiB
ADR-001: V1 Tech Stack
Status
Accepted
Decision Date: 2026-03-05 Owners: Stanislav Kalishin
Context
The project needs to be modern, modular, and scalable while still delivering v1 quickly.
Decision
- Runtime/package manager/test runner: Bun
- Language: TypeScript (strict mode)
- Bot framework: grammY
- Database: Supabase Postgres
- Deployment runtime: Google Cloud Run
- Scheduling: Google Cloud Scheduler
- Frontend mini app: SolidJS (Vite SPA) + Tailwind
- Validation: Zod
- Linting: Oxlint
- Error tracking: Sentry
- Logging/metrics baseline: Cloud Logging/Monitoring
Rationale
- Bun provides a fast unified developer workflow.
- grammY is TypeScript-friendly with strong middleware patterns.
- Supabase keeps SQL-first data modeling while reducing ops overhead.
- Cloud Run + Scheduler offers serverless simplicity and predictable scheduling.
- Solid SPA provides modern UI performance with lightweight runtime cost.
- Oxlint enables fast linting suitable for small-commit workflow.
Consequences
Positive:
- Strong portfolio architecture with pragmatic service count.
- Clear path to production without heavy platform ops.
Negative:
- Some enterprise tooling (Prometheus/Grafana/K8s) is deferred.
- Serverless constraints require disciplined idempotency and stateless design.
Alternatives Considered
- Fly.io runtime: good DX, but Cloud Run better matches serverless objective.
- Convex backend: strong DX, but SQL/reporting fit is weaker for financial ledger.
- Telegraf bot framework: mature ecosystem, but less desirable TS ergonomics.