As a developer, I am always tinkering with new technologies, and I often jump from one side project to another. Most of the time, this is because I've gotten bored with what I'm building and have found a new shiny technology that I want to try. The projects that do see the light of day are those for which I spend hours searching for the right platforms to launch them, ensuring they are easy on the pocket. I am often looking for free options. I built this website to help fellow creators find the right platform to wrap up their side projects faster. Over time, I have found myself returning to certain tools to help make the development effort smooth.
I don't think there is a perfect technology, and I believe the best technology for building your side projects most of the time is to use the technologies you are already familiar with. Be it JavaScript, Python, PHP, Java, React, Vue, Svelte, NextJS, RoR, etc. This approach helps us focus on solving the problem at hand rather than optimizing for high performance, clean code, and other optimizations. My mantra is: do it for free, and don't reinvent the wheel.
I want to share my favorite tools and technologies that I find myself going back to for almost every project.
My history with frontend technologies is long. I have used jQuery, Angular, Vue, Svelte, and then finally jumped onto the React train. To be frank, of all the frameworks I have tried, I found Svelte the most fun to build with. The reason I stick with React/NextJS is for one reason only: the ecosystem. There are a lot more well-maintained tooling options in React compared to Svelte. And why NextJS instead of Remix? Well, I picked up NextJS because it seemed like the more popular option on the block.
I have tinkered with many different UI toolkits such as Bootstrap, Material, Ant Design, Carbon, and Blueprint. I have found the relatively new kid on the block, shadcn/ui, to be the most developer-friendly and elegant. It comes with support for TypeScript (I ❤️ typed syntax), is built on top of TailwindCSS & RadixUI, and lets me modify the provided core implementation. Today, I have made changes on top of it and use the customized components in all my side projects.
My go-to authentication integration is Clerk. It makes authentication so simple. You get out-of-the-box support for most of the user authentication mechanisms, such as email-password, Gmail, Github, and built-in support for forgot password with great email templates. What tops this is the fact that they provide a beautiful user management component that is just a single line of code. Clerk comes with a generous free plan (5,000 MAUs). One thing to note, though, is that Clerk can become expensive if you were to cross that 5,000 MAUs threshold, as the costs could suddenly be in the order of hundreds of dollars. But for me, in the early stages of building and launching a project, I am most focused on and worry about the $$$ due to MAUs when I get to that point. For most early projects, I highly recommend Clerk.
This is my go-to database, and I have never considered any other database when starting a side project. It is one of the most popular databases on the planet, open-source, actively developed, with a great community and extensions. It scales very well, and I can go a long way with the built-in tooling for most problems. Postgresql is relational with all the standard data types and also supports JSON, GIS (PostGIS extension), vector (pgvector extension), and more. I can leverage Postgresql for search, storing vector embeddings for AI projects, storing spatial data for geocoding. There are a lot of options available to use Postgresql on the cloud; my favorite ones are Vercel Postgres, Neon, and Supabase.
Prisma makes it very simple to integrate with Postgresql. It auto-generates the migrations and makes development very simple. It may not be the most optimized way of interacting and querying the database. To be honest, for most use cases, you will find no real dip in performance, and the developer productivity it provides trumps everything. And again, they have great docs and a great community & resources.
Given that I use NextJS, this should come as no surprise. Vercel is one of the best platforms to deploy projects. They have a generous free tier; if you are using NextJS, then it works seamlessly, and they now provide support for Postgresql, Key Value, Blob store, and have a great community with deep integrations with a lot of popular SaaS platforms.
I truly believe that the best stack for anyone building a side project with the intent to ship it fast is to build on technologies you are most comfortable with and use popular free tools to avoid reinventing the wheel. But that is not to say that you shouldn't build things from scratch. If the intent of your side projects is to tinker, then go ahead and try something different. However, for cases where you are looking to build a side project to monetize in the future, you are probably better off building them with whatever helps ship your project fast. You can always replace parts of the project when your product has some traction and you're committed to building it for a much longer period of time.
I have consolidated tools that can help launch your side projects faster, which have great free plans here.