It had been a while since my last blog post 🤠. I was now quite a long time busy to modernize the CMS and I like to tell you about the innovation here.
Why we don't like the old CMS structure?
👎 Many files: Every single string was stored in a single file. In addition, there is a metadata file and a folder. Many files and many folders make a code repository sluggish.
👎 Proprietary: The structure of the CMS with the folders, the metadata files is something invented by us. Which of course must be nothing bad. But the structure is unfortunately so complex that you need an editor to modify things.
In the following CMS we have:
- Two strings translated for English and German.
- One image
- One pdf translated for English and German.
This results in 22 files and folders.
The modern CMS
Now we have completely restructured the CMS.
🆒 Metadata files are gone: All metadata files (
*.meta) were eliminated. Files like images and documents can now simply be copied into the CMS folder of your project and will be recognized automatically. For multilingual documents you can simply add the language at the end of the file name (
The cms with the same content as before only has 7 files and folders and the structure looks easy and natural.
🆒 String are merged into cms.yaml: Strings are now all stored centrally in
cms.yaml, which is of course multilingual again (e.g.
cms_en.yaml). Now you can easily hand over the
cms.yaml to your translator. Moreover, strings and texts are now the same. Strings were single-line and texts were multi-line. There is no difference anymore.
Strings are stored in the
cms.yaml which is easy understandable.
Two big advantages
👍 The CMS can now be edited easily without a special editor. The CMS editor still exists of course. In addition, this also leads to the fact that you have quite nice and understandable changes on your code repositories in your pull requests.
👍 Large CMS with many strings and texts will now lose many files and folders. Because these all move to the
cms.yaml. This for more performance in development (code repository checkout, build, ...) but also for more performance at runtime. Much less IO operations have to be done to read the strings.
By a project conversion we lead your old CMS to the new structure. Also new is that we automatically convert the old projects on the Axon Ivy Engine.
But this change is important for the future. If we want to continue on the path to the web, we now have a CMS that can be edited by hand without a special editor. In addition, this change is also the basis to easily support any type of file in the CMS.
I'm sure a lot of you guys will 💚 this change.
P.S: The modern CMS will be available in 9.4. Try it out now: https://dev.axonivy.com/download/nightly