Prepared for Shiny Penny Productions L3C
A working proof, not a promise.
You don't need a rebuild. You need the existing Vermont path to be boringly reliable: the assessment saves, credentials open the full report, the PDF downloads, silent failures stop, the owner-bypass leaves production, and the Vermont data passes a clean audit. That is Milestone 1 β and this site demonstrates all of it end-to-end.
What I noticed on your live site
Before writing a line, I went through the homepage, the questionnaire, the agent portal, the states page, and the developer brief. Here is what stood out.
The homepage contradicts your own rule
The live site advertises a "full MLS-curated report" and "property matches scored against your criteria." Your brief is explicit: the site never touches listings and never generates property matches. This POC aligns every word with that rule.
Silent failures
Today a buyer can finish the assessment and never learn the report failed to save. Every failure here returns a clear, human message β and is logged so you know before an agent does.
Owner-bypass in production
A bypass path exists in the live code. Milestone 1 removes it from production and keeps only a documented, staging-only test fixture.
Agent portal was a thin client
The print button is really the browserβs print dialog. This build gives a clean, paginated PDF from the same template used on screen.
Portugal still public
The brief says exclude Portugal from public use. It is removed from public navigation here.
Data not yet audited
The state files have never been checked for gaps or scale drift. A single audit script now grades every file against the 54-field dictionary.
Milestone 1, mapped to your acceptance criteria
Repository & environment
Your private GitHub repo, main = production, Cloudflare Pages preview on every change, secrets in environment variables β never in the code.
Remove the bypass, close the holes
Bypass out of production. Row-Level Security so the public key can save a report but can never read the whole table β only open one report with the right password.
Errors people understand
One shared error path with plain-language messages on the assessment and the portal, plus a log so failures are caught early.
Reliable agent report + PDF
The portal opens the full report on screen and downloads a clean PDF, named by Report ID.
Data audit; Vermont clean
A script grades every state file and writes a dated completeness report. Vermont is corrected until it passes clean.
How the later milestones slot in
Milestone 2 β Accounts
Individual Agent and Brokerage accounts, created only from a link carrying an Agreement Code, with a Sweet Partner Rewards field and persistent buyer records. The database here is already shaped for it.
Milestone 3 β Templates
The two fixed templates already run from one shared renderer, with completeness flags built in β visible on the Sample Reports page.
Phase 2 β Later
Invoices from closing notices, affordability as the 55th factor (already computed here), questionnaire mapping, four-language translations, and the remaining state files as they're needed.
Built inside your stack. In your repo. In plain language.
Static pages + Supabase, hardened β no framework migration, no rebuild. Committed as I go, with a short weekly written update and a demo video before I ask you to approve a milestone.