2026-06-18 01:45:38 +02:00
2026-06-18 01:43:50 +02:00
2026-06-18 01:43:50 +02:00
2026-06-18 01:45:38 +02:00
2026-06-18 01:43:50 +02:00
2026-06-17 11:20:36 +02:00
2026-06-17 00:21:00 +02:00
2026-06-17 11:20:36 +02:00
2026-06-17 11:20:36 +02:00
2026-06-17 00:21:00 +02:00
2026-06-17 00:21:00 +02:00

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.
S
Description
No description provided
Readme 449 KiB
Languages
Rust 50.6%
Svelte 36%
TypeScript 6.6%
CSS 3.2%
Shell 1.1%
Other 2.5%