The side project is where most products start. The gap between a weekend hack and something people pay for is filled with uncomfortable decisions, boring work, and a fundamental shift in how you think about what you’re building.
Key Milestones
- Week 1-2: Scratch your own itch. Build the smallest thing that solves your problem.
- Week 3-4: Share with 5 people who have the same problem. Listen more than you talk.
- Month 2: Someone asks if they can pay for it. Say yes, even if it’s rough.
- Month 3: Charge real money. Set a price that makes you slightly uncomfortable.
- Month 4-6: Decide: commit or kill. In-between is the danger zone.
- Month 6+: If you’re growing, start thinking about team, scale, and sustainability.
The Pricing Model
Don’t overthink pricing early. Start simple:
TIERS = {
"free": {
"price": 0,
"limits": {"queries": 100, "storage": "100MB"},
},
"pro": {
"price": 19,
"limits": {"queries": 10000, "storage": "10GB"},
},
"team": {
"price": 49,
"limits": {"queries": "unlimited", "storage": "100GB"},
},
}
def get_tier_usage(tier: str, usage: dict) -> dict:
limits = TIERS[tier]["limits"]
return {
feature: f"{usage[feature]}/{limit}"
for feature, limit in limits.items()
}
The Mindset Shift
Building a side project is about exploration. Building a product is about commitment. You stop chasing interesting technical problems and start solving user problems — even when the solution is boring.
The hardest part isn’t the code. It’s answering the question: “Am I willing to work on this for the next three years?” If the answer is yes, you have a product. If not, enjoy the side project — there’s no shame in that.