Becoming Modular

November 01, 2024
Daniel Cintra
Becoming Modular

Motivation

I started Visualcom, a small web development agency in Brazil, back in 2003. At that time, I was diving into Macromedia Flash, handling the interactive and motion parts of our projects, along with customer support and project management. We were mainly creating institutional sites with dynamic content using ASP and crafting customized interactive catalogs on CD-ROMs. As time went on, I realized our development process could be much cleaner, faster, and more organized. To achieve that, I recognized the need to enhance my technical skills, so I dedicated myself to learning HTML, CSS, JavaScript, PHP, and MySQL.

An Ocean of Hours

After working on various projects with the fundamental languages, I decided to dive into Frameworks. My first stop was CodeIgniter, and let me tell you, it was a game-changer compared to the raw PHP projects we were doing. It offered a documented structure, patterns, and a community where everyone discussed solutions to common problems. Hungry for more knowledge and feeling confident with my CodeIgniter experience, I moved on to a Framework called Kohana. It was a spin-off of CodeIgniter, created by some talented folks from its community. Kohana was fantastic back then. Then came Laravel; when I first encountered it at Laravel 3, it felt like the perfect fit I had been searching for. No turning back for me. If you're familiar with these frameworks, you'll notice they all sort of belong to the same "family." I also tested CakePHP and Zend Framework, which took different approaches, not worse or better, just different.

Sticking with the same "family line" of frameworks whenever we switch things up really helps us get a grip on the new stuff and start adding value fast. It's kind of like that with other layers too. We moved from raw CSS to Sass, BEM Methodology, Grid 960, Bootstrap, and Tailwind CSS.

ocean

Now, let's talk JavaScript. That's a completely different story. The changes in the JavaScript ecosystem over the years have been wild. We've gone from raw JavaScript and jQuery to using Package Managers, Bower, Node, Gulp, Grunt, Webpack, Module Systems, Backbone.js, Angular, React, Vue, Svelte, and then there's Frontend Routing Systems, State Management, etc... It's been a bit of a challenge! 🤯

Let's not forget the DevOps side of things. From basic FTP to Git Deploys, Pipelines, Docker, and all these things. Programming can be tough, and we can't do it all alone. It's a massive time investment, and time is one of our most precious resources.

city

Some of the projects I've worked on over the years aren't exactly small and need to be maintained for a long time, sometimes over a decade. Without a clear mental model and organization, you're setting yourself up for "bad karma" down the line. At some point, you'll need to introduce new features or update aspects of the project. No one else will make these changes for you, so it's smart to care for your future self. And if you're in a bigger team, why not also look out for your teammates' future?

I'm not just talking about frameworks here. I'm talking about adopting mental models that help you meet project needs, explain your codebase to others, and make the process enjoyable and productive. It's a lifelong learning journey, and what works for me might not work for you, and that's totally fine!

Sure, but another Admin Panel?

At first glance, Modular might appear to be "just another admin panel," but it's far more than that. If you're a developer or part of a team seeking a robust foundation for building projects, opting for a modular approach can be a powerful choice. Designed from a Full Stack Developer's perspective, it addresses common challenges like Access Control Lists, Multiple Dashboards, Persistent Activity Logs, and a seamless routing system that bridges frontend and backend. Plus, it features ready-to-use UI components that autoload effortlessly. Modular not only speeds up builds but also provides a scalable structure, allowing for API exposure or frontend site additions when necessary.

cube

The goal was to avoid reinventing the wheel by integrating outstanding existing tools in a logical manner. If this resonates with you, I hope Modular becomes a useful tool at some moment in your development journey. Keep pushing forward, and happy coding!

Newsletter

To keep informed about the project subscribe to our newsletter (this, by the way, is the Newsletter Module)