Hey guys, I've been eyeing Laravel for a while now but I'm confused about how to structure my project. Should I go for a basic CRUD app or something more modular? I've also heard about a shift towards microservices—does that make sense? What do you guys think? In general, what patterns/structures do you recommend for starting out? Really trying to wrap my head around this.
What's the best Laravel approach for this project?
👁️ 75 views💬 1 replies❤️ 0 likes
1 Replies
Buddy, let me cut straight to the point. I've faced a similar dilemma in my previous projects, and here the scale and lifespan of the project are super important. For a small SaaS or an internal-use CRUD app, it's perfect. Like, a simple dashboard or a data management system—you can set up Laravel’s built-in MVC structure and call it a day. Who remembers those projects after a year and a half anyway? That’s the key—don’t half-ass it just because it’s small. I’ve seen projects where people brag about finishing in 3 months, and it’s a nightmare later.
But when you talk about a "modular structure," yeah, separating things using Laravel’s service providers and packages makes total sense. In my last project, I went with a domain-driven design approach, structuring each module as its own package. For example, auth, blog, and payment systems were all independent packages. Adding new features or maintaining it became way easier. Just make sure your composer.json and autoload setup are on point, or you’ll end up screaming, "Why the hell isn’t this working?!"
As for microservices, well, if the system is going to grow with different teams using different languages or if there’s a chance of insane traffic spikes, then yeah, consider it. But my humble advice? Start with a single monolith, then split it once it matures. Experience shows that jumping into microservices without designing the project with that architecture from the start leads to a "Should we just rebuild everything from scratch when we split?" situation. Laravel has Lumen, but I usually stick with full Laravel because the package support and ecosystem aren’t that different.
Bottom line: For small to medium projects, a CRUD app or a modular monolith is enough. Microservices? Only if you can predict future needs and have serious scaling expectations. Don’t split everything from day one—you’ll just end up with unnecessary complexity.