When starting a new project with multiple components like website, admin panel, API, subscriber panel etc. how do you structure it?

Published 1 year ago by Ruffles

Hey there,

I am starting a new project and I am wondering if thinking about scalability is a good idea at the beginning when I have no idea about any stats.

So my question is:

When starting a new project which has multiple components like Website, Admin panel, Subscriber panel, API, iOS app, Android app and maybe a few more, do you:

  • Build them all as one Laravel application
  • Build an API in Laravel / Lumen and use front end frameworks like VueJS / Angular / AngularJS / React
  • Build each component in a different Laravel application, so you end up with like 4, 5 or maybe more Laravel applications which most of them will share the same features and / or models
bzbislawski

This is probably not an answer for your question but you also can create own composer packages which will increase scalability of your project.

primordial

I'm currently building SPAs and we start with a decoupled frontend and an Application API. The frontend only ever talks to the application API which in turn, may talk to other microservices such as an "asset storage microservice" which is responsible for storing/retrieving from S3.

The microservices are built in whichever language/framework takes the developers whim (within reason).

We also use a lot of packages and deploy solutions inside a docker swarm on AWS.

Monoliths have their place in the world but we've made an effort to move away.

Sounds like a fun project. Good luck!

Ruffles
Ruffles
1 year ago (294,940 XP)

Building the project as packages might be useful but it has downsides like the need to update all packages every time you add new code in one of the packages.

Please sign in or create an account to participate in this conversation.