The Best Tech Stack for Your Next Side Project
Sotiris Kourouklis
Posted on April 16, 2024
I launched my startup eatlink.gr in less than six months while managing other projects. Here's how I did it and the technology stack I used.
Simplicity is productivity
Yes, simpler code leads to a better final product and quicker shipping.
Being simple involves choosing technologies that streamline your workflow, even if it means giving up others that could complicate your coding process.
Design your Database first
The most important thing when creating software is designing your database. Begin by spending a significant portion of your time considering the features your product will have.
Create a solid foundation and refine your database as much as possible before you start coding. While making changes to your database will be inevitable, the fewer changes you make, the faster you can launch your project.
JavaScript & Create React APP
Using Create React App with JavaScript sped up my development. While TypeScript could be beneficial in a larger team setting, for solo work creating simple and reusable components is more than enough. Just keep your components small.
Remember, you can always refactor your code as your project grows. Additionally, many TypeScript users often resort to using the any
keyword to bypass persistent errors, which essentially defeats the purpose of TypeScript.
PHP & Laravel
Everyone here might be surprised, but PHP, especially version 8.3, is really fast and simple to use. Laravel eliminates a lot of unnecessary work for me.
What about Python, GO, Rust, or Java?
Python is a great option, and with Django, you can easily replace Laravel. GO, Rust, and Java don't offer many ready-to-use solutions. In most cases, you need to code a lot of things yourself, and if you don't, these languages are much more complicated than PHP or Python.
And what about scalability?
Go, Rust, and Java can be scalable, but remember, you haven't made any money yet, and you might be trying to fix problems that may never even arise.
CSS Framework
No, I didn't write the CSS myself. In the admin panel, I use Material UI, and on the frontend, I am using Bootstrap. The application may look a bit simple, but with a few tweaks to the theme.js
of Material UI, it can look much better. Why spend hours designing when you can remove thousands of lines of code with one npm install
?
Docker
Yes, I have used Docker. Docker might seem complex initially, but I have created several boilerplate Dockerfiles for PHP, React, and NGINX, which I reuse in all my projects. These Dockefiles simplify the deployment process significantly, making it 10 times easier. You can deploy to any server environment with just one command: docker compose up --build
.
Deployment
The only complex tool eatlink.gr uses is Kubernetes. However, I have deployed my cluster on Vultr instead of AWS. Vultr is much more straightforward and eliminates many layers of abstraction. You can deploy a K8S cluster in just a few minutes.
Conclusion
Launching a startup like eatlink.gr quickly while managing multiple projects is possible with the right technologies. Using simple, productive technologies like JavaScript with Create React App, PHP with Laravel, and efficient CSS frameworks helps streamline development.
Additionally, tools like Docker and Kubernetes, particularly on platforms like Vultr, simplify deployment and scalability. The key is to start simple, select the right tools, and scale as needed. This strategy saves time, conserves resources, and enables quick adaptation to market changes.
Thanks for reading, and I hope you found this article helpful. If you have any questions, feel free to email me at kourouklis@pm.me, and I will respond.
You can also keep up with my latest updates by checking out my X here: https://x.com/sotergreco
Posted on April 16, 2024
Join Our Newsletter. No Spam, Only the good stuff.
Sign up to receive the latest update from our blog.