Custom Plugin Interface in Admin Panel or Separated?

System Information
  • Strapi Version: 4.23.0
  • Operating System: OSX
  • Database: MariaDB
  • Node Version: v18.18
  • NPM Version: 9.8.1
  • Yarn Version: 1.22.19

Greetings Strapi community,

I would like to share my development experience and expose my main doubt related to Strapi.

My development stack/structure for this project was:

  • A customer website-client (Next 14)
  • Strapi Application Instance
    • Custom plugin with Strapi Design System
    • Entity Service Models

Positive points

  1. It was really fast to build models, document the entire API and manage our business domain layer.
  2. The authentication service + JWT solved practically everything.

Negative points

  • Developing the entire frontend within Strapi is absolutely difficult
  • The documentation of Strapi design system is very poor
  • The Story Book of Design System do not shows the components properties
  • Many components, such as the media manager (file upload), are not in the design system
  • The User Admin has its own authentication token and to reuse the entity service, I had to use some undocumented “tricks”

After all these challenges, I questioned whether I truly understood the purpose of Strapi.

In my opinion, looking at the illustration below, I believe that the best way to develop, for now, is option B.

Is the purpose of Strapi “only” to efficiently create and model data, or does it also aim to be the best place to create our custom views and interfaces inside the admin panel?