Spilling the beans: Tech stack behind my first SaaS
Shubh Patni
2 replies
I recently launched my first SaaS called https://resme.xyz/and I get a lot of questions asking me about the tech stack behind it, So here I am spilling the beans :)
I decided to use Typescript, Next js, React, Mongo DB, Tailwind, Zustand, and Vercel. Here's why
Typescript
TS is typesafe javascript. I would recommend any web developer to learn typescript. It helps you write much more scalable code and speeds up your development when the number of lines in your codebase grows.
Next js
There is a lot of a learning curve with Next but I think it helps you build applications fast. I know there is a lot of hate for next js but I think there is a reason it’s one of the most popular web development frameworks out there. You can control how stuff is rendered very easily by using server/client components and next/dynamic which was super handy for my application.
It provides you with error/suspense boundaries, and layouts which ease development. It is optimized for SEO, next/image handles image rendering well, it integrates easily with any database solution and next auth very easily. There is a huge community of Next js developers.
MongoDB
I was very confused between choosing a DB solution and choosing between SQL and MongoDB. I know SQL and have used it before but I always wanted to try Mongo and yeah, I chose to learn something new, for my first saas, what could go wrong, right?
Gladly, it was the right choice. Mongo is very flexible and allows you to modify the db very easily. I have changed my db so many times, even after pushing to production and everything is working fine, so far.
I designed my schema more like a relational database even though you don’t need to in Mongo. I did this because it makes more sense to me to have different objects in their schema and refer to them wherever I need them. I would highly recommend you try Mongo if you haven’t already. It’s amazing unless you are building the next discord.
A few tips for Mongo always use “select”, “populate”, “lean”, and “references” to fetch data efficiently. You can learn about these keywords on Google :)
Tailwind
I love Tailwind, it's very intuitive, customizable, easy to read, and works well with themes. I would highly recommend you give it a try and try to use it with variables so you can use the same classes in multiple components.
Zustand
I don’t know a lot about react state managers but Zustand turned out to be a wise and easy-to-use solution for my use case. It can automatically persist and manage data in local storage and you can just use it anywhere without worrying about context managers, providers, etc
Vercel
Out of this whole list, I'm still not sure about Vercel. I experienced a lot of issues using it with the next auth, it would always time out because of the function execution time limit of 10 seconds on the free plan. I had to upgrade to the pro plan which is around $20 a month. I might switch to AWS in the future or any other cloud solution but the ease of development that Vercel gives you as a solo founder is unparalleled.
I think this is becoming a very popular tech stack and there's a lot of active development and community around it, so it's a very good option for most beginners or first-time SaaS builders
Replies
Pam Garza@pamsny
Product Hunt
very cool! thanks for sharing your stack
Share
Thanks for sharing dear.