Hi,
I know that this question might sound vague.
After all, what exactly is a “complex scenario” ?
But I think that there’s still an idea running out there (which I don’t fully agree to, btw) that if you need a real robust CMS platform to support your business or whatever, than you need to opt for a tried-and-tested solution like the ubiquitous Wordpress, Drupal, and the like.
But I would like to challenge that assumption, and maybe get some feedback if anyone has gone through an experience of using Kirby on a “complex scenario”.
For me a “complex scenario” would be something like a
A webshop. Where you would need to change/update lots of content quickly, search fast, extend Kirby with extra features, etc…
An online newspapper. Lots of different type of media. Feeds. Different roles for authoring content. Long archive pages with lots of “history” and old content to browse into
I don’t want to go into the “let’s compare the platforms” discussion.
I know the pros and cons of each CMS out there.
And I also think that any one who chooses Kirby also knows that.
After all he/she is running away from something.
I’m just wondering, how kirby behaves on scenarios like these ones ?
Has anyone had any experience using kirby on situations like these ?
What’s your thoughts and feedback ?
The installation is separated into two repositories. One for all the site stuff, assets, Kirby’s core and panel and one for the content. The content folders hold about 4 GB of data and all changes made via the Panel are automatically committed and pushed to a private Gitlab installation via a cronjob.
a kirby-based combination of knowledge management system and employee self-service terminal for a leading manufacturer in sensor technology. The system runs on twelve touch screen terminals that have been placed at strategic locations throughout their plants.
a small reference management system for scientific writing
I have used Kirby for several “complex scenarios” already. Not meaning “big”, but “very custom”.
What I like about Kirby is that it’s very simple and easy to understand. If you need to change a behavior, you can actually search through the Kirby code and find what you are looking for. That’s something that won’t work with bigger (and bloated) CMSs.
Since Kirby is cooking with the same water (PHP) as Wordpress etc., it is definitely possible to do “everything” with it. But depending on the use-case it might be more complex to implement using either of the systems. In the end, it probably depends on your basic needs, for Kirby on the question if you want to have a file system-based solution and use it together with a database for some complex parts or if you want to have everything in a database alltogether.
I have realized two »custom« projects with Kirby. In both cases, I have used it rather as a web application framework than a simple CMS. Both projects (one isn’t yet released) are simple in their basic architecture and not as big as a full featured news website or shopsytem might be.
However, it was very simple to implement custom logic which is often a pain in other CMSs. Using other CMSs, I got the impression that it’s very difficult to use those systems as a part of a »bigger« application.
And Kirby’s approach to content models and flexible content structures is great if you’re building a website with different content types. One of the biggest problems is that Kirby currently has no real user roles/access control, although that will be coming to Kirby.
I think the above would be better handled by a different kind of CMS with a database. The question shouldn’t be if Kirby can do it but if Kirby would be the ideal solution, and I think it is not in that scenario.
For example I have an events website. Each event is owned by different users, can take place in one or more venues, at one or more dates, be part of one or more categories etc. I currently have nearly 15.000 events in 2 languages. I am using a custom CMS with a database to run this and I don’t think a file based CMS would be appropriate.
It is worth pointing out, that Kirby can run off a database in the backend, if you really want it to - there is a basic database api in the official docs. This is not its primary use-case, however, as pointed out above.
Most of my clients are small businesses, with small websites. A typical scenario for me would be a one-man operation that needs to have a ‘brochure’ website. This will usually be a single-page site, with a contact form, that the user should be able to update themselves. After about a year of being online, that client will often have received positive feedback (and some business) from his website, and will want to expand his online presence. This will usually entail adding a blog, and linking them to some of their social media presence.
Unless they have specifically set out to be an online shop, they will almost never need to have a complex online catalogue. They will usually sell only a handful of products/services online, and want to run regular promotions and specials.
I used to set clients up in Wordpress and Drupal for all these scenarios, and in hindsight I can tell you that it was a huge mistake. These gigantic CMSs have a steep learning curve and are hard work - both for you and your client. Worse still: they are primary targets for hackers. Every single Wordpress website I had out there has been hacked at some point - which prompted me a few years back to spend several months learning Drupal. Big businesses can cope with this kind of maintenance overhead, but the small guys can’t.
Nowadays I’ll use a simple and flexible CMS - like Kirby - for as along as I possibly can with a given client. If the client’s needs outgrow the capabilities of the CMS, then I’ll either extend it myself - ie., custom programming - or setup a sub-site using a totally different product. Example: recently, a client decided to have a full-blown discussion FORUM in their website. Rather than trying to extend Kirby, I simply setup a sub-domain for the client, and installed a dedicated forum software package there - customising it to look in line with the client’s online presence. As this did not touch the client’s existing site or content, they were doubly thrilled.
So, sometimes it may be a good idea to ‘divide’ the use-case into its ‘complex’ and ‘non-complex’ parts - and give each one to the most appropriate tool.
I recently implemented an online store for a gourmet food shop in Kirby. The original implementation was in Magento, but the retail staff were finding it difficult to update product descriptions, create new categories, etc.
The new shop includes all 700+ products across a dozen or so categories, and it took me half an hour to train the staff on how to use the Panel. They are not very technical people, and they love it.
I had to do a bit of custom work to integrate paypal, shipping calcualtions, and invoicing, but the control offered by Kirby’s blueprints allowed me to tailor the Panel so it shows only what my client needs and nothing more.
At the moment we can declare roles, but they don’t do anything by default. We have to code everything. In templates it’s easy, but if we need finer grained permissions in the Panel it’s another story.
Have a look at the docs for (hopefully) upcoming permissions features to see what they have in mind. I do think this is very important and needed, and I’m very excited by what I read there
Maybe I should have been a bit more specific about this. I would love to be able to restrict access and the ability to edit parts of a website in the Panel for certain users. Especially if there is more than one person in a company editing a website’s content, this is a must. E.g. a user would be only able to edit the News Page and its subpages.
A partly complex scenario is a page for a theatre (it’s in German…). It contains many files and sites, forms, very much automation and different solutions here. I’m also using PHPExcel to import the schedule through an Excel file.
I’ve experienced some difficulties here and there, opened many issues and stressed @bastianallgeier as much as I can but Kirby has a very great community with tons of solutions and a real good support. It helped me a lot for all those small and bigger problems I had.
I also had to refactor the whole schedule code but thanks to the very flexible system of Kirby I’ve done that in three days.
Give it a try - maybe with a smaller complex system. But I think there will be no problem with it.