Insidr tracks public SEC insider trades and congressional stock trades.
It started as an idea I wanted to test, and turned into a pretty good example of what happens when you try to take an AI-built project all the way into production.
Here's what happened.
The idea test
Before I touched the code, I tried to figure out whether the idea was worth building at all.
What's the actual problem? Who already solves it? Is there a gap? Would anyone care?
It survived the test, so I started building.
The first build
The first stack was simple: Next.js, Vercel, SEC EDGAR, and a scraper for congressional trading data.
The first proper headache wasn't even the data.
It was the database.
I was using better-sqlite3 locally. It worked perfectly well until I put the thing on serverless.
Then it didn't.
I used a JSON-file cache under /tmp as a temporary fix, and eventually moved to Postgres once the product needed to grow beyond something that was basically a toy.
That's one of the things nobody really shows in AI coding demos.
Sometimes the code isn't wrong. The environment is.
Turning it into a business
Once people were going to be able to pay, I needed the boring business stuff to work too.
Stripe checkout. Webhooks. Subscription status. Cancellation. Refunds.
Everything is self-serve.
I don't want someone paying me to create a support ticket for myself every time they need to cancel.
The security pass
This was probably the most important part of the whole build.
Before turning Stripe live, I asked AI to do a serious security review and to actively try to break the product.
It found a checkout bypass that could unlock the paid tier without paying.
It also found a forged-cookie bug that could let somebody take over another account.
Those were fixed, along with eight other high-severity issues.
That's a very different result from asking, "Can you review my code?"
You have to actually give it the job of finding a way in.
Going live
Stripe went live. Real payments started coming through. I had both monthly and annual plans running.
Then production did what production does.
A data feed went stale for about a day and a half.
The scheduled job existed.
It just wasn't turned on.
I added a self-healing fallback and a visible "last updated" timestamp so a silent failure like that would be much harder to miss next time.
What I took away from it
AI can get you to something that looks finished incredibly quickly.
The dangerous bit is that "looks finished" and "is ready for real users" are two completely different things.
The last part of the build is usually the least exciting part.
It's also the part that makes the product real.
This is the Insidr build, end to end — see it live.
Try Insidr →Brands: partner with me
Keep reading
- Case StudyReading SEC/Public Filing Data with AIWhat I learned trying to turn messy public filings into something a product could actually use.
- BuildingHow I Use Claude/ChatGPT to Build a Real SaaS SoloHow I go from a blank page to a live product with AI doing most of the heavy lifting.
- PromptsThe Exact Prompts I Use to Go From Idea to Live Product in a WeekendThe prompts I use to go from a rough idea to something working without spending days going in circles.