Skip to main content

A Component-Based CMS and why Rich-Text editors are bad

Digitale Kumpelยท

Traditional CMS

Current web content approaches differ significantly from earlier systems. Traditional content management systems use themes to decide your website's specific look. When adding new content, you use a rich text editor to write.

The problem with rich text editors

Converting rich text editor content into HTML presents fundamental challenges. A CMS wants to provide a lot of flexibility with a rich text editor, it lets you create many things. Like headlines, paragraphs, lists, links, tables, images, etc.

However, limitations persist. Complex elements like forms cannot be added, and increased complexity introduces more bugs and poor maintainability.

The even bigger problem: adding HTML and CSS directly

Allowing direct HTML editing creates significant problems. Doing something wrong is very easy this way. Also, it makes the person creating a new site need technical knowledge.

Excessive flexibility encourages workarounds using inline styles and arbitrary code snippets, making sites unmaintainable. Designers face challenges maintaining consistent branding and spacing standards.

Using text placeholders

An alternative approach uses custom text placeholders like [[NEWSLETTER_SUBSCRIPTION_BOX]]. This method remains error-prone due to typos and unclear syntax variations across plugins.

Component-Based CMS

A component-based CMS eliminates the need for bloated rich text editors, entering HTML directly or fiddling with CMS as an editor yourself.

What is a component?

Components function as reusable building blocks. A component can be very small, like just a line of text, or more complex, like a newsletter subscription form with text input, a button, some description text, and a link to privacy terms.

Components remain configurable while maintaining maintainability and extensibility.

No more HTML or arbitrary text phrases

You will not write custom HTML or use specific text phrases when working with a component-based CMS. You always use a component from the existing set.

Editors immediately see all configurable options, reducing errors and improving developer control over implementation and debugging.

Applying some styling

Styling remains controlled through defined options rather than arbitrary values. For example, you will not set the color codes directly like style="background-color: #FF0000".

Instead, predefined values like "primary," "secondary," or "warning" maintain visual consistency across the site.

Conclusion

Working with components is the de facto standard in frontend development and applying these principles to a CMS gives a lot of benefits. Component-based systems enable proper separation between design, development, and content creation while reducing mistakes and technical knowledge requirements.