Inspiration
ADUs are a big deal for homeowners — extra rental income, a place for family, added property value. But when you actually try to figure out if you can build one, everything is scattered. Zoning docs on one site, cost calculators on another, contractors telling you different things. I got frustrated trying to answer the basic question: "is this even worth pursuing on my lot?"
That's the question LotFoundry answers.
What it does
You give LotFoundry an address (or use a demo one). It pulls the property data and walks you through five things:
- Find — what your lot actually looks like on paper.
- Earn — realistic rent, income, and payback numbers for your area.
- Shape — drag an ADU around your lot in 3D, watch setbacks update in real time.
- Check — the zoning and permit questions you'll hit.
- Act — a shareable feasibility report you can hand to a builder.
If you're signed in, you can save runs, get an AI-written summary of your parcel and permit situation, and even upload a photo of your house to get an ADU concept that matches its style. The math is deterministic — the AI just explains what the numbers mean, it doesn't change them.
What changed during Build Week
In seven days I:
- Finished the account settings, support, and account-deletion flows.
- Added explicit consent for the AI photo feature — I felt weird shipping without it.
- Wired up Stripe purchases with server-side receipt verification.
- Got the Android TWA wrapper and iOS shell to a state where they'll actually build for the stores.
- Rebuilt the mobile studio around the five-step journey above (it was messy before).
- Localized the market estimates so they aren't just Bay Area numbers.
- Migrated the OpenAI calls to gpt-5.6-sol.
- Set up release automation and a public-repo checklist so I couldn't accidentally ship a secret.
How we built it
Stack: Next.js 16, React 19, TypeScript, Firebase (auth, Firestore, hosting, functions), Three.js + React Three Fiber for the 3D lot view, Regrid for parcel data, Google Maps, Stripe.
The feasibility engine is deterministic — same inputs always give the same numbers out. No AI in that path.
The AI parts use OpenAI's Responses API with gpt-5.6-sol, structured outputs, and a bounded tool loop. There's a parcel/permit tool the model can call to bring in local jurisdiction info. The style-match feature uses image understanding + image generation, only after the user opts in.
How Codex helped
Codex was like a really fast pair-programmer. I'd give it a task — "figure out why the deploy is failing" or "add server-side receipt verification for Stripe" — and it would dig through the code, propose a fix, and often catch things I would've missed. It wrote most of the regression tests. It walked me through why my TWA config wasn't the same as a store-signed AAB. I didn't know the difference before.
The product and design decisions were still mine. Codex made me faster, not different.
Challenges
The hardest part was keeping three kinds of information from bleeding into each other: real recorded data (parcel dimensions, zoning), estimates the code calculates (rent, payback), and things the AI generates (explanations, concept images). Homeowners will trust the wrong number if you don't visually separate them.
Two runners-up: making the 3D studio actually usable on a phone screen (it kept feeling like a spreadsheet), and making the demo mode good enough to show the product off without pretending demo parcels are real data.
Accomplishments that we're proud of
Honestly, I'm just proud that this feels like a single product now instead of a pile of calculators taped together. An address goes in, and the person walks out with a 3D model, real numbers, permit context, an AI-drafted concept, and a report they can share. That was the goal.
The other thing I care about: the trust layer. Explicit consent for AI, export and delete your data, honest fallbacks when a feature isn't configured, real receipt verification on the server side. No dark patterns.
What we learned
Homeowners don't need more data. They need to know which number to trust. Separating "recorded fact" from "our estimate" from "AI-generated" ended up mattering more than the numbers themselves. When people can tell what kind of answer they're looking at, they trust the tool.
What's next for LotFoundry
Get the Android version signed and into internal testing on Play. Ship real store assets. Expand parcel coverage past the current cities. Test purchase restoration on actual iOS/Android devices. Start onboarding real builders so the "builder connect" side has someone on the other end.
Built With
- android
- codex
- firebase
- firestore
- google-maps
- gpt-5.6
- next.js
- openai
- playwright
- pwa
- react
- react-three-fiber
- regrid
- stripe
- three.js
- typescript
- vitest
- webgl

Log in or sign up for Devpost to join the conversation.