Building a CMS with Wappler

@George, have you look into this anymore? Using a headless CMS with Wappler as the frontend gui builder?

We’ve built a cms completely with Wappler. It includes a huge bunch of functions and possibilities. We have a really clever data table (filtering, mutli update/delete), newsletter tool, cascading deletes (all deletes do also remove image from the server and related records), multi-upload, etc. etc … It also includes a sophisticated registration tool with an included newsletter signIn. The newsletter signin tool can be easily added to any kind of form. Actually it’s based on over 1500 action files. If I find some time I’ll introduce it here.

4 Likes

This sounds very good. Does it include some kind of page builder so content can be easily maintained on the site pages?

It partly has site builder capabilities due to the relations we’ve implemented. The main target is giving our clients a tool where they only work with data and do not build pages. Therefore it’s much easier for them to work with it. If the front end is built correctly, a site builder tool is not needed.

Yep, that’s the kind of solution I like implementing but sometimes things like columns on pages are needed, or tables, etc. so some kind of builder, even if a fairly basic one, is ideal. I started looking at GrapesJS a while back but haven’t had a chance to progress with it yet.

You can always set the numbers of columns or tables conditionally (using dynamic values) :slight_smile:

1 Like

The last feature we’ve implemented was summernote with image upload and delete. The image delete includes remove of the image on the server. Also when the record itself is being deleted. For every news record we add a folder named by a timestamp and place the images in there. So the server is always clean.

1 Like

Yes we build the front pages on conditions. So if the user adds an image gallery for example, the “layout” of the page changes accordingly. Our users can only add “raw” data and we do the rest on the page.

2 Likes

A post was split to a new topic: Integrate with external CMS

Hi ,
I read this thread with significant interest and would like to add some thoughts (some may be obvious – sorry if they are) and questions.

  1. Please correct me if I’m wrong here, but when people talk about using CMSs to manage CRUDs, I think they are thinking beyond simulating the behaviour of phpAdmin / Heidi / SQL workbench / Wappler Database Manager. All those are DBA / Developer tools and, to my knowledge, they do not offer an easy way to restrict what a user can see or do at runtime. For example, I may want some of my users to be able to configure some fields in a master data table but not all the fields in those tables and definitely nothing in the transactional data tables. And of course, there are usually constraints to what they can put in a field.

  2. Many organizations use fully headed CMSs because they want to manage the flow of work that is done by different roles, like create text (or media), approve deployment to Production, deploy to Production (or other Pre-production environments), notify someone of upcoming expiration of contents, etc.

  3. As of the time of this writing, Directus seems to offer a nodejs version.

  4. If you host the CMS, directus seems to be free forever. On the other hand, strapi charges USD 29 per month per project as soon as you need more than 3 roles in the project. I don’t know if 3 roles are enough for typical projects. Any thoughts? Info on this from those who implemented CMSs would be really appreciated.

  5. The admin interface offered by strapi looks to me a bit more polished than that from directus.

  6. I’m very interested in hearing the thoughts of those who evaluated both strapi and directus and the reasons why they chose one over the other. Actually, seeing what they built would be even better, but I don’t want to push my luck :slight_smile:

Many thanks to all of you guys for contributing to this forum! I ALWAYS learn something new and I truly appreciate that.

Alex

Now that I installed both directus and strapi, I can share a few more observations about them. I’ll try to post them as I go, in the hope that they can help others looking for info like this.

Note that:

  1. I believe either tool would be great complement to Wappler.
  2. The term “Collection” is their way to refer to an Entity or to a database Table.
  3. These observations are from the point of view of a non-programmer.
  4. Since these are my first impressions, I’d ask those of you who used any of these tools (@JonL and @sitestreet come to mind :grinning:) please feel free to correct any misconceptions shown above

Project size
Just the plain default installations of a project for each of the applications takes the following space:

  • Directus: almost 250 MB
  • Strapi: almost 700 MB

Database – Directus

  • Directus’ installation created 15 tables in the database (I’m using mySQL), and named them all as “directus_xxx”. This makes it easier to find them in case you want to remove them.
  • Directus likes calling database tables and columns using small letters, which is not my convention. I could not find a way to override that. That said, I am able to use Heidi (my dbmanager tool), change the names to whatever I want, and when I refresh the web page, Directus picks up the changes I made, although it says that they are DB only and now you need to walk through each to update Directus. After that, my capitalization rules are taken.
  • Also, Directus picks up any table that I create with Heidi and if I follow the process above, it would be incorporated as another “collection”, the CMS word for entities/tables.
  • Creating a new collection with Directus is faster than with strapi.

