What a perfect (minimalistic) CMS should have?

Viewing an application data is the easiest part of development, but to have fully working app we need to build our own environment from scratch. Sure, there are packages on atmosphere for specific tasks, but this still may require to make them work together.

Here is the question: what would you expect from meteor - based CMS? Would it manage pure Mongo collections turned into editable forms or maybe force developers to use predefined collections?

Here is some features what would I expect:

  • add editable tree view of mongo structure, same as in Firebase,
  • add visual editor for schemas of data, and code snippets, generator to use them in templates (create/view/edit/remove items),
  • add users and roles (with permissions for accessing certain schemas / actions),
  • add visual route editor - for redirecting url’s to specific templates and yields,
  • add panel for managing installed meteor packages,
  • including css/js files only to specific routes (for example admin.css only for /admin/*
  • generate ready to copy & paste - user forms, such as register, recover, edit data, view profile
  • no themes, no bootstraps - pure management system.

Ps. Orion.js built in Meteor seems to be down and it’s github activity also, same thing with Relax.js. All of this projects should be funded with at least small amount of money from other developers or contributed on regular basis, to keep it alive. This is my personal view on CMS, I would like you to share your thoughts in this field, especially the developers who used not-so clean solutions like mixing php with html in Wordpress.

Hi @antraxis

I’m working on something similar, so your post title jumped off the page at me. I like your ideas.

I am very new to meteor but the more I learn the more I like it.

I have used Drupal and Wordpress and I don’t like either of them:
In biological evolution, bad ‘code’ dies, in evolving software it lives on and creates monsters.

I think I am coming at the problem from a different angle to you, but maybe there is useful cross-over between our approaches/ideas. I’ll explain my ideas so you know where I’m coming from, and then address your expected features list.

My current project is to create a simple information website with a few pages, a contact form, and maybe a search facility. In my experience this is a typical minimum requirement. Having begun the layout design using meteor (nemo64:bootstrap), I began to wonder if I could continue to use meteor to create the whole thing…

My thoughts began by re-imagining the CMS concept:

At the simplest, administrators create content which is displayed to viewers using pre-defined layout.

Content:

  1. Text – paragraphs, lists
  2. Other stuff that fits into rectangular area – images, video.
  3. Stuff that takes up no visual space but maybe requires control – sound files
  4. Form input – text boxes, check boxes, radio buttons, …
  5. Tags, and other meta-data, to categorize content.
  6. What have I forgotten…?

Much content necessarily belongs together. For example, an article with a title, a few paragraphs and an illustrative image. So we need a way to group content. This could be part of the tag system taxonomy from item 5) above.

The view/layout part of the system then uses pre-defined (by the admins) structures to create units of layout, which in turn are inserted into the overall structure.

Meteor is ideal for the back-end admin interface – just look at this forum system :slight_smile: – but it isn’t necessarily the best for delivering what the viewer/user sees, given that most websites consist of mostly static content. My current solution is to use meteor to create static pages which are then served by NGINX.


Your feature list:

- add editable tree view of mongo structure, same as in Firebase,
Could we create a basic structure that covers 99% of use cases, so that this feature is deferred to version 2?

- add visual editor for schemas of data, and code snippets, generator to use them in templates (create/view/edit/remove items),
Not sure I quite understand this.

- add users and roles (with permissions for accessing certain schemas / actions),
Yes, definitely. But not crucial for the very first release – one admin can do a lot.

- add visual route editor - for redirecting url’s to specific templates and yields,
Yes, definitely.

- add panel for managing installed meteor packages,
Maybe in version 2…

- including css/js files only to specific routes (for example admin.css only for /admin/*
Yes, definitely.

- generate ready to copy & paste - user forms, such as register, recover, edit data, view profile
Or just let admins create their own. But nothing wrong with a few pre-defined.

- no themes, no bootstraps - pure management system.
How would the user/admin create the viewer-facing bit?
My fantasy is drag-and-drop theming :slight_smile:

I do love https://octobercms.com/
That is my first choice for PHP projects.

It provides building blocks for you own models and tables structure (you don`t need to make all in your site a Post with custom fields - iYKwIM). Also an amazing extensibility.
Plus, it’s backend/adminpage has a stunning design and components from simples text inputs to date, time and color pickers, fileupload, relation pickers (n-1 and n-n) etc.

If there is something like October to Meteor or Node, I certainly would use.

@alanq you can take a look at Relax.js CMS (very good one)

http://demo.getrelax.io/admin
pass: demo
user: demo

There is both schema editor and visual builder for views, but this wysiwyg builder is so huge, it may be considered as a separate application, for example https://bootstrapstudio.io is an app of this kind - separated - and for bootstrap.

@leocavalcante leocavalcante I’ve never seen that project and will take a look, but with a bit of distance, since I migrated from PHP to Node for some reasons.

Do not take into account the fact that October is in PHP. Look at its features :wink:

Thank you @antraxis and @leocavalcante

I’ll keep Relax.js in mind.

OctoberCMS does look very good indeed. And one big advantage of PHP-based systems is that hosting is plentiful. There are still few options for Node-based hosting.

Hey @everyone. Relax creator here, agree with everything said here and it’s what I’m trying to achieve with Relax.

We should release the beta in January after almost two years of development and struggling to keep up with features and things we wanted to differentiate from others. We want Relax to be the CMS for the community and we do need help to continue our dream to create a better and modern CMS. Everyone can help, being with suggestions, feedback or even bug reporting which is crucial.

I’ve worked over a year fulltime on Relax but after that had to take a part time job which won’t stop me but slowed down things a bit, not only this but we also have server expenses and so on. If you like the project and want to further help us you can also be our backer or sponsor at https://opencollective.com/relax. You can also promote this link and the project which will help gather more people to help. I do believe in the community and that open source projects can live without thinking in profit above all.

Cheers!

I think what draws me to Meteor is that it’s not a CMS. Because I do not have to fumble around with platform obstacles. That said , any Meteor CMS should focus on client front facing. Anything for the developer should just be API helpers for features.

I am wrapping up a client project that is essentially a CMS to create boat listings and some content. I could of done this in Drupal but it lacked some necessary search components that were not easy to build like they are in Meteor.

It was super easy to build compared to something’s in Drupal whose form API can get very bloated. One thing Meteor lacks though is good image/media management.

So I had to build my own that let the user tag images for quick referencing an stores them on an external service(cloudinary)

Hopefully you can take something from my experience. I’ll be sharing the admin build in a week or so if your interested in looking around.