Reconsidering CMS Design: A Free and Flexible CMS 'Birkly' That Treats Humans and AI as the Same Users
- PHP
- CMS
- OSS
- Design
- AI
Reconsidering CMS Design: A Free and Flexible CMS 'Birkly' That Treats Humans and AI as the Same Users
Introduction
When developing a CMS, I did not initially focus on how many features I could implement.
Rather, I asked myself,What should a CMS fundamentally be?.
Many existing CMSs have excellent features and established mechanisms. However, I felt there were areas that could be reviewed, such as complex dependencies, reliance on external services, a bloated core, and post-hoc AI integration.
Therefore, I began developing the open-source CMS Birkly.
Birkly is not simply aiming to be a lightweight CMS.
What I aimed to achieve was a fair, flexible, and self-sufficient system for both developers and users.
In this article, I will introduce the design principles I valued when developing Birkly and its architecture.
- Website: https://birkly.io/
- GitHub: https://github.com/Raaakete/Birkly
1. I Want to Create a System That I Can Control Myself
While developing software, it's common to end up with many external dependencies.
Libraries, frameworks, packages, and external services. Each of these is convenient, but they also bring issues such as maintenance, compatibility, security, and updates.
To maintain my own software, I have to maintain even dependencies I can't control.
I wanted to avoid such situations.
Therefore, Birkly prioritizes minimizing external dependencies while relying on robust and proven technologies.
This does not mean avoiding the latest technologies.
Rather,I wanted to combine established technologies with modern architecture and design principles.
We value the ability to maintain, understand, and control technology over its novelty.
2. Do not treat AI as an afterthought function.
Currently, many CMS and web applications have AI integration added.
However, is it really sufficient to treat AI merely as an external tool or special API key?
I wanted to treat AI as a member of the system, just like human users.
Therefore, at Birkly, we treat AI connections as users.
Each AI connection can have its own unique user permissions and roles.
In other words, we do not provide AI with special backdoors, but instead integrate them into the standard user permission management system.
This design has important significance.
- Managing access permissions for each AI.
- Allowing only necessary operations.
- Consistent permission management between humans and AI.
- Integrating AI integration into the overall system architecture.
I believe AI will become an important user for websites and content management in the future.
That is why we decided to include AI in the core design from the beginning rather than adding it later.
At Birkly, AI is not a special entity but a user with unique permissions.
3. Keep the core minimal, yet powerful when needed.
Another important design principle is balancing a minimal core with extensibility.
CMS will grow in functionality over time.
Various functions such as user management, e-commerce, event management, automation, search, and integration with external services will be required.
However, it is not necessary to include all these functions in the core from the beginning.
At Birkly, we keep the core as simple as possible and allow necessary functions to be added through plugins.
This approach is embodied in the related project Birkly and Other Things Studio.
Website: https://birklyandotherthings.com/
Currently, we are providing the following plugins.
- Commerce: Commerce functionality
- User: User management functionality
- Automation: Automation functionality
- Events: Event management functionality
- AI-native: designed with AI as an integral part of the system from the beginning
- Minimal: minimal core functionality
- Extensible: flexible extension through plugins
- Flexible: The freedom to choose a database or hosting configuration
- PHP-based
- Database-free file-based configuration (standard)
- Optional use of a database
- Module-type architecture
- Plugin system
- API-first design
- Integration with AI / MCP
- User, role, and permission management per AI connection
- No build steps required
- AGPL-3.0 license
This allows you to combine the necessary features for each project without unnecessarily expanding the core of the CMS.
Simplicity and rich functionality are not necessarily contradictory. The important thing is deciding which features to keep as core and which to make independent.
4. Freedom to not require a database
Another feature of Birkly is that it does not require a database.By default, it uses a file-based configuration, so you can use it without setting up a database server.
On the other hand, you can also use a database if needed.
This is because we did not want to force one approach onto all projects.
The optimal configuration varies depending on the scale and purpose of the project.
For small websites, a simple file-based configuration might be suitable.
On the other hand, projects with more complex requirements might need a database.
What's important is not forcing a specific configuration from the start.
5. Architecture that allows separation of CMS and website
Birkly also emphasizes flexibility in the relationship between the CMS and the actual website.
You can host the project within the CMS or operate it completely separated from the CMS. In other words, the CMS and website do not have to be treated as a single integrated system.
You can choose the placement and operation method of the CMS and website based on the project's requirements.
This level of flexibility also helps when building websites in different environments or architectures.
We believe the existence of a CMS should not limit the structure or hosting method of a website.
6. What Birkly aims for
Summarizing these design principles, Birkly aims for a CMS that is:
Independent: a technical foundation that can be understood and controlled independently
Modern:
- a combination of proven technologies and modern architecture
In my opinion, a good CMS is not just one with many features.
A system that developers can understand, operators can control, and users can freely choose the features they need.
And I believe AI should naturally participate as part of the system.
7. About the Project
Birkly is an open-source CMS developed based on these design principles.
Main features:
Birkly CMS
GitHub: https://github.com/Raaakete/Birkly
Birkly and Other Things Studio
I am developing plugins and related projects for Birkly.
It's still a developing project, but I would be happy if you are interested in these design principles and architecture.
Finally
When developing software, how many dependencies should we accept?
Should AI be just an external service?
Do we need to include all features in the core?
I believe we can create software that is simpler, more flexible, and more independent.
Birkly is one attempt to realize this idea.
I would be happy to discuss with developers who share the same concerns about the design principles and architecture.
Please feel free to share your opinions and feedback.
Personal Matters
Finally, I would like to share a little personal information.
I am currently living in Denmark with my Japanese wife.
I have long been interested in Japanese culture and the Japanese tech community, and I would like to have more exchanges with Japanese developers.
However, my Japanese is not yet sufficient, and I am still studying it.
This article was also written with the help of a translation tool. Even in communication in Japanese, I sometimes rely on translation tools.
If there are any unnatural expressions or mistakes, please forgive them. I want to gradually improve my Japanese.
I look forward to exchanging ideas with Japanese developers about technology and design philosophy!
Go to list of users who liked
Go to list of comments
Register as a new user and use Qiita more conveniently
- You get articles that match your needs
- You can efficiently read back useful information
- You can use dark theme