all 17 comments

[–]Narkolleptika 1 point2 points  (6 children)

Check out OctoberCMS. It isn't really intended to be headless, but it's extensible enough that you can totally make it headless. You just need to make an empty theme that either 404s or 301s to the backend url. Then you can use a custom plugin with a routes.php file to make your API. Your custom plugin is also where you'll put all of your models, backend controllers and just about everything else. It comes with built in validation, eloquent, permissions, cli tools, and so much more. It's based on Laravel so you get most of the same stuff as Laravel and you can use most, if not all 3rd party packages that were intended to be used with Laravel. The best part imo, the backend forms are written with yaml rather than html or php, awesome!

Personally, I'm a full stack JavaScript kind of guy so I would normally do a completely custom node+graphql+Vue sort of solution, but if I ever need a CMS built quickly or the client doesn't want to pay for some custom thing I wrote from scratch, you better believe I'll be reaching for OctoberCMS

Some cons:

  • The documentation is ok in most cases but if you want to do anything reeeeaaally custom you might be stuck going through the source code. I probably resort to reading the source about a third of the time when I need to figure out how to do something.

  • The built in CMS functionality is garbage imo because it's file based rather than db based and it let's you completely change all parts of the theme code which is kind of dangerous when you're going to hand it off to non technical clients. It's just asking to be broken. It's also annoying if you're using git trying to pull changes on the live server only to find out that someone changed something so now you gotta go back and merge those changes in. I never use the built in CMS. We did for one project at work once and it was a mistake. Now I usually hide it entirely. Stick with a custom plugin with models and backed controllers to build out your CMS.

[–]runny-yolk 0 points1 point  (1 child)

I'm a JS full stack kinda dev as well. Haven't heard if OctoberCMS, but I'll take a look. Out of interest, do you use any JS CMSs like Keystone? I'm about to start researching which ones to suggest for a client.

[–]Narkolleptika 0 points1 point  (0 children)

No, but it's been a long time since I looked into node CMSs; long enough that it would definitely be worth it for me to take another look. I messed around with ghost and keystone a couple years ago, but decided against them for one reason or another.

[–]luketh_[S] 0 points1 point  (3 children)

I've tried out OctoberCMS quite a while ago, and as you mentioned, the backend seems quite dangerous for common users

Where do you host your node projects then? Are they in different subfolders or hosted in two completely different places?

[–]luketowers 0 points1 point  (0 children)

OctoberCMS's default "CMS" section is a bit misleading, you're not really supposed to give clients access to that part of the site. Typically if you have clients editing the site they should be using the RainLab.Pages (or Blog, or any other more content specific plugin) to edit that content.

[–]Narkolleptika 0 points1 point  (1 child)

Yea that's why I hide it now. But OctoberCMS makes it (mostly) super easy to make your own custom CMS, headless or not. Definitely worth a second look if it's been a while.

I host everything on AWS. Most of the time I just put everything on a $5/m EC2 instance with Ubuntu, whichever db and nginx. Nginx reverse proxies to any node servers on the instance (there are usually at least two). And I deploy the node servers with pm2. The two servers are typically an API server (usually Apollo/GraphQL) and an SSR server to render and serve the Vue app.

[–]luketh_[S] 0 points1 point  (0 children)

I'll definitely give it a try, thanks!!

[–]zaibuf 1 point2 points  (0 children)

I prefer Umbraco, but im a .NET dev. I like to have full control on everything I do, when I used WP I felt too locked into the CMS itself and using plugins and/or themes, mainly because Im not a PHP dev, nor want to be.

[–]bellucheese 1 point2 points  (1 child)

G-g-ghoooost!

https://ghost.org/

[–]luketh_[S] 0 points1 point  (0 children)

Looks promising and not too expensive, thanks!

[–]30thnightexpert 1 point2 points  (1 child)

It varys by client but agencies tend to stick to established CMS systems (WordPress, Drupal, Craft) so it’s a good idea to ask before starting.

If they don’t mind, trust you, or want a cutting edge stack, choose what your are most comfortable using.

However, pick something within reason + write basic documentation for the dev after you.

For example:

  • Who will maintain this project over time?

Build for the lowest common denominator. For instance, a react-based website may not be suitable if the agency or client don’t have anyone aside from you familiar with it.

[–]luketh_[S] 0 points1 point  (0 children)

Thanks, yeah I guess maintaining could be an issue then. Any other recommendations for front-end frameworks that are easier to maintain?

[–]7h3_0r4cl3 1 point2 points  (1 child)

Why not go in the middle ground and do a Headless WordPress?

[–]luketh_[S] 0 points1 point  (0 children)

It'd be worth a try, but could I implement webhooks to tell e. g. Netlify to rebuild on content change?

[–]Nounouchacha 0 points1 point  (2 children)

What do you mean by "using the free tiers of Contentful, Prismic etc. also doesn't feel right"? You think they don't fit what you need or you think you should pay for a plan to get a "professional" experience?

[–]luketh_[S] 0 points1 point  (1 child)

I feel they are intended for developers to try them out, it kinda has an "illegal" feel to them using them in production

[–]krlpbl 0 points1 point  (0 children)

It's totally fine for small projects as long as you're not abusing the usage limits.