Database – Strapi

  • Upon installation, strapi created 11 tables, one called core_store, 5 named as strapi_XXX, 2 as upload_XXX, and 3 users-XXX. The dash after “users” is a dash. So, it’s a bit messier than Directus.
  • Strapi allows me to override the internal name with an external name and uses the latter to create the database tables.
  • I could not find out how to make Strapi aware of a new table not created with Strapi. I imagine that there has to be a way to do this, otherwise you’d never be able to add strapi to an existing project.

Tutorials and documentation - Directus

  • Directus’ seems to lack important details. I had to go to their discord forum for help on how to login to the administrative application a user who was not defined as an Administrator.
  • Luckily, within the hour, some kind soul akin to those in this forum told me how to overcome that hurdle. That would not have been required had that nugget be exposed in the documentation.
  • After that I hit another problem in which the non-Admin can change the role of an Admin, but that one has not been answered yet.
  • I could not find tutorials covering the “user” aspect of the CMS. Directus told me that they are now that their big release is over, they are shifting focus to the documentation.
  • The site points to videos on youTube but they are outdated and mixed with videos unrelated to Directus.

Tutorials and documentation - Strapi

  • Strapi’s docs seem to be much more detailed. Their quick start guide shows you how to create a couple of related tables, and expose the APIs to the public for consumption in a very controlled manner. I was able to do that in minutes.
  • They have a few introductory videos that are relatively clear and easy to follow. I watched those before installing and now I can’t remember if the screens shown resemble the what I see in my browser. (sorry)

Rich text editor
Directus’ Rich text editor is really rich. You can configure it to show tens of buttons in the “ribbon”.
Strapi’s rich text editor is disappointing. Given that this editor s/b used to create and maintain attractive content for websites, I must assume that there has to be a way to have more options than the basic Bold, Italics, List, and Headings, but so far I could not find it.

Interface to create collections

  • As I said in a previous posting, strapi’s looks much more polished than Directus’
  • The UI to manage collections neatly puts the related collections on the side of the page, something that looks good to me.
  • Strapi’s UI allows you to easily define if the content is draft or published. Directus’ allows you to do that but as a matter of taste, I like strapi’s way a bit more.

OK. Enough for today. I’ll go back to work now. I truly hope this is useful. If I get feedback that it is, I’ll continue publishing what I find while exploring these two tools.

Many thanks!

Alex

8 Likes

I have only evaluated strapi and I do agree with most of your opinions. In general terms I think strapi is more polished but also a bit more opinionated. But that is just from reading directus website and comparing it with my findings using strapi.

I used Directus once about a year or so ago. Thought it was good but haven’t used it since so I guess it’s still not exactly what I’m looking for.

I think I’d like to build something in native Wappler which gives the ability for people to create their own pages so use a combination of bootstrap layouts, summernote, image uploads, etc. but I still don’t really know the best way to approach it.

Ultimately I’d like to give a site admin an easy way to write static content.

The project is young, the documentation is minimal, but I tried it, it looks promising!

  • Connect to new/existing SQL database and turn them into spreadsheet.
  • It is free & self-hostable. Let your imagination be thy limit.
  • Create grid view, gallery view, kanban view and calendar view (not ready) on top your data.
  • Search, sort, filter columns and rows with ultra ease.
  • Collaborate just like spreadsheet.
  • Provides REST & GraphQL APIs with Swagger & GraphiQL GUI
1 Like

Wow that (nocodb) looks amazing! Have you (or anyone else) tried it out?

Also I’m super curious to find out of someone actually did a project with Strapi now. Looks very promising, indeed. And could save a lot of work!

I work with nocodb

Could you elaborate for a bit what you use it for and what your findings are?

I use it for RAD development MySQL database and fill database. Unfortunately the project is still young, but all that I cannot do in NocoDB I do in another DB dev tool, i find this is a very fast way to develop a database. Think of it as Headless CMS, work with data faster than strapi and directus.

Thanks for your response! I’ve tried it out for a little bit. It does look very cool, indeed. The swagger docs that are auto generated is pretty awesome!

However I do miss some features like limiting API access to specific calls and or tables. Also you can’t do any upload of csv files (which is quite easy with Wappler), as far as I can tell. So it’s a new tool to add to the watchlist!

Which other db-tool do you use?

After trying out some of these tools I really feel as if a good CMS/ecommerce boilerplate for Wappler would basically fix all my challenges :crazy_face:

I not use nocodb api, for db i use MySQL workbench and phpMyAdmin.

1 Like