Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

alireza_hadizadeh's avatar

alireza_hadizadeh started a new conversation+100 XP

5mos ago

I have an existing Laravel e-commerce project that uses an external SMS provider for sending OTP codes and notifications. The provider offers a full API for its own panel, and I want to integrate parts of that panel directly into my e-commerce admin dashboard to improve convenience for my clients (companies and start-ups who buy the project).

Inside my app I already send SMS through a simple service class using pattern/template codes triggered by events. But now I want to add additional features from the provider’s panel into my dashboard, such as:

  • Reports of sent messages
  • Checking SMS balance
  • Sending marketing SMS
  • Managing pattern/template codes
  • Other API-based features

My question is about project structure. Since this is becoming a complete “SMS panel” inside my dashboard, what is the best architectural approach?

Should I:

  1. Create a separate package so I can reuse it in other projects?
  2. Use a module system like nwidart/laravel-modules to organize it as an isolated module?
  3. Apply Domain-Driven Design and treat SMS as its own domain?
  4. Or build it as a separate project and use a subdomain (though this defeats my goal of keeping everything in the same dashboard)?

If anyone has integrated a third-party service panel into their Laravel admin before, how did you structure it?

Also, for future projects where a feature is fully API-based: Is Laravel still a good choice for building the dashboard for such features, or is it better to use a frontend framework like React or Vue (even though I don’t currently have experience with them)?