There is thousand programming language framework, tool, library to make app now days. Nodejs, go lang, Rust, Java, Nextjs, Reactjs, Vue, you name it. Choosing the right tool for the right thing is what we call “effeciency” and “effective” in developing an app. Dilemma during initiate project is a common problem in every developer, I will explain my simple stack for my simple application.
Frontend Framework
After I use Nextjs 14 is pretty heavy with their tons of feature, I switch using Reactjs, React Router and bundle with Vitejs. That’s enought for me. Simple and lightweight!
React Router is library to handle route in reactjs framework, it has been used in Remix. Load and process data is common process in frontend, React Router support it by default using their loader
and action
.
You will never use SEO (Search Engine Optimization) if your app is used for internal case. But, if your app is a public app, I would recommend using static data or generate from markdown. hugo is the fastest framework for building public website. I create this site using hugo, it’s simple, the fastest builld html, simple API data, and advance template engine. If your data is generated from backend, I would recommend template engine.
Backend Framework
Backend framework used to communicate with frontend and store data into database. Golang is good for us to create small binary with low memory footprint.
But, since I have not much knowledge in golang, I use nodejs, there is many framework backend API like expressjs. It’s simple and lightweight too. Nestjs Framework support Dependencies Injection by the design for easy testing and modular system. Prisma as library database connection and query. It’s easy and focus on process development.
Database
In other hand, database I use simple and portable database, let me introduce to you Sqlite. Why? it’s fast, sql-format query, portable. I love how portable it is, just copy-paste the database and you get the whole database without running complicated command.
Postgresql is great for simple app or advance level app, you can use it for starter and easy for scalability
Running App In Daemon
Recently docker is number #1 most-used developer tool. I use this a lot to run app and database in daemon, but there is some ceveat for basic and simple app, you have to build, push the container and make system architecture using docker ecosystem. What is alternative for this scenario? just for simple app?.
Systemd is the answer!, I just found in this stackoverflow answer, he also gave example of service
script. You don’t have to install any other app like pm2, forever, or anything else. If you use linux operation system, it’s work out-of-the-box!.
Nohub in other had is unix command to run service in background. We will talk about this later more!
Rule of thumb
Less is more, avoid over-engineering!. Simple tools make you focus on development and delivery instead using fancy tools. Use fewer libraries and dependencies at the start.
Conclusion
I use simple frontend and backend framework for simple app too, I know this solution is not mean for everyone, but in some case you should have to create simple app so this is the answer. If you found this is usefull, share it to your friend and give me your insight!. Thank you for your time and stay tune!.