Every project starts the same way for me: a notebook and a pen. Before I touch any code, I need to think through the idea, figure out if it's even possible, and plan how I'm going to build it. This process has saved me from wasting weeks on things that wouldn't work.
The key is being honest with yourself early. Is this actually buildable? Can I afford the tools I need? What's the fastest path to something that works? I'd rather spend an hour sketching flows and crossing out bad ideas than discover problems three weeks into development.
The Process
Example: LearnEngine
Idea Generation
Start with a high-level concept. Doesn't need to be fully formed, just enough to get excited about. Write it down before it disappears.
High-Level Approach
Consider platform constraints and architecture decisions. Backend vs monolith? API design? What are the non-negotiables?
Viability Research
The reality check. Research costs, test tools, find affordable solutions. If it's going to cost $500/month to run, maybe rethink the approach.
Initial Build Phase
Set up the foundation. Pick your stack, scaffold the project, get something running. Speed matters here.
User Flow Sketches
Sketch out core flows on paper. Login, search, main actions. These don't need to be pretty, they need to be clear.
Complexity Testing
Build a minimal version to test the hardest parts first. Find out early where the dragons are hiding.
Iterate & Pivot
Adjust approach based on what you learn. Sometimes the original plan was wrong. That's fine. Pivot fast, don't get attached.
Solve Hard Problems
Tackle the identified challenges head-on. This is where most projects die. Push through.
Deep Dive & Refine
Hands-on testing, tool selection, polish. By now you know what works. Double down on it.
Example: LearnEngine
The Idea
High Level Approach
Viability Research
Build Phase 1
Backend & Complexity Testing
Deep Dive & Model Selection
Tools & Technologies
Explore more