SkillNest AI started as a weekend prototype to see if we could pair a CMS with an LLM tutor in a way that felt useful rather than gimmicky. Nine months later it has 12,000 monthly active users, a paying subscription tier, and a roadmap longer than we'd like. Here's what we'd repeat and what we'd burn down and rewrite.
What worked
- Choosing Strapi over a custom CMS — let our content team move without an engineer in the loop.
- Starting with one persona (self-taught learners, 22-30) and ignoring everyone else for the first six months.
- Razorpay for payments — Indian subscription handling without the usual headaches.
- Treating the AI tutor as a feature, not the product. It augments the courses; it doesn't replace them.
What we'd do differently
- We picked PostgreSQL for transactional data and a separate vector DB for embeddings. Today we'd just use pgvector and skip the operational overhead.
- We over-invested in admin tooling early. The content team didn't need most of it. We should have shipped the rough version and let them tell us what to build.
- We launched without an email pipeline. Adding it after the fact meant retrofitting consent capture across 4 entry points.
Architectural decisions we're still living with
We chose Next.js App Router on day one, and that decision has aged extremely well — Server Components removed an entire layer of data-loading code we'd otherwise be maintaining. We chose a microservice split between courses and analytics, and that decision has aged poorly — the boundary keeps leaking, and we'd merge them today if we had the budget.
The honest summary: the things that mattered most were not the technology choices. They were the discipline to ignore feedback that wasn't from our target user, and the willingness to ship the embarrassing v1.