by Ta-Tech Solutions All documents

TaTech App Signature - CivicLoop conformance

The canonical 22-point TaTech build standard every app must ship, and how CivicLoop County OS meets each. (Copy of the locked signature; per-app notes added.)

# Standard CivicLoop status
1 Light + dark theme, toggle, persisted Yes - next-themes, theme toggle, persisted
2 Mobile-first + offline PWA Yes - responsive, service worker (public/sw.js), /offline route, installable
3 Multilingual from day one Yes - English + Spanish, every string keyed; no English fallthrough for ES
4 Great UI/UX, back-nav, in-app guided tour Yes - back-nav on every sub-page; first-run dashboard tour (welcome-tour.tsx), re-openable
5 Named AI assistant + knowledge base + Anthropic fallback Yes - "Ada" (/assistant), county_kb knowledge base, falls back to general guidance; renameable in county_ai_config
6 Self-testing suite (full-stack E2E + every-button per-role) Yes - Playwright suite + scripts/ui-sweep.mjs (every safe button, per role, fails on JS error)
7 Voiced walkthrough (detailed + short reel, all languages) Yes - scripts/make-walkthrough-video.mjs renders detailed + 90s reel in EN + ES; hosted at /[locale]/walkthrough
8 How-to docs, updated every patch Yes - this docs set + docs site; updated with each change
9 Platform console (TaTech-engineer tier, separate from tenant admin; access levels, kill-switch, impersonation+audit, billing) Mostly - /platform is a distinct TaTech tier (table platform_admins, levels owner/engineer/support) with cross-tenant health/usage, a kill-switch (suspend/restore a county), and audited impersonation ("view as a tenant"). The county boss is the separate tenant admin (/admin, county_admin). Per-tenant billing is the one remaining sub-item (see TATECH_GAPS.md)
10 Observability ("our own Datadog") Yes - Sentry (DSN-gated), synthetic uptime monitor (/api/cron/synthetic) + Platform health panel, prod-smoke
11 Source of truth + brief/exec tab Yes - architecture docs 00-14 + 14-executive-summary; this suite is the operator source of truth
12 Branding (logo, PWA icon, printables, Powered by TA-Tech, no em-dash) Yes - branded printable reports on every module + public portals; "Powered by TA-Tech" everywhere; build fails on em-dash
13 DB discipline (snapshots, dev-first, RLS, audit) Yes - RLS on every table; schema dump source of truth; check information_schema before SQL
14 RBAC + privacy by default Yes - requireStaff(locale, minRole) (agent/supervisor/department_head/director/county_admin), DB-enforced RLS, no PII on public pages
15 Everything editable + removable (full CRUD) Yes - schema-driven RecordEditor gives New/Edit/Delete on every module's core entity + feeds + KB
16 Highly customizable, no hardcoding Partial - feeds/KB/assistant name are tenant-editable; County identity is single-tenant by design (PG County)
17 White-label isolation N/A for the single-county deployment; lands with the multi-county product (roadmap)
18 AI onboarding questionnaire seeding the KB Yes - onboarding questions seeded as editable county_kb rows the County answers
19 Slack-grade in-app comms Partial - /channels (channels + threads); WhatsApp/SMS bridge + AI persona on roadmap
20 Smart forms + address autocomplete Partial - real dropdowns/money/date controls on every form; 311 has photo + EXIF + geolocation address; places-autocomplete library on roadmap
21 Engineering hygiene & release gates Yes - build-before-push, click-through-in-dev, docs-with-every-patch, no .test on prod
22 Global-ready units Partial - generic per-feed units (user-defined); 311 is not unit-heavy; locale-aware dates/numbers

Branded-domain hosting (locked 2026-05-26): every standalone product gets its OWN domain, with all hosting on branded subdomains - never a raw *.netlify.app in public. CivicLoop = civicloop.us (apex/www -> app, docs. -> docs, watch. -> walkthrough videos). tatech.dev is the storefront and only EMBEDS the demo reel + walkthrough; it does not host the product. Owning the domain makes the public URLs portable (change hosts without changing links).

Automation (locked): Yes - event + agentic. Scheduled secret-gated /api/automations (reminders, janitor, feed forecasts) + AI bid evaluation, all on cheap Claude Haiku.

Open items are tracked in TATECH_GAPS.md. The full cross-app signature lives in the canonical TaTech standards memory.

PreviousTest County Setup
CivicLoop - Ta-Tech Solutions - Architecture & Design Documentation