title, type, status, areas, related_tools, host, created, updated, tags
title
type
status
areas
related_tools
host
created
updated
tags
Where Woof
project
active
.13
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, Stripe AU billing.
One-line
Every valuable deserves a way home: a $5 tag, a $10/yr account, and when the tag is scanned you get an SMS with the finder's map link.
Where things live (the 5 tools)
Tool
What it holds
Where
Gitea
Source + git history
sam/where_woof — ssh://git@gitea.lab.audasmedia.com.au:2222/sam/where_woof.git
Vikunja
Project tasks, done/todo, priorities
Project "Where Woof" (id 7) — vikunja.lab.audasmedia.com.au
Outline
Project docs for AI bots (overview, architecture, configs, schema, status)
Collection "Where Woof" — outline.lab.audasmedia.com.au
Obsidian
This note — human understanding
200 projects / 240 Web Sites / Where Woof.md
OpenSpec
Change proposals (proposal/design/specs/tasks) + plans
openspec/changes/* + plans/*.md in repo
How they relate: Vikunja = what to do (tasks). Outline = what/why/how for AI agents. Obsidian = human brain reference. OpenSpec = design decisions per feature. Gitea = the code itself .
Map
Status (2026-09-05)
LIVE : frontend where-woof.com (.13:3020) · admin admin.where-woof.com (.13:3031)
Done : phases 1– 8 + billing (Phase 5) + promo (order page, banner, contact form)
Blocking : Stripe go-live (test mode only now — no real sales) · SES production access + incoming hello@ routing
Billing model (locked)
Account = the product : $10/yr flat, up to 25 tags , 50 SMS/yr included ; extra SMS $0.10 (100-credit pack = $10).
Tags one-time : single $5 + GST ($5.50) · 10-pack $20 + GST ($22.00). Cost ~$1/tag to make.
Replacement tags : new SKU $5 one-time, annual sub continues untouched.
Business/public-info deferred : plans.plan_type='business' reserved (scan-volume tiers, no SMS).
Stack / infra
Frontend : Go net/http, sqlc/pgx, HTMX/Apline/Tailwind — .13:3020 systemd user service.
Admin : Laravel 13 + Filament 3 + Cashier 16 (Stripe AU) — .13:3031 Docker.
DB : Postgres .13:5434 (wherewoof), schema canonical db/schema.sql.
SMS : SMSGlobal HTTP API — live creds set on .13 (SMS_USER/PASSWORD/FROM).
Email : Amazon SES (ap-southeast-2) transactional only, sends as hello@where-woof.com, contact form → samuelrolfe@gmail.com . Sandbox until production access approved.
Storage : MinIO on .13:9010 for tag photos.
Ordering : Stripe Payment Links (test mode) on /order.
Key configs (env-only, never committed)
.13 ~/.config/where-woof.env — frontend: DATABASE_URL, SMS_, SMTP_ , STRIPE_, ORDER_ _LINK, BILLING_ENABLED, SMS_INCLUDED_PER_YEAR
.13 ~/Docker/Containers/wherewoof-admin/.env — admin: DB_, STRIPE_ (test), CASHIER_CURRENCY
Secrets live only on .13 — never paste into chat or commit.
Gotchas
Laravel login: User::$authPasswordName = 'password_hash' (Laravel 13 rehash-on-login).
Cashier/Stripe: Managed Payments needs tax_code → txcd_10103001 (SaaS) — Tangible Goods rejected.
curl -F "phone=%2B..." stores literal %2B — use real +.
Vikunja token intermittently 401s — retry once.
Outline public API returns 502 (Caddy route missing) — use http://192.168.20.13:3000/api directly.
Next up (see Vikunja project 7)
GO LIVE Stripe (urgent — blocks real sales)
SES production approval + Cloudflare Email Routing (incoming hello@)
Photo uploads (Phase 6), anti-abuse (Phase 9), customer insights dashboard
Links
210 AI Resume · 220 Web Host Migration · 240 Web Sites · Vikunja: Where Woof · Outline: Where Woof