The moment after the price tag

Our first test case was a camera for a first apartment. Its $39.99 price tag made the decision look simple. Then we asked: what if the buyer needs to keep recorded video for years? The plan was $4.99 a month. On a five-year timeline, the known subtotal became $339.39 before tax, delivery, repairs, or a replacement. Nothing was concealed; the cost was scattered across a product page, a plan page, and time. Putting those pieces together changed the question from “Can I afford it today?” to “Can I afford to keep it?”

That exercise exposed a habit we recognized in ourselves: we compare what is due today and leave the rest as a vague promise to “figure it out later.” We built OwnCost to make those later obligations visible before a decision feels final. It helps a shopper ask, “What will this cost me to own, when will I have to pay, and does the cart still match the decision I made?”

Try the live app · Watch the 2:54 demo

What you can do

Start with a need in your own words, an image, or a voice note. AI proposes the product, usage, time horizon, and requirements; you review and confirm them. OwnCost then builds a month-by-month cash ledger from dated product evidence and your explicit estimates. You can compare supported products for up to ten years, see whole replacement purchases and plan renewals when they occur, and inspect the source behind a number. If a price, fee, or capacity is missing, it stays unknown—it never quietly becomes $0.

The timeline is only the beginning. An affordability view separates what you can spend today from money reserved for later bills and shows the first month your reserve runs short. A decision map tests how a result changes with usage and ownership length. Exit Lens lets you enter a hypothetical resale range and selling costs, then shows cash back and net ownership cost. Saved briefs and comparison snapshots let you return to the exact decision you made. Press ⌘J on a field, chart, or selected text to ask JaS for an explanation in that context.

For a shared purchase, Together lets two people review their own contributions and confirm what each is willing to pay. A bounded Groq summary calls out unresolved questions without inventing agreement or authorizing payment for either person.

Finally, Cart Check asks for the actual one-time cart terms: model, quantity, unit price, tax, delivery, displayed total, and billing type. It rejects mismatched arithmetic or recurring/trial terms and makes you rebuild the comparison if the cart changes the numbers. Set a Payment Intent Lock—the most you allow today—and the server blocks a higher test review before passkey approval. A permitted ceiling, cart version, and exact amount are bound to the review and retained in an ownership passport.

Why this is different from asking a chatbot

A language model can describe a purchase. It cannot, by itself, give you a reproducible cash ledger, preserve which evidence supported a number, or enforce a buyer's checkout rule. In OwnCost, AI helps interpret the need and explain a result. Deterministic code calculates money in integer cents, keeps unknowns visible, and decides whether a test checkout may proceed. AI cannot approve a payment or invent a missing merchant price.

How we built it

The workspace uses Next.js, React, TypeScript, Motion, and Zod. PGlite supports local development; the live Vercel deployment uses shared TigerData PostgreSQL with verified TLS so saved decisions survive serverless requests. Groq powers the editable brief and contextual JaS explanations. A source-linked cost engine models hardware, supplies, and monthly or annual services as dated cash events. Server-side cart validation and WebAuthn bind an exact one-time test review to the shopper’s approval. The live demo completes a simulated test payment and saves the passport; it does not move real money or claim Visa network authorization. A separate Square Sandbox path exists, but a full USD provider checkout still requires a compatible US test location. We used Gemini’s web image tool for the demo character, ElevenLabs for its voice and music, and Remotion for the finished film.

We also built optional, bounded paths for confirmed evidence, forecast-versus-actual records, household input, and spoken reports. They do not change the core math or payment authority. We distinguish working local flows from external integrations that still need live credentials or provider verification.

The hard parts and what we learned

The hardest choice was resisting a confident-looking answer when evidence was incomplete. A ten-year graph is useful only if it says what it assumes: today's known prices, steady usage, and no invented repair or resale value. A cart typed by a shopper is a claim, not a verified retailer offer. A passkey is meaningful only when it signs the specific amount and terms the buyer just reviewed. Building those boundaries changed the product from an AI shopping suggestion into a decision you can inspect, challenge, and control.

OwnCost is a focused prototype with a curated set of US cameras and printers, not universal shopping search. That focus lets us show the full journey—from a real need, through the costs that arrive later, to a checkout rule the application actually enforces. Know before you own.

Built With

Share this project:

Updates

Submission history