Embracing Simplicity in Web Development

“Simplicity makes me happy.” - Alicia Keys

The world of web development is a fast-changing environment. Every year, there are new technologies, approaches, frameworks, and libraries. It’s easy for us to lose direction in these environments. Personally, I always weigh the pros and cons before adopting any technology stack for web development. In my opinion, maintaining a critical perspective on the web development tech stack can help prevent feeling overwhelmed. Based on my personal experience, clients do not care about specific technologies like SPAs such as React, PHP & Laravel for the backend, or even microservices. All they want is a web app with good and appealing design.

As web developers, we might overthink the technology stack needed to complete a web project. To overcome this tendency to overthink, I have developed a personal guideline for web development. I believe this guideline is an excellent tool to help achieve the motto “ship it fast, but maintainable”. “Ship it fast but maintainable” means achieving both speed and quality without sacrificing engineering standards.

With this mental model, I am confident that I can be a productive web developer, enjoying life outside the software development area while still earning a good income.

Here are my personal guidelines for selecting technology for web projects: prioritize stable technology stacks over cutting-edge alternatives and aim for simplicity with fewer layers of technology. I will update them frequently to refine and improve.

Approach

Start with a static site first. If you can build it as a static site, then you should use a static site. If a static site is not suitable, consider using a server-rendered application, such as ASP.NET Core, Laravel, Django, etc. For more complex web applications, you might use a Single Page Application (SPA) framework like React or Vue. Most of the times, server-rendered app is enough to be the stack for web project. It has a ot of capabilities and a lot of example to follow.

Design

Tailwind and Bootstrap are both excellent and provide numerous examples that I can use. Tailwind is my go-to option because of its rapid development speed and ease of use.

Database

SQL has proven its worth; you don’t need a NoSQL database for a typical web app unless there’s a specific requirement that NoSQL uniquely addresses. Often, SQL alone is sufficient. In my experience, most web projects I’ve worked on can utilize structured data when designing schemas, as very few projects require flexible or unstructured models. My advice would be to prioritize Postgres initially, but remain open to supporting alternatives should the need arise.

Deployment

When considering deployment, it’s important to factor in cost. I prefer to start with free options, such as Cloudflare Pages, for initial deployment. However, you’re free to choose another deployment infrastructure. Keep in mind, especially if you’re developing a web app for a client, that selecting tools which are both developer-friendly and conducive to long-term maintenance is crucial for success.

Benefits

Let’s discuss about the benefit of simplicity for web development.

Conclusion

I hope these guidelines inspire you to embrace simplicity in your web projects, as it often leads to more maintainable, efficient, and user-friendly applications. However, it’s important to acknowledge that there are scenarios where these guidelines may not be the best fit. Therefore, always be prepared to consider alternative approaches as necessary.

Best of luck with embracing simplicity!