Need some advice - a few questions regarding Strapi

System Information
  • Strapi Version: 3.4.4
  • Operating System: Windows 10
  • Database: MongoDB
  • Node Version: 12.16.1
  • NPM Version: 6.13.4

Hi everyone,

I’ve got an inclination towards using Strapi for my project but I’m totally confused if it provides enough flexibility in the backend and frontend or not. So basically I’m going to start working on a 6-month long project and I need advice regarding which would be better suitable for my application: either Strapi or simple Node+Express. It’s a project related to providing school students with their course-related challenges, study material, etc. This involves tons of flexibility, database operations, computations, and analysis, keeping history and progress records, logs, and much more.

IDK if this is too much, but I have a few questions related to Strapi in general and some functionalities - please guide me to the best of your knowledge, thanks!

i) Is it possible to customize the “ID” to its own type and names?
ii) Is the admin panel fully customizable or are there any constraints involved?
iii) Is ‘caching’ possible i.e. dealing with multiple requests at once - any plugin/middleware which enables this task?
iv) The main important question: Node-express or Strapi?

Currently no, this isn’t really a limitation of Strapi (kinda) but more so just some technical debt in the database connectors. We do eventually plan to support this, but at the moment there are too many hard coded integer references in the bookshelf connector (for SQL) and ObjectID matches in the mongoose connector (for MongoDB). We plan to revisit this likely in Q3 when we do our database refresh. It is on our radar as we understand using UUIDs on SQL databases as a primary key is a good security practice.

Basically yes, however it may not be the best environment for novice developers to learn React. There are many aspects that can be easily customized and we plan to make this easier with the new plugin API coming towards the end of Q2.

Absolutely, there is a community middleware that uses Redis as an LRU cache with many others in the community contributing (even myself as an employee of Strapi):

And we always welcome community plugins, packages, and middlewares. We do our best to keep a record of community packages on our awesome-strapi repo and on our forum (where you are now :wink: )

Entirely up to you, I would suggest though, if you do go with Strapi and really want to let your students play around. We openly support and encourage usage of Strapi in educational institutions to the point of specifically giving away free enterprise edition licenses to students:

If you have any questions about the program or have any other general questions/concerns, please don’t hesitate to reach out to us

You can reach out to these two Strapi Employees via a PM if you have specific questions on the program @Mcastres or @malgamves

The real benefit we offer to students is being able to spin up a backend with prebuilt CRUD REST routes so that newer or experienced developers can focus on building a frontend and not as much coding for the backend with the hope and goal to be zero-code backend headless CMS