# Where Woof > Return-tag platform: QR/NFC tags on valuables; finder scans → owner gets SMS with map link. Go + HTMX frontend, Laravel/Filament admin, shared Postgres. ## Project state (2026-08-28) **Live:** frontend `where-woof.com` (.13:3020) · admin `admin.where-woof.com` (.13:3031) **Phases done:** foundation, scan flow (real SMS via SMSGlobal), hardening, HTMX polish, admin, deploy, **billing (Phase 5)** — account-based annual sub. ## Billing model (locked with owner) - **Account = the product**: $10/yr flat, up to **25 tags**, **50 SMS/yr included**; extra SMS $0.10 each (100-credit pack = $10). - **Tags one-time**: single **$5 + GST** ($5.50), 10-pack **$20 + GST** ($22.00). Cost ~$1 to make. - **Replacement tags**: new SKU $5 one-time, annual sub continues untouched. Move mechanic already built (source→closed, unset target→active). - **Business/public-info model deferred** (scan-volume tiers, no SMS) — `plans.plan_type='business'` reserved. - Sandbox-first: Stripe test mode verified e2e; live keys pending onboarding. ## Stack / infra - Frontend: Go `net/http`, sqlc/pgx, HTMX/Alpine/Tailwind. Admin: Laravel 13 + Filament 3 + Cashier 16 (Stripe AU). - Shared Postgres on .13:5434 (`wherewoof`), schema canonical in `db/schema.sql`. - Deploy: per-file `rsync --checksum` to .13 + systemd/docker restart. Gitea `sam/where_woof`. - SMS: SMSGlobal HTTP API (`SMS_USER/PASSWORD/FROM`) — **live creds are set on .13**. - Email: Gmail SMTP → samuelrolfe@gmail.com (app password, env-only). hello@where-woof.com = public contact (Cloudflare/SES planned). ## Promo (2026-08-28) - `/order` page with Stripe Payment Links (test mode): single 1–25 qty, 10-pack 1–2. - Red banner across all pages: "Protect & recover your valuables — ORDER NOW". - Contact form → Gmail SMTP. ## Gotchas - Laravel login: `User::$authPasswordName = 'password_hash'` (Laravel 13 rehash-on-login writes the wrong column otherwise). - Cashier: Managed Payments requires `tax_code` → `txcd_10103001` (SaaS) is eligible. - curl `-F "phone=%2B..."` stores literal `%2B` — use real `+`. ## Links - [[210 AI Resume]] · [[220 Web Host Migration]] · [[240 Web Sites]]