Inspiration

During the pandemic, the government rushed relief to small businesses. New York's smallest businesses mostly didn't get it. In a 2021 survey of 54 NYC street vendors by WIEGO and the Street Vendor Project, only 3 had received a government loan, even though the Street Vendor Project offered to help any vendor apply for PPP or small business loans. Among vendors who returned to work, 76% needed capital to restart, and most had to drain their savings or borrow instead.

The report names one of the barriers directly: vendors struggle to provide the documents these programs ask for, like business bank statements, payroll records, and sales records. Cash leaves no paper trail.

New York has an estimated 23,000 street vendors, and according to the Immigration Research Initiative, 96% are immigrants, many of them Spanish speakers. Most get paid in cash and track their money in a notebook or in their heads. The same gap blocks them from loans, benefits, housing applications, and tax help, and it will hit them again in the next recession or crisis.

Accounting software won't fix this. It's in English, it assumes a laptop, and it expects people to type. But vendors already talk all day. So I built Libreta: let cash vendors talk their way to a paper trail.

What it does

  • A vendor taps "Hablar con Moni" and says, in Spanish: "Hoy vendí 20 quesadillas a 5 y gasté 45 en gas."
  • Moni, an ElevenLabs voice agent, confirms each item and asks one short question if something is unclear. The entries appear in the vendor's ledger as she talks, each with a timestamp.
  • Corrections work by voice too: "El gas fue 40, no 45."
  • Simple money questions, answered safely: vendors can ask Moni general questions like "¿Qué es un ITIN?" For anything about their personal taxes, legal, or immigration situation, Moni doesn't guess. She points them to free, trusted help like nyc.gov/taxprep, nyc.gov/talkmoney, irs.gov/itin, or 311.
  • "Crear mi estado de cuenta" builds a Profit and Loss statement for 1, 3, or 12 months, picked by purpose: a loan, benefits or housing, or taxes. It comes out in English, organized the way lenders and agencies ask for, with an appendix of every entry, ready to save as a PDF.
  • Any cash business can start in seconds: "Empezar mi libreta" asks only for a business name and a first name, then gives a private link. Judges can try it, or tap "Ver demo" to see Doña Rosa's quesadilla cart with three months of sample records.

How I built it

The key decision: the AI only listens; code keeps the books. In testing, a voice agent doing its own math invented an expense and gave two different totals for the same day. So Moni never calculates. She calls backend functions that do all the math, and every total and statement comes from saved records.

How Libreta uses Base44:

  • Database: Vendor and Entry entities store every sale and expense in cents. Both are locked, so only backend functions can read them.
  • Backend functions as Moni's tools: add-entry, correct-entry, and get-totals each have their own HTTP endpoint. The ElevenLabs agent calls them mid-conversation, protected by a shared secret in Base44 secrets. They convert dollars to cents and turn "ayer" into the right date in New York time.
  • Ledger and statements: get-ledger and get-statement serve each vendor's data only for their private token. create-vendor sets up new libretas.
  • Hosting: the React app is deployed on Base44.
  • Workflow: built with the Base44 CLI, which pushes the entities, backend functions, and site from code, so everything is in the public repo.

ElevenLabs: Moni is an ElevenLabs agent with three webhook tools. The web app uses the ElevenLabs React SDK and passes each vendor's token to the agent as a dynamic variable, so every entry lands in the right ledger.

Challenges

  • Keeping the AI honest with money. Getting Moni to send what the vendor said (20 quesadillas at $5) instead of her own total ($100) took careful tool design: unit_price and quantity go to the backend, which does the multiplication.
  • WhatsApp. I connected a WhatsApp number to Moni, and she received messages, but Meta requires business verification with tax and legal documents before she can reply. So I made the web app the main channel, with WhatsApp as the next step.
  • Dates. Vendors buy ingredients the night before, so "ayer" matters. The backend works out dates in New York time instead of trusting the AI.

Accomplishments

  • A full voice-to-statement flow, live and working, built solo in five hours.
  • Every number on screen and on the statement is computed from saved records, never by the AI.
  • Built for trust: no location, legal name, ID, or immigration questions. Each libreta is a private link, and vendors decide who sees their statements.

What I learned

How to give a voice agent real tools, why money belongs in code and not in a language model, and how much design matters for people who are new to financial records: big text, plain words, and a ledger that looks like the notebook they already use.

What's next

  • WhatsApp voice notes: the number is already connected to Moni and waiting on Meta's business verification.
  • Partnering with vendor groups like the Street Vendor Project, which already organize on WhatsApp.
  • More languages (NYC vendors also speak Arabic, Bengali, Mandarin, and more), CSV export for accountants, and microlender partnerships.

Try it out: open libreta-942cd7e9.base44.app, tap "Ver demo" to see Doña Rosa's libreta, then tap "Hablar con Moni" and tell her what you sold, in Spanish or English. Or tap "Empezar mi libreta" to start your own in seconds.

Built With

Share this project:

Updates

Submission history