Hey Dev.to!
Long story short, I am a front-end developer working on a full-stack team management application. The app is built in Node.js and MySQL, and allows team leaders to invite their team members, where they will take an assessment where they can then be graded and organised accordingly within a company.
Its being BETA launched in a few months, which I have got it stable for, but moving forward I fear for the expandability of the application in its current state.
I am tempted to start from scratch, or at least rebuild certain aspects of the app over again.
The idea is to have team management functionality but to bring in data from third-party HR applications through their APIs and then sort the user data within the application. I would like to at some point integrate some sort of in-app training functionality (videos/materials etc) as well as build a (light) testing section where users can solve problems and get a higher rating on their account.
My initial instinct was to go straight in with a Node.js/React stack, however, my skill sets lie primarily with the front-end and I fear my lack of back-end knowledge will let me down with the growing complexity of the application.
A Headless CMS like Sanity or Strapi seems like a perfect solution for those users who actually visit the application and sign up, but I am not sure just how well these are suited to allowing more complex functionality. I guess if everything was coming through a GraphQL layer then the headless CMS could be performing in parallel to data pulled from separate third party APIs. Or are they just suited to the standard website/blog/e-commerce use case I see in all the examples? Would this be a good solution for my application, or am I just opening up new problems?
Extra question:
How would you structure an application like this?
TLDR:
Is a headless CMS a good option for a complex application? If not why?
Top comments (3)
I hope someone sees and answers this as I do have the same queries.
I answered
Well I think for your use case it's good to have a headless cms as it will generate the rest api or graphql whatever it may be and it will be easy for the user to upload the videos nd other training materials. It can be used for the e-commerce apps and websites and will do the job in those cases. I don't think there will be any problem in using it but the point to be noted is how you handle the user roles.
If you want to handle roles in any webapp you should make it with some Backend Technologies as it will save the cost of deployment as the Headless CMS' can cost you more than 10 times the cost of a node based app and you will mostly use 3rd party services for static assets and those are also limited.
Better use s3 for static assets and AWS, GCP or Heroku for hosting the REST API and Netlify for Front end may be.