I built two AI SaaS products solo, from Jaipur — here's the full stack and what I learned
I'm Mukesh, a solo developer based in Jaipur, India. Over the past couple of months I built and launched two AI-powered products end to end — no team, no funding, no agency. Just me, the Claude API, and a lot of late nights.
This week both products went live with real payments enabled. Here's what I built, how, and what I'd tell someone starting the same journey.
The two products
QueryMind — querymind.mukeshaitools.com
An AI-powered SQL learning and database assistant. You can connect your own database (PostgreSQL, MySQL, or MSSQL) or use the built-in practice database, ask questions in plain English, and get help writing, debugging, and understanding SQL. It also has over 1000 practice questions with a scoring and progress system.
Student Corner — student.mukeshaitools.com
An AI study companion for Indian students, covering school subjects through competitive exams — NEET, IIT-JEE, CAT, GATE, CLAT, CA, and UGC-NET. It works across Hindi, English, and Hinglish, since that's how most students here actually think and ask questions. Features include MCQ practice, visual timelines, and map-based learning modules.
The stack
- Backend: Node.js / Express
- Database: Neon (serverless PostgreSQL)
- Hosting: Vercel
- Payments: Razorpay (live mode)
- Email: Resend
- AI layer: Claude API (Sonnet for QueryMind, Haiku for Student Corner)
- Auth: JWT + bcrypt
- Monitoring: Sentry
- PWA: manifest.json + service worker, installable on mobile
Things that took longer than expected
Auth is never "just auth." Signup, email verification, password reset, trial periods, auto-downgrade on trial expiry, rate limiting — each of these felt small individually but added up to a significant chunk of total build time.
Serverless + database connections need care. On Vercel's serverless functions, I ran into connection pool exhaustion early on. Reusing pools properly across invocations instead of creating new connections per request fixed it.
Prompt caching matters once usage grows. For QueryMind (using Sonnet), prompt caching meaningfully cut API costs. For Student Corner (using Haiku), I found cache hits weren't landing the same way, so I kept it simple there instead of over-engineering.
Payment gateway KYC takes real time. Getting Razorpay to live mode involved video KYC, domain verification across three domains, and webhook setup — plan for this to take longer than the actual payment integration code.
Where things stand
Both products are live with free tiers and paid upgrades. The first real payment — a ₹99 subscription on Student Corner — came through this week. It's a small number, but it's the first proof that someone was willing to pay for something I built alone.
What's next
I'm currently focused on distribution: reaching out to a network of schools and coaching centers for Student Corner, and sharing the SQL learning angle of QueryMind with developer communities.
If you're building something solo, or working with a similar stack, I'd genuinely like to hear from you — what worked, what didn't, what you'd do differently. And if you want to try either product, I'd really appreciate the feedback.
Top comments (0)