Kirby and WordPress opposite directions

Kirby - Move away from javascript - More php

Kirby move away from javascript because it hold the developers back.

http://getkirby.com/blog/kirby-2-2-0

WordPress - Move away from php - More javascript

WordPress move away from php because it hold the developers back.

https://developer.wordpress.com/calypso/

Who is right? Both?

Sidenote: I like the new brighter WordPress admin theme. Black makes me tired.

1 Like

That’s actually very funny. :smiley:

I think both are fine. The only reason why WordPress switched is (IMHO) that the old WP-Admin codebase is, well, old. Starting fresh was a good idea, and they decided to use JavaScript for that. Maybe one reason for this decision was that all the modern tools they now use are currently being hyped. :wink:

Since the Kirby codebase is very focused and clean, I think it’s just fine as well.

2 Likes

Well, Kirby started out as a php toolkit/framework, right? I feel like the point of frameworks is to stick with them as much as possible and not mix them up with other frameworks, so it totally makes sense for Kirby to stick with PHP.

That said, I’d love a JS-based Kirby twin that could be compiled into a client-side app for example.

2 Likes

If I understand correctly, Wordpress is still made with (mostly) PHP. They just added a new admin interface for wordpress.com, but it doesn’t replace Wordpress’s default PHP admin.
A similar JS interface could be built for Kirby. After all the Panel is optional, and there are many ways to add and edit text files.

3 Likes

@Malvese: That’s exactly how I understand this a well.

Yes, admin part it is.

WordPress often use wordpress.com as their playground for new functions. They have alot of users in there for testing. If they think that some feature is really good there is a chance it can be added to the self hosted wordpress.org.

If they roll out this new admin to wordpress.org, almost every plugin will stop working (often options are added as admin pages). It’s probably not around the corner.

It’s still interesting that two cms:es does the exact opposite and both are successful, in their own measure.

If I understand correctly, you can already use the new Calypso interface with self-hosted sites that run the Jetpack plugin.

But you are right: I also think that what they have done is a bit short-sighted. The backend still runs on PHP and templates still have to use the absurd WordPress templating API. WP-Admin isn’t the only component that needs to be improved.

Also true. At least they started with something. The other js apis they have are not so developer friendly. I don’t know if I will like this approach, but maybe they did something good this time. Time will tell.

This also gave me a new idea, to create an admin color scheme. We can add a panel css file so why not…

I don’t know about the details behind the decisions for the new Wordpress interface, but I can tell you why I went for less JS and no framework like React, Ember or something like that.

The process of building Kirby 2 took forever and one reason for it was that I spent around 3 months of building the entire panel with Angular. It felt the right thing to do at that time. It was the time when Angular 1 was the hot shit. Everyone hyped it like crazy. I fell for it and was amazed how fast you can build things with it that are highly interactive.

But the deeper I got into it, the more I ran into Angular issues. You get sucked into the framework and you suddenly have to know more and more about it in order to move forward.

At some point I realized how much I’m subscribing to this monster if I really build the panel on top of it. It didn’t feel right anymore, even though I had achieved so much already. I realized that I’m not only making this huge decision for myself, but for everyone else working with Kirby. Everyone, who would join me with the development of Kirby in the future would need to know Angular. Every plugin developer would need to build their plugins on Angular.

Finally I decided to not take all the risks connected to that and to throw away my entire code and start from scratch.

Looking back it was the best decision I could have made. If you see how Angular changed since version one, I would have been forced to make a lot of new changes to be able to upgrade to Angular 2 and everyone else would have been required to do the same.

Angular is also quite a good example of a hyped framework that went downhill in popularity pretty quickly. Even if a JS framework might seem super popular today and you can find tons of developers happy to work with it, it might be a completely different story in a few months — not even speaking about years.

So I thought about longevity. What do I need to focus on, if I want to build something that can be around for the next couple years. In my 14 years of writing code for the web I never really subscribed to any particular framework and rather tried to focus on the basics. The basics of HTML, the basics of CSS, the basics of PHP and JavaScript. I always felt that there’s a higher chance of learning something that way, that lasts and which I can keep on using independently of what happens in hipster land. It also helped me to focus on building stuff instead of fighting about, which tool or language is better, faster or more beautiful.

The entire philosphy behind Kirby is based on that. The Kirby toolkit at the core of Kirby is a library, not a framework. You are free to use it if you want, but you don’t have to. You can use each of its parts individually or just replace them with your own basic PHP code if you want. The Kirby APIs are building blocks, not ready-made solutions. They are meant to empower you to build your own stuff in the way you understand and like it best. The content is stored in a format that does not lock you in with Kirby. You can always just grab it and read the text files with your own PHP code or reformat it to something different.

The idea of being locked in has always scared me as a developer and I don’t want to build a system that does exactly that.

That’s why the panel follows the same philosophy. Basic HTML and CSS at its core, enhanced with simple JavaScript. After all the JS overhead with Angular, I wanted it to be light-weight and easy to understand for beginners as well as experts. I wanted to build something that is solid now and can get better over time and adapt to improving browser APIs and more possibilities with vanilla JS and more fancy CSS techniques. I wanted to have something that doesn’t lock you in and I’m very happy with the result.

There are still places where it can all be simpler and cleaner. But having a solid foundation and being able to constantly improve that is the best starting point to get there.

27 Likes

Good (german) blog post about exactly the same topic: https://knuspermagier.de/2015-mein-problem-mit-web-entwicklung.html

This one helped me a lot when I was in the same situation of building a tool (using the Kirby toolkit in the backend, of course), and I struggled for months which tools to use, instead of just building something. Since then I stick with the basics (Kirby, maybe some jQuery) I know how to use.

…and that’s the point I love most about Kirby. You can nearly build anything you want on top of it. Wordpress (and most comparable systems I know of) gives you the finished recipe, where Kirby just comes with the best ingredients with which you can cook your own meal, the way you want. So again: big love to your awesome work!

4 Likes

A bit off topic, but in reply to @bastianallgeier 's response:

You can also look at using a framework the exact opposite direction. When you need to get new developers on board and you are using a framework, everyone who has used the (or a similar) framework will feel right at home. The problem with frontend frameworks these days is however their short lifecycle, so I think you made the right decision with ditching Angular.

However there are also well established frameworks, or rather patterns for the server side like MVC and its various incarnations like Rails, Laravel or even asp.net. Those projects are all structured in more or less the same way and it doesn’t matter which one of these I use, I find my way quickly through the code. With Kirby’s panel architecture, it’s unfortunately not the case. At first, it looks like one of the mentioned frameworks, but when you dig deeper, you’ll for example find an additional “src” folder, containing more folders for controllers and views and so on.

Without almost no existing documentation about the architecture, conventions and motives, it is more or less impossible for me to fix bugs or to extend the panel. I would totally get lost in the code if there wasn’t the GitHub repository search :). So my wish for the future of the Kirby panel would be a more streamlined code structure/organization, a documentation about its API and (I know it’s coming) some sort of extension system for own “controllers” (like the users and pages at the moment).

Nonetheless, thanks for your awesome work, Bastian. Kirby is still my no. 1 cms in the world and I’m happy to use it every day.

2 Likes

One of the reasons WP went this way is also because they are lagging in the blog department. Now everyone use wordpress for anything but if you are just making a blog and you don’t care about self hosting, Medium.com is a better place to be as the editor is amazing. If you can self host and wants something more modern, Ghost is ok. There’s even Grav that somehow works a bit like kirby with just files but a more modern and good looking panel.

The real treat to wordpress is also the lack of connection between blogs as a lot of people are self hosting theirs. Meanwhile tumblr continues to have reblogs and Medium is also a network. Wordpress added a reblog button a few months ago and now they added a new editor that you can only use if you connect your own blog to the wordpress network… Putting your blog inside it.

Just my opinion but this new panel is not just a redesign. It’s another brick to their tumblr/medium chase, except this time that’s something you want to use so you’ll connect your website to wordpress.com with jetpack.

I would love a better panel editor for Kirby (mostly a real what you see is what you get like Medium or a live preview of text without having to save or reload) but if I have to give away my stats and enter a network of websites to just use a feature, I better use the current one.

Kirby is almost “old fashioned” compared to everyone else but I like the modularity.

1 Like

Old fashion? The CMS or the panel design?

I’m not meaning Kirby is old, just that Bastian’s philosophy as he explained it in this topic almost feels like the opposite direction everyone is taking. Modularity vs out of the box solution. PHP+HTML+CSS instead of full JS. Flat CMS instead of nodejs database. Self host and privacy when other CMS wants to host you or connect websites using the same tech.

Not sure if I’m clear here…? :disappointed_relieved:

Thanks for the feedback. I have added “Creating a contributing guide” to the list for new documentation.

I totally understand your thoughts and concerns. I think the structure of the Panel makes a lot of sense (of course I’m biased :)) and is very close to a lot of the standard stuff you already know, but the lack of documentation is still a problem. I want that to be as good as the rest of the docs for the core, but it needs more time to get there. I’m already working on it and hope to publish the first set very soon.

There are also a lot of connection points built in there for developers. There’s a new API to create routes, modals and views for fields. The widget API is a lot more powerful and custom panel pages are coming with the next release. But again all this stuff needs to be documented. I’m on it :slight_smile:

2 Likes

I never saw Kirby as a competitor to Wordpress, Ghost or Medium. Kirby is not a blog system. It’s a content management system. That’s a big difference in my opinion.

The trend to use services like Medium is troublesome if you ask me. You get a nice set of features and you give away your content for free without any control. If you don’t care what happens to your articles when a site like Medium has to generate money out of them in some way, then Medium is probably a great choice.

Fortunately I know that there are still many people out there who think differently :slight_smile:

I’m also convinced there won’t be a similar shift to hosted services from a content management perspective soon. Most clients, agencies, freelancers, etc. still prefer to have their own server or hosting package to run their company website on.

Even though it’s tough to hear the terms “old fashioned” in connection with my ideas around Kirby and the Panel, I think that there’s a quality in not following any trend. So far the general feedback for the design, the usability of the interface and the features of Kirby has always been very positive. But of course I’m listening very closely whenever there are any negative thoughts. Please don’t hesitate to keep them coming.

I think there’s a danger in blindly heading into the same direction as everybody else. That’s a general problem on the web at the moment. People don’t think about what fits their project anymore. They just follow the mainstream and adopt any new hotness that’s coming around the corner. But that path is exhausting and won’t lead anywhere. In the end it doesn’t matter to users if there’s React or Ember or something custom-made behind the software they use. They don’t care about the database or the language or even the server technology. Using the latest and greatest technology has never meant that the app you build is automatically better than the rest. Even though long-term thinking might not sound like the cool new thing, I’m convinced that there lies the real quality people are looking for. Being able to trust in something over many years is quite rare nowadays. But I will definitely try to go that way.

11 Likes

Absolutely.

If that’s old fashioned, I prefer to be old and fashioned:grin:[quote=“bastianallgeier, post:17, topic:2632”]
Being able to trust in something over many years is quite rare nowadays. But I will definitely try to go that way.
[/quote]

Yes please!

1 Like

WordPress started out as a blog system. Kirby started out as a newsletter system? Both of them turned into CMS and for me they are the same kind of tools nowdays. It was years since Matt stated that WordPress is no longer a blog system, but a CMS. That’s why Ghost was created, because of the disapointment that WordPress turned into a CMS. Ghost will always only be a blog system, not a CMS.

Then I think Kirby for most part solve the problems better than WordPress. More brainpower!

For me it’s kind of this:
WordPress + WPML + ACF + Torophp + Idiorm - bloat = Kirby

:slight_smile:

Kirby didn’t start as a newsletter system. I built a newsletter system for clients, which was based on a similar folder structure and that set the starting point to create a file-based content management system. There’s not a single line of code, which is still left from the newsletter system.

1 Like