1.6 KiB
1.6 KiB
shopping-list
Self-hosted, topic-based shopping lists with price-drop notifications. Track things you want to buy (clothes, gear, whatever), paste product URLs, get mailed when a deal appears.
Stack
- Backend — Rust, Axum, SQLx + Postgres, argon2 password hashing, server-side sessions (tower-sessions), lettre SMTP.
- Frontend — SvelteKit + TailwindCSS, grunge/breakcore theme.
- Infra — docker-compose (Postgres + backend + frontend).
Status
Phased build. Current: Phase 1 — auth foundation.
| Phase | Scope |
|---|---|
| 1 | Accounts, email verification, login/logout, password reset, per-user settings |
| 2 | Lists (topics) + items CRUD |
| 3 | Tracked URLs: paste → periodic refetch → price parse + history |
| 4 | Notifications: SMTP price-drop alerts |
| 5 | Design polish |
Quick start (dev)
cp .env.example .env
# edit .env — set SESSION_SECRET (openssl rand -hex 32) and SMTP creds
# Postgres only, run backend/frontend natively while developing:
docker compose up -d db
# backend
cd backend && cargo run
# frontend (separate shell)
cd frontend && pnpm install && pnpm dev
Full stack in containers:
docker compose up --build
App: http://localhost:5173 · API: http://localhost:8080
Notes
- Deal tracking uses user-pasted product URLs refetched on a schedule — no hardcoded retailer scrapers. Region default: DE/EU, EUR.
- SMTP is required for email verification + notifications. Use a real provider or a dev catcher like Mailpit.