I am looking for a lightweight CMS to power a website that is currently using Wordpress and I wonder if Kirby would be a good fit. I don’t need the many features of Wordpress, I don’t even need things such as comments or users (apart from myself).
Basically I have my own web application which is dynamic - takes data from an API, stores them in a MySQL database and creates pages dynamically based on that data and the user info.
What I need from a CMS is to integrate easily with my application and let me to easily add and modify the non-dynamic parts of the site, such as static pages (about us etc) and blog posts (the newest blog posts would be displayed in the homepage, and users should be able to click and see the rest in a nice paginated way)
Another thing I need is to support different languages. All pages would exist in all supported languages, while each blog post would be for just one language (so I should be able to define that this is a “german post”, while another one is an "english post). Also the language switching should be url based (en.example.com) not based on cookies.
URLs should be search engine friendly and other SEO features would be good also. Also, a way to automatically transfer my current Wordpress posts would be a bonus.
I’ve successfully created a training / certification site that integrated with MySQL using Kirby 1. The user would visit the site where the home page and about page were available. They then had to create an account / log in to view the rest of the site. A database was used because of a load balancer issues (accounts created on one server would not be available on the other). The user would then take a certification test. If they got a passing grade, an e-mail was issued with a link to download their PDF certificate with their name, date and CEO signature on it (produced using FPDF). The test results would also be stored in a separate table in the database. If the user was an “admin”, “salesteam” role, they would see an admin overlay in the header that gave them access to stats on current users including profile information, certification status and their test results/answers.
There is a ton of documentation on creating content, blogs and pagination for Kirby 2.
There’s documentation on creating multi language sites as well. In my opinion, the flat file structure creates the perfect incubator for translating content, especially using translation services that can commit the changes to github. The content files have the language abbreviation in the name, and depending on the url used to access the site, an appropriate content file will be loaded.
You can use routing to create SEO friendly urls or to simulate the format used by WordPress. However there isn’t any way I’m aware of to import WordPress post content. I doubt there ever will be. You’ll have to manually move the posts and change theirs dates/times manually.