[Codevel Project] - Choosing platforms and libraries for backend and frontend (2)
Choosing the right technologies and frameworks when building a website is super important. You definitely don’t want to get almost done and then realize there was a much better option out there than what you picked.
I. Priorities
Since this is a personal project, I focus on free platforms that fit my needs. Anything that requires payment won’t be mentioned here =))).
First, we need to figure out the core components of a website. The three most important ones are: Backend, Frontend, and Database.

II. Backend (SpringBoot + JWT + ...)
Let’s start with the Backend. There are tons of languages and frameworks you can use here—Java (Spring Boot), Python (Flask, Django), PHP (Laravel), ASP.Net, and more. Each has its own strengths. For this site, I chose Spring Boot, simply because I’m already familiar with it. Plus, from what I’ve learned, it’s a solid choice for building REST APIs, which I rely on heavily in most of my projects.
III. Frontend (NextJS + HTML + Bootstrap + ...)
Next is the Frontend. Just like the backend, there are endless options. In the past, I often used Angular since that’s what I had picked up on my own. Pairing Angular with Spring Boot was really convenient, especially with OpenAPI—it could generate functions automatically, making API calls as simple as just calling the right function with parameters, no need to worry about endpoints. But recently, I’ve been learning about Next.js, and I’m really impressed with its performance. It offers great SEO features right out of the box, something I used to spend hours researching on forums when using Angular. With Next.js, it feels like SEO optimization is built-in.
III. Database (MySQL)
Finally, the Database. I went with the community edition of MySQL. Its performance is more than enough for my needs—mainly blog posts, not too many tables or complex relationships. In future posts, I’ll share details about my database design, the tables, and how they relate. Why MySQL instead of Postgres, SQLite, or something else? Simple: I’m comfortable with it, and it’s free =))).
IV. Some other things
Besides that, for CSS I mostly use Bootstrap with a bit of custom CSS. My site aims for simplicity, and Bootstrap is more than enough. For caching? I don’t need it yet, but if I do, Redis is the obvious choice. For session management, I use JWT—I’ll write a separate post about this since it took me quite some time to figure it out.
Anything else? Oh yeah—images! I’m using MinIO (community edition, of course) for storage =))) all free again. As for deployment, both backend and frontend (plus the database) are containerized. Before, I used to just run things with java -jar or pm2/forever for Node.js apps, but containers make life so much easier.
V. Summary:
- Backend/API: SpringBoot
- Frontend: NextJS, Bootstrap, CSS
- Database: MySQL
- Storage: MinIO
There’s definitely more I’ll share later, but for now, these are the main things I wanted to cover. I’ll add more as I go along. See you in the next post!