Inspiration
When something breaks in a rental, someone has to pay first. Sometimes it's the tenant fixing a leak while the landlord is away; sometimes it's the landlord repairing damage the tenant caused. Either way, getting paid back usually happens over text messages and screenshots: receipts get lost, nobody remembers what was agreed, and a small repair turns into an argument.
Most rental tools are built for the landlord. We wanted something that works for both sides. In EvenTally, either the landlord or the tenant can file a repair claim, and the whole process is recorded in one shared place that neither side controls. The AI looks at the evidence both people would point to anyway: the receipt, the before-and-after photos, and the lease itself. It checks the details and suggests a fair split with its reasons, so the conversation starts from facts instead of feelings.
What it does
EvenTally settles repair costs between landlords and tenants, in either direction.
- File a claim. Whoever paid for the repair uploads the receipt and before/after photos, or simply tells Aunt Tally in chat what broke and attaches the photos. The claim stays a private draft until its author sends it.
- AI review. Aunt Tally reads the receipt and checks that the line items add up and the dates make sense. She looks for the same receipt in earlier claims, compares the photos with the work billed, checks the price against a local estimate, and quotes the lease's repair clause. Then she proposes who pays what and explains why. Both sides see every check and her reasoning.
- Two approvals, then PayPal does the rest. Either side can accept the split or propose another one. Once both approve, the amount is added to the next PayPal rent invoice as a credit or a charge. The landlord can also pay the tenant back right away with PayPal Payouts.
- An assistant that acts, one confirmation at a time. In chat, Aunt Tally explains any bill line by line and tells you what's waiting on you. She can also file a claim, approve a split, send an invoice or a reminder, or pay rent with your saved PayPal. Every action comes back as a card that you confirm yourself. She never decides for the other side.
- Rent on autopilot. The landlord can have each invoice sent automatically 5 days before rent is due. The tenant can save their PayPal once (Vault) and turn on autopay for the due date. Autopay is capped at 150% of rent; a bigger invoice waits for the tenant to approve it.
- One shared record. Both sides see the same ledger, activity log and notifications.
Try it: open the live demo, press Start as Tom, and Aunt Tally's four-step tour walks you through approving a claim, sending the invoice, paying it as the tenant, and filing a new claim by chat. Every visitor gets a private copy of the demo. It runs on the PayPal sandbox, so no real money moves.
How we built it
- Next.js 16 (App Router, Server Actions), React 19 and Tailwind CSS 4, deployed on Vercel, with Vercel Cron for the daily schedule.
- Neon Postgres with Drizzle ORM. Every action is also written to an append-only event log, which drives the activity feed, notifications and the onboarding tour.
- PayPal
- Invoicing API v2: monthly rent invoices, with approved repairs as credit or charge line items.
- Webhooks:
INVOICING.INVOICE.PAIDsettles the ledger and the claims on it, and every delivery is verified withverify-webhook-signature. If a webhook is late, the ledger also checks the invoice status. - Payouts: paying a tenant back right away.
- Vault v3 + Orders v2: "pay with my saved PayPal" and autopay. Each order is keyed by the invoice, so the same invoice can't be charged twice.
- PayPal Agent Toolkit: Aunt Tally's
get_invoice,search_invoicingandsend_invoice_remindertools.
- Anthropic Claude
- The review agent: Claude with tools. It decides which checks to run, in what order, and ends with a proposed split or one request for more evidence. Arithmetic, dates, duplicates and price ranges are plain code. The model reads the receipt and photos, interprets the lease, and explains its reasoning.
- The chat assistant: looks things up with read-only tools. Its action tools only prepare a confirmation card, and the action runs through the same server code (and permission checks) as the regular pages when the person presses it.
- We built it with the help of Claude Code.
Challenges we ran into
- Letting an AI near money without letting it move money. We settled on a strict rule: the AI prepares, people confirm. Every dollar amount the AI writes must come from the receipt, the ledger or a tool result, or it's sent back to be rewritten. The daily schedule (auto-send and autopay) is plain code that follows settings people switched on themselves, and it never calls the AI.
- Fairness when both sides can ask for another look. Unlimited re-reviews would let one side keep asking until they got a better answer. Each claim gets one review when it's filed, then up to two more for each side, and at most one request for more evidence.
- Webhooks you can't rely on in a demo. Sandbox webhooks can be slow or unreachable from local development, so the ledger also checks the invoice status while it waits. That way a payment always shows up, by whichever path arrives first.
- PayPal details. Recording a Vault payment on an invoice returned 404 until we left out the
payment_id. Making autopay safe to retry meant keying each order to its invoice. - A demo that many judges can use at once. Each visitor gets their own isolated lease, people and history, deleted after 3 days. Dates are relative to today, so the demo always looks current.
Accomplishments that we're proud of
- The full loop works end to end on the PayPal sandbox. A claim is filed and reviewed by AI, then approved by both sides and added to a real PayPal invoice. The invoice is paid by the tenant (on PayPal's page, by Aunt Tally, or by autopay), and the ledger settles itself.
- An agent that is genuinely useful but always asks first. Every action Aunt Tally takes is visible, reversible before confirmation, and attributed in the activity log.
- A first-time visitor can understand the product in about five minutes, guided by Aunt Tally herself.
What we learned
- In agentic commerce, trust comes from boundaries. Being clear about what the AI won't do mattered as much as what it can do.
- Plain code is the right tool for anything that must be exact: totals, dates and duplicates. The model is best at reading messy evidence and explaining a decision in plain language.
- The PayPal APIs fit together well. Invoicing, Webhooks, Vault, Orders and Payouts cover the whole life of a rent payment.
What's next for EvenTally
Closing out a lease fairly. Today, rent invoices stop when a lease ends. Next, the ledger will turn into a final settlement:
A final settlement invoice with only the approved repairs and no rent. Anything the landlord owes the tenant is paid back with PayPal Payouts.
A heads-up before the end. Thirty days before a lease ends, Aunt Tally lists every claim that's still open and reminds both sides to settle it.
Claims that get stuck. A claim can wait for an approval that never comes. Aunt Tally will nudge both sides when a claim has been waiting too long, for example 14 days. The other side will also be able to decline a claim with a reason instead of just ignoring it.
When people still can't agree. EvenTally won't act as a judge. Every claim will keep its receipts, photos, reviews, offers and approvals in one record that both sides can export, ready for a mediator or small-claims court.
Growing beyond the demo
- Adding your own leases and inviting your tenant by email, with real sign-in.
- Email notifications (the in-app setting is ready for it).
- Changing a lease's terms with both sides' consent.
- Letting the review learn from how earlier claims on the same lease were settled.
Built With
- claude
- drizzle
- elevenlabs
- next.js
- paypal
- playwright
- postgresql
- remotion
- typescript