The Graveyard of Good Ideas
Every developer has a folder of abandoned side projects. I had seventeen. Seventeen half-built apps, started with enthusiasm, abandoned when the dopamine wore off.
Then something changed. In the span of three months, I shipped:
- Shadow — a privacy utility for screen sharing
- ThoughtStream — a thought-capture tool for developers
- Two ML models — published on Hugging Face
- Multiple codelabs — published on my portfolio
Here's the framework that made the difference.
The Rules
Rule 1: If You Can't Describe It in One Sentence, Kill It
"Shadow keeps your notes invisible during screen sharing."
That's it. One sentence. If your idea needs a paragraph to explain, it's too complex to build alone.
This isn't about dumbing things down — it's about clarity of purpose. When you know exactly what you're building, every technical decision becomes easier.
Rule 2: Ship in 7 Days or Kill It
Not "finish" in 7 days. Ship in 7 days. Put it on the internet where humans can use it.
Why 7 days?
- Short enough that you can't scope-creep
- Long enough to build something real
- Forces ruthless prioritization
If you can't get a working version out in a week, either the scope is too big or you're building the wrong thing.
Rule 3: Build What You'd Use
Both Shadow and ThoughtStream solve my own problems:
- I was paranoid about showing private notes during screen shares → Shadow
- I wanted a place to dump thoughts without friction → ThoughtStream
When you're your own user, you don't need user research. You don't need surveys. You know the pain because you feel it daily.
Rule 4: Choose Boring Technology
My stack for shipping fast:
| Layer | Choice | Why |
|---|---|---|
| Frontend | Next.js / React | I know it cold |
| Desktop | Electron | Cross-platform, JS-based |
| Backend | Supabase | Zero backend code |
| ML | Sentence Transformers | Best docs, easiest API |
| Hosting | Vercel | Git push to deploy |
No Rust rewrites. No custom build systems. No "I should try this new framework." Boring tech ships fast.
Rule 5: Marketing Is Not Optional
Building a product nobody knows about is the same as not building it. My minimum marketing checklist:
- Landing page with clear value prop
- One tweet thread explaining the problem + solution
- One LinkedIn post
- Submit to relevant communities
- Add to portfolio
This takes ~2 hours. If you can't spare 2 hours to tell people about something you spent a week building, you didn't care about it enough.
The Process
Day 1: Design the API, Not the UI
Start with the core logic. What does the product do? Write the main function first. For Shadow, Day 1 was: "detect screen sharing → hide specified windows."
Days 2-4: Build the Core Loop
The main feature, working end to end. No settings page. No onboarding flow. No edge cases. Just the core loop, working.
Days 5-6: Ship-Ready Polish
Make it not embarrassing. Good enough UI. Error handling for the obvious cases. A landing page.
Day 7: Ship
Put it on the internet. Tweet about it. Move on to the next thing.
What I Cut (Every Time)
- Settings pages — hardcode sensible defaults
- User accounts — local storage or anonymous until proven necessary
- Analytics — add after you ship, not before
- Perfect error handling — handle the top 3 errors, log the rest
- Custom design system — use an existing one or inline styles
- Tests — controversial, but for v1 of a side project, manual testing wins
You can add all of these later. But only if people actually use the product.
The Agentic AI Multiplier
Here's where it gets interesting. Agentic AI tools like Antigravity compress the timeline even further:
- Day 1 tasks that took 8 hours now take 2
- Multi-file refactoring that took a day takes 20 minutes
- Landing page creation goes from 4 hours to 30 minutes
But the framework stays the same. AI makes you faster at execution, not better at decisions. You still need to:
- Choose the right problem
- Define the right scope
- Know when to ship vs when to polish
The Hard Part
The framework is simple. Following it is hard. Every atom of your developer brain screams:
- "I should add dark mode first"
- "This code needs refactoring"
- "I should write tests before shipping"
- "Let me just add one more feature"
Ignore all of it. Ship the ugly thing. Get it into people's hands. Then improve based on real feedback, not your perfectionism.
Results
Since adopting this framework:
- 4 products shipped in 3 months
- 2 ML models published and being used
- Multiple codelabs written and published
- 1,000+ community members engaged
vs. the previous 18 months: 17 abandoned projects, 0 shipped.
The framework works. Use it.
See the products: Shadow · ThoughtStream · Models