
🌶️ SaaS startups should never use microservices. Like, never-ever.
Many SaaS startups over-engineer their architecture with microservices. Here's why that's usually a costly mistake—and what to do instead.
Many SaaS startups over-engineer their architecture with microservices. Here's why that's usually a costly mistake—and what to do instead.
Using ARG or ENV for secrets in Dockerfiles can expose sensitive credentials in your final image. Instead, use Docker BuildKit’s --secret to pass secrets securely at build time. Learn how to protect your Docker builds across CLI, Docker Compose, GitHub Actions, and GCP.
Transforming a legacy application into a multi-tenant powerhouse is no small feat. Learn how we tackled the challenges of adding multi-tenancy to a Laravel app, from infrastructure planning to custom bootstrappers, and discover practical tips to future-proof your applications.
Improve your front-end project's performance and maintainability with our guide to refactoring a codebase. Learn about tackling technical debt, assessing your code, planning a strategy, and exploring refactoring techniques.
Have trouble documenting your infrastructure? Infrastructure as code might be the solution you are looking for.
About a year ago, I wrote about managing your ports with Traefik in your local development environment. That blog post described how to set up the Traefik proxy and route all your traffic to the correct container without having to rely on the ports exposed by your container. This can...
It’s no secret that we are big fans of Docker during our daily development work. It’s still one of the easiest ways to ensure a common working environment when developing locally and avoid the “It works on my machine” arguments. Even Laravel ships with a default Docker-based environment...
When writing tests, I often find myself switching between the IDE and terminal windows to actually run the tests. On projects with very large test suites this would often lead to situations where I’d spend time waiting for all the tests to finish. I’d get distracted with something...
One of the most important things when starting to work on a project is to set up a local development environment. For me, this should have the following requirements: * Easy to install, preferably a one-click/command solution * Reproducible across multiple host machines, by everyone in the team Very often, our...