5 min read

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.

  • Static Site
  • Server-rendered app
  • SPA

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.

  • Tailwind [Default]
  • Bootstrap
  • CSS

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.

  • PostgreSQL [Default]
  • MySQL

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.

  • Static site: Cloudflare Pages
  • Server-rendered app: AWS Lightsail, Shared Hosting
  • SPA: Cloudflare Pages

Benefits

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

  • Simplicity is key to maintenance. Developing maintainable software not only increases user satisfaction but also decreases the risk of project failure in the future. While cutting-edge technologies may offer innovative features, they can sometimes be unreliable, leading to more issues and bugs.

  • Cost efficient. Simpler technology stack can reduce unnecessary cost. Additionally, clients are often concerned about the operational costs of running a web app. Therefore, adopting a cost-efficient approach for web projects is essential.

  • Productive development. By using simpler technology stack, it can help you to concentrate on what truly matters and thereby ensuring the success of your web project. The less complex the tools, the fewer the distractions.

  • Security. In my mind, simplicity for web development also benefits us for fewer the bugs and vulnerabilities. Complex systems can have interdependent components that interact in unexpected ways, leading to security loopholes that are hard to predict and detect.

  • Peace of mind. You know that your web app will work seamlessly because it is maintainable, less complex, and enjoyable process.

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!