Two weeks ago, I'd never built a web service.
Now LDBD — the SaaS I built — runs on a real domain. It's bilingual (Korean and English), eighteen bots submit predictions every day, and there's an API and MCP server that lets outside AI agents join the same leaderboard.
And users: still zero.
So this isn't a finished-product brag post. It's a build log of someone who used Claude Code to ship a SaaS for the first time — and is now trying to turn a zero-user service into a real one. I plan to write the wins and the misses with equal weight.
What I mean by “non-developer”
Let me be honest about my background. I'm not someone who has never written a line of code. I touched C/C++ in school and wrote some Python at work — analysis scripts, small tools. But I'd never built a “product”: an app, a website, anything with frontend and backend.
Solving an algorithm problem and shipping a SaaS that handles auth, a database, payments, responsive UI, deploys, and cron jobs are completely different work. I learned that the hard way this time. So when I say “non-developer” in this post, that's the kind I mean.
What is LDBD?
LDBD is a public leaderboard for stock, ETF, and crypto price predictions. Submit a call, and the system automatically scores it once the timeframe expires. Predictions can't be edited or deleted. Results are timestamped and live forever. Humans and AI bots compete on the same board under the same rules.
Why I built it
It started with curiosity.
YouTube is full of people who claim they read the market well. Some videos look genuinely insightful — until you watch the same person two months later saying the exact opposite of what they said before. Nobody, including the creator, remembers what was actually predicted a year ago. The hits get name-dropped in the next video. The misses quietly fade. And whether their picks are actually good calls about the future, or just retrospectively-chosen winners that had already run — you can't tell from the video alone.
Stock subreddits and Twitter threads are the same. “I called X at $Y” brag posts are everywhere, but the other thirty calls the same person made that quarter? Invisible. What we see is selection bias filtered once. The hits survive; the misses quietly disappear.
So I got curious. What if someone recorded their predictions chronologically, in a place that physically couldn't be edited, with the results verified automatically? What would that look like after a year? Is there actually anyone consistently beating the market? If yes, that's an extraordinary claim made testable. If not, that's interesting data too.
Another thread of curiosity ran alongside. AI-generated price calls are everywhere now. You can ask ChatGPT or Claude “where do you think BTC goes today?” and get an answer. But how trustworthy is that answer? Same model, different prompts — different answers. Would any of it look more or less serious if you put models on the same leaderboard as humans for a year, scored the same way?
So I just decided to build it. I wanted to run the experiment myself. And once it exists, other people might add their predictions, and a year of data could show things I'd never see alone.
Couldn't have built this a few years ago
A few years ago, this idea would have died right here.
“Should I find a developer friend?” → “How much does a freelancer cost?” → “Could I use no-code?” → eventually, “Maybe later.” That's how the side-project graveyard fills up.
But sometime last year, AI coding tools became actually usable. I tried Cursor, Copilot, Codex, Gemini — but the decisive shift was Claude Code. Less of an autocomplete, more like a developer who walked into the terminal: it creates files, runs commands, reads errors, fixes them. You ask it for what you want — in plain language, even Korean in my case — and it actually builds the thing. And it explains what it's doing as it goes.
For the first time, the gap between “I have an idea” and “I could actually make this” felt crossable. So I tried.
Where do you even start?
The trouble was, when I sat down to start, I didn't know anything.
I didn't know what Supabase was. I'd never heard of Vercel. I didn't know how Google OAuth gets wired in, what Postgres' RLS is, or what an Edge Function does. Reading the docs didn't help much — every page assumed I already knew five other things. Closing one tab meant opening five more.
So the first few days, my job was basically just asking Claude. Which tool should I use, and why? When the answer contained a word I didn't know, I asked about the word. After a few days of that, the stack had basically chosen itself: Next.js + Supabase + Vercel + Tailwind + shadcn/ui. Half the names were unfamiliar, but I went with the recommendation anyway. If something didn't fit, I figured I'd swap it later.
What I built in week one
- Next.js + Supabase auth (email + Google)
- Auto-fetch of ~600 stocks, ETFs, and crypto (Yahoo Finance + CoinGecko)
- A prediction form: asset / direction (up / down) / timeframe (1d–1y)
- A daily cron job that resolves expired predictions and assigns scores
- Two rankings: an Elo-based Skill Rating and an average score
- A Postgres trigger that locks every prediction at submission time, immutable
A working MVP came out in about a week.
But the core wasn't the code. The core was the spec doc. About 1,700 lines in a single document: product rules, data models, screens, scoring formulas, edge cases. Claude wrote a lot of it — I'd toss out an idea, Claude would shape it into a paragraph, I'd review and rewrite. Then I'd point Claude Code at the same document: “this is the source of truth — when the code disagrees with the doc, follow the doc.” That one rule meant I could steer the product even when I didn't fully understand the code. How that doc actually got built and operated is a topic too big for this post — that's the next entry.
What Claude Code did, and what I had to decide
I thought if the AI built more of the thing, I'd have less to decide. The opposite turned out to be true.
Code came fast. The bottleneck wasn't writing it. It was me deciding what to build— which screen, which data, which edge case to handle and which to ignore. Someone had to make those calls every minute, and the AI doesn't do that for you.
And here's the kicker: the AI doesn't hesitate. Tell it the wrong thing, and it will build the wrong thing very efficiently.
Take scoring. The first version used Elo-based “Skill Rating” as the primary leaderboard metric. Statistically clean. On screen, it just didn't land — does 1500 mean someone's good or not? Not obvious to anyone looking. After two rewrites I made average score the primary ranking and pushed Skill Rating mostly out of view. The AI built every version cleanly. The problem was I asked for the wrong thing twice in a row.
The landing page got rewritten five times. Smaller course-corrections were daily. I'll write each one up over time.
Where things stand (as of 2026-05-02)
- Live on ldbd.app
- Bilingual (Korean / English)
- Eighteen baseline bots submitting predictions every day, on the same board as humans
- Bot API + MCP server (npm:
mcp-ldbd) so external AI agents can join - Privacy / Terms / SEO / Sentry / Analytics all set up
- Real users: 0. The actual story starts here.
And this isn't “done.” Plenty I still want to build, plenty I want to fix, something shifts most weeks. I want this blog to grow alongside the product — not a polished retrospective, but a series that keeps moving.
What this series will cover
- Vibe coding, day one: I thought writing a spec and tossing it at the AI would do it
- What the AI did, and what I did — turns out the AI sometimes tells the human what to do
- The two times I rewrote the scoring formula
- I asked AI to predict asset prices. How much should I actually trust it?
- And eventually, the road to 1,000 users
Next up is the first one — that day I thought writing a spec and tossing it at the AI would be enough.
Want to put your own predictions on the record? Start at the homepage. It's free, and you can browse the leaderboard without signing up.