Disclosure: YunCMS is developed and maintained by Yunsoft Software. This post introduces our own open-source project. Version 0.1.14 belongs to the pre-stable 0.1.x series, so interfaces and behavior may change between releases.
Many projects need the same backend building blocks: configurable collections and fields, relational data, a usable administration interface, permissions, file handling, and a clean way to extend the system. We built YunCMS to provide those pieces in a small reusable platform, without trying to reproduce every feature of a much larger CMS.
YunCMS is an independent implementation inspired by the developer ergonomics of tools such as Directus. It is not a Directus fork and does not aim for compatibility for its own sake. The goal is a focused core that grows only when a real project needs a capability.
What is included today?
The current release includes:
- dynamic MySQL collections, fields, and relations;
- a schema-driven React Studio for content, files, data models, users, roles, and settings;
- a documented REST API with filtering, sorting, pagination, field selection, and relation expansion;
- explicit role-based access control with action, field, row-filter, and validation boundaries;
- local and S3-compatible file storage;
- trusted server extensions with endpoint and hook helpers;
- an optional Studio AI assistant that works through the current user's permissions; and
- an optional MCP endpoint that uses the same services and accountability model.
The MCP endpoint is disabled, authenticated, and read-only by default. Enabling a feature never turns a caller into an administrator: normal YunCMS permissions remain authoritative.
A deliberately straightforward stack
YunCMS V1 uses Node.js 24 LTS, JavaScript/ESM, Express 5, and MySQL through mysql2/promise. Studio uses React 19.2 and Vite 8. There is no ORM, GraphQL layer, or second database driver in the current contract.
HTTP routes stay thin while business behavior lives in services such as ItemsService, CollectionsService, FieldsService, RelationsService, UsersService, and FilesService. Extensions and internal code call these services directly instead of making local HTTP requests back into YunCMS.
Try it locally
You need Node.js 24 LTS, npm 11 or newer, and a MySQL 8-compatible server. Then run:
npx --yes @yunsoft/yuncms init
npx --yes @yunsoft/yuncms start
The same listener serves Studio and the REST API. The 15-minute getting-started guide covers database setup, the first administrator, a sample collection, permissions, and a first API request.
Current status and scope
YunCMS is open source under the MIT License and is actively developed. The current 0.1.x line should be treated as pre-stable. It is suitable for evaluation and feedback, but adopters should test against the exact release they use and review the documented operational checks before relying on it in production.
The current scope is intentionally specific: MySQL only for V1, REST only, and self-hosted deployment. YunCMS does not currently claim Docker support, a hosted SaaS edition, GraphQL, or general production stability.
Links
- Website: https://yunsoft.com
- GitHub: https://github.com/Yunsoft-Software/yuncms
- npm: https://www.npmjs.com/package/@yunsoft/yuncms
- Getting started: https://github.com/Yunsoft-Software/yuncms/blob/main/docs/getting-started.md
- Studio guide: https://github.com/Yunsoft-Software/yuncms/blob/main/docs/studio.md
- REST API guide: https://github.com/Yunsoft-Software/yuncms/blob/main/docs/rest-api.md
- MCP guide: https://github.com/Yunsoft-Software/yuncms/blob/main/docs/mcp.md
If this direction matches a backend problem you have, try the release, open an issue, or tell us which missing capability blocks a real project. That feedback is what will shape the core.

Top comments (0)