A public calculator
Home price, down payment, rate, term and region. Pick a region and it works out the real taxes and fees automatically, and every label and tooltip is editable from the admin.
Before the app, an advisor had to screen every prospect by hand, judging from income, debts, savings, employment and region whether their profile could qualify for a Spanish mortgage. For a small team, every hour spent on someone who cannot qualify is an hour away from someone who can.
Leads lived in a spreadsheet with no scoring and no record of why someone was or was not a fit. And the real costs were opaque: regional taxes and fees push the cash a buyer actually needs well above the headline down payment, so prospects were caught out late in the process.
A Spanish-language, mobile-first app that does the first pass automatically and hands the advisor a pre-scored lead.
Home price, down payment, rate, term and region. Pick a region and it works out the real taxes and fees automatically, and every label and tooltip is editable from the admin.
A short questionnaire returns a green, amber or red score on each metric, with tailored messages and, up front, the real total cash the buyer needs.
The prospect gets a PDF report by email; the advisor gets a lead summary; the lead is also exported to their sheet. The advisor receives a pre-scored lead instead of a cold inquiry.
A non-technical admin console to manage leads and tune everything: scoring thresholds and messages, employment weights, regional cost percentages, and every word of on-page copy. No developer in the loop.
A React and TypeScript single-page app over Supabase (Postgres and Edge Functions). Configuration is fetched at runtime, so admin changes apply with no redeploy. Reports render in the browser and go out as email through Loops.
A single React and TypeScript app (Vite, Tailwind, shadcn/ui) covering the calculator, the results page and the admin panel. State is local; configuration is fetched at runtime, so the team's edits show up without a deploy.
Supabase Postgres holds applications, scoring config, region costs and page content. Edge functions handle the two jobs that must be reliable: sending the emails through Loops, and the secure export to the client's sheet.
The results view is rendered to canvas in the browser and exported as a PDF, and the same render is shipped to the email so the prospect and the advisor see exactly what was on screen.
The admin panel uses a simple custom sign-in rather than full auth infrastructure, chosen on purpose: it is run by one small, known team, so heavier auth would have added friction without adding meaningful protection.
Every threshold, score message, regional cost percentage, employment weight and on-page text string is editable from the admin panel. Urban Capital can tune the product against what they see in real prospects, without us in the loop. The scoring started as hardcoded rules and was promoted to a configurable engine precisely so non-engineers could own it.
The admin panel is a real operator back office: a CMS that makes every threshold, message, region cost and word of copy editable, and a lightweight CRM that filters, tracks and exports the lead pipeline.
A full back office the team runs themselves.
We started with the scoring in a Google Sheet, so the team could read, edit and argue with the logic in a familiar tool before any of it was formalised into a database. We stood up an isolated diagnostics page to prove the integration end to end before wiring it into the live lead flow.
From there we iterated the calculator directly on the founder's feedback, fixing each small friction in the same week, then promoted the scoring to a configurable engine and migrated storage to a database only once filtering, status and export made the sheet the bottleneck. Not pre-emptively.
When two prospect-facing issues surfaced from real use, they were caught and fixed in the same iteration: the total-cash figure now computes consistently across the screen, the PDF and the emails, and the report was re-engineered so it can be attached and sent directly.
Lead volume, qualified-lead rate, conversion to advisor calls, time saved per lead: none of these are in the record yet. The app is built to capture exactly this, so the next step is measurement, and we will add real figures here once we have them.
With the engine live and fully configurable, the work shifts from building to learning: watch how real prospects move through it, and tune the scoring against what actually converts.
Measure the funnel, from first input to advisor call.
Tune the scoring against the leads that actually convert.
Keep advisors off the first pass, and on the deals.
A small product studio. We prototype, automate, and ship.
Small is the feature: you work directly with the people building the thing, and we care more about something that holds up in production than something that looks good in a pitch.