Inspiration

The hardest dollar to earn online is the first one.

Everyone starts in the same place: signing up for gig sites, taking tests, waiting on approvals, and wondering if any of it will ever pay. That's where most people give up, right before their first win.

Jobs are moving home, and some are being automated away. The people starting over online need a way up, and a record of what they've actually done.

Games figured this out a long time ago. Nobody quits level one, because the first win comes fast and the next goal is always in sight. So I asked: what if earning money online was the game, and every reward in it had to be real?

What it does

OneDime is a quest game for real online work, and every journey starts with a dime.

  • Sign in with PayPal. Press START on the handheld console and log in with PayPal. PayPal checks the password; OneDime never sees it.
  • Log it. Clock it. Clock in, do the work, clock out, and log what you earned. New pay waits as pending.
  • Match it. Import your own PayPal activity file. Pay that matches your PayPal activity moves you forward. Nothing else does.
  • Climb the ladder. $0.10, then $1, $10, $50, $100, $250, $500 and $1,000. Every player can reach every rung, each one is permanent, and each is worth 100 XP.
  • Private AI. Turn on Smart suggestions and a small AI model runs in your browser to suggest where each payment belongs. You confirm. The server decides.
  • Real profession ranks. Spotlight (creator income), Freelance and Market (delivery and selling) turn matched pay into XP and permanent ranks: Creator, Freelancer, Driver and Seller.
  • Know your worth. Stats shows your real hourly rate on every site, matched vs pending, and your month at a glance. Every chart has a table view.
  • Quests, streaks and rest. 19 quests guide you from your first log to a full record. Your streak grows every day you work, and days off build rested XP for a bonus next session. OneDime rewards rest.
  • The Vault. Real work breaks tiles. Break all 100 and Penny the robot wakes up.
  • Your record, your call. Export any month to CSV or Excel for tax time, or delete your data anytime. Opt into the leaderboard only if you want to.

It works on a phone or a desktop, by keyboard or with an on-screen D-pad, in four looks: Glass, Current, Paper and Slate.

Code of honor: nothing that counts can be bought. No loot boxes, no buying rank. OneDime pays nobody and promises no income. It keeps an honest record of what you earned.

How I built it

  • Log in with PayPal (OpenID Connect, sandbox) gives every player one real identity and one private record.
  • PayPal activity matching: the player imports their own activity CSV. OneDime keeps only date, payer, gross, fee, net, currency, transaction ID and type, and throws the rest away. Only incoming USD payments can be matched, and each payment counts once.
  • On-device AI: Transformers.js runs MoritzLaurer/xtremedistil-l6-h256-zeroshot-v1.1-all-33 (MIT, quantized ONNX) in the browser. It suggests a workspace for payers OneDime doesn't know. No payment data leaves the device, and it costs players nothing.
  • Server-side rules: TypeScript, Express, PostgreSQL and Prisma. Money is always integer cents, and ladder rungs and ranks are decided on the server inside database transactions, never in the browser.
  • Render: a render.yaml blueprint for the web service and Postgres 16, secrets kept out of Git, and a deploy hook that fires only after CI passes on main. /health reports the live commit, and a Playwright smoke test checks the real site after every deploy.
  • The team: I'm a solo builder. Claude is my lead architect and reviewer, and Codex builds each phase from written specs. Nothing merges without review, green CI and my approval. I started on Oct 13, 2026.

Challenges I ran into

Trust was the big one. A game about money only matters if every number in it is real. My first plan was a race for each rung, paid out with PayPal Payouts. I dropped it: OneDime shouldn't pay people to play, and a race only rewards whoever got there first. Now every player climbs their own ladder, and only pay matched to PayPal activity counts.

The details were harder than they looked: counting a payment only once, handling fees that change which amount matches, pay that lands in a different month than the work, and ranks that stay earned even if a record is deleted later.

Making it feel like a game while staying readable was its own challenge. Glass puts text on see-through panels, so the contrast checks measure real pixels instead of trusting the color codes.

Accomplishments that I'm proud of

  • 312 automated tests, all green, and nothing deploys until they pass
  • A 4,920-step keyboard audit and automated contrast checks across four skins
  • Private AI that runs on the player's own device and never decides on its own
  • A game that rewards rest, not burnout
  • A code of honor that stays in the rules: nothing that counts can be bought

What I learned

Game design mattered as much as the code. Every mechanic had to answer one question: does this help someone earn, or does it just keep them clicking?

Imported data needs honest labels too. A CSV helps match a record, but it isn't proof that the file is genuine, so OneDime says "matched to your PayPal activity" and never claims more.

What's next for OneDime

  • v1.1 "Proof": apply for PayPal partner access so payments can match directly with the player's permission, no file needed. Add certifications that count toward a rank once they're checked.
  • v1.2 "Your Lot": a walkable Mint where Lumen, Quill, Axle and Barter wake up after real work in their professions.
  • v1.3 "Everywhere": an iPhone app, guilds for players in the same profession, and a portable badge for milestones you can show anyone.
  • v2.0 "Plus": "Level your way to master your craft with the ultimate bot." The robots become real AI helpers for each profession, through PayPal Subscriptions. The core stays free, and Plus never buys XP, ranks or tiles.

Social media shows what people claim. OneDime will show what they actually did, down to the very first dime.

Try it Watch: the demo video walks the full path in under 3 minutes. Look around: open https://onedime-web.onrender.com to see the handheld console and tour. During judging, sign-in only works with the judges’ PayPal sandbox test logins. Run it yourself, no accounts needed: clone https://github.com/BCaris-RN/OneDime, install Node 24 and Docker Desktop, run npm ci then npm run demo, then open 127.0.0.1:3403/demo-login in your browser. It uses fictional data and a fake sign-in.

Built With

Share this project:

Updates

posted an update —

Everyone asks how fast you can build with AI.

Nobody asks how many times you send it back.

I just shipped OneDime for the PayPal AI Hackathon with an AI team. Claude as lead architect and reviewer. Codex writing the code. Gemini for art. Me in the middle of all of it, orchestrating.

Is it fast? Crazy fast. Four weeks. 312 tests. A live beta, a public repo, a 3 minute demo video, and a manga intro.

Is it easy? Nope lol.

What the back and forth actually looks like

  • I asked for one file to be updated. The AI updated the wrong one. Undo, explain again, redo.
  • The video motion pulsed on every beat. Looked great to the AI. Felt irritating to me. Switched it to a slow breathe.
  • The voiceover said "No bots" while the screen showed... robots. Nobody caught it until I watched it with fresh eyes.
  • The AI-drawn manga panels snuck a 7-Eleven logo onto a window and a designer monogram onto a hoodie. Had to scrub both.
  • I told Codex "never push to the public repo." Then the public repo became the real repo. Codex stopped and asked. It was right to.
  • One period at the end of a link broke the beta link an hour before submitting.

Every one of those got caught by a review gate or a human looking closely.

What I learned

Speed is the easy part. Judgment is the job.

AI suggests. The server decides. And I decide what ships.

You write the spec. You read the review. You catch what the agents miss. You send it back when it's not right. Then you do it again tomorrow.

It's still work. It's just a different kind of work... and I'd do it again.

Demo: https://www.youtube.com/watch?v=BbFXWSLfNaU Code: https://github.com/BCaris-RN/OneDime

Thanks for reading. If you're building with AI agents, what's the hiccup that surprised you most? Drop it in the comments.

AI #BuildInPublic #PayPalAIHackathon #SoftwareDevelopment #AIAgents

Submission history