choose-backend-stacklisted
Install: claude install-skill Nioris/project-forge
# $choose-backend-stack — Standardized Backend Decision
## Purpose
Every project with server-side needs used to start with Claude improvising a stack from context. Result: one project had Docker+Nginx+PostgreSQL, next had bare Node+SQLite+Timeweb, next used Cloudflare Workers. No consistency, no reusable ops knowledge.
This skill fixes that. Four questions → one of **5 canonical stacks**, each with known deployment path, known cost profile, and reference implementation already living in Forge (see `rustore-publish/reference/` for Stack A).
## Canonical stacks (ONE of these 5, not "whatever feels right")
### Stack A — Node + SQLite + Timeweb VPS (DEFAULT)
**Use when:** B2C consumer apps, <1000 RPS, no real-time, budget <1500₽/mo, Russian users.
**Components:**
- Node 20 + Express (or Fastify)
- SQLite (single file, WAL mode)
- Nginx reverse proxy
- Let's Encrypt SSL (acme.sh)
- Timeweb Cloud VPS (~750₽/mo for 2GB/1CPU)
- PM2 for process management
- Daily SQLite backup to Yandex Object Storage
**Reference:** `.claude/skills/rustore-publish/reference/auth.js`, `sync.js`, `schema.sql`, `security-log.js`, `ip-hash.js` — production-tested.
**Docs:** `.claude/skills/rustore-publish/AUTH-SYNC.md` for integration. For VPS provisioning + nginx + Let's Encrypt, use the existing `$deploy` skill after stack is chosen.
**Pros:** Cheap, simple, single-file DB means trivial backups, all Forge reference code targets this. 152-ФЗ friendly (Russia-hosted).
**Cons:** SQLite concurren