Created by Andrew
YaCms is a powerful, consistent, and flexible content management platform. Built using the Django framework, YaCms provides a simple yet highly extensible architecture that encourages diving in and hacking on the code. YaCms is BSD licensed and supported by a diverse and active community.
In some ways, YaCms resembles tools such as Wordpress, providing an intuitive interface for managing pages, blog posts, form data, store products, and other types of content. But YaCms is also different. Unlike many other platforms that make extensive use of modules or reusable applications, YaCms provides most of its functionality by default. This approach yields a more integrated and efficient platform.
Visit the YaCms project page to see some of the great sites people have built using YaCms.
In addition to the usual features provided by Django such as MVC architecture, ORM, templating, caching and an automatic admin interface, YaCms provides the following:
- Hierarchical page navigation
- Save as draft and preview on site
- Scheduled publishing
- Drag-and-drop page ordering
- WYSIWYG editing
- In-line page editing
- Drag-and-drop HTML5 forms builder with CSV export
- SEO friendly URLs and meta data
- Ecommerce / Shopping cart module (Cartridge)
- Configurable dashboard widgets
- Blog engine
- Tagging
- Free Themes, and a Premium Themes Marketplace
- User accounts and profiles with email verification
- Translated to over 35 languages
- Sharing via Facebook or Twitter
- Multi-lingual sites
- Custom templates per page or blog post
- Twitter Bootstrap integration
- API for custom content types
- Search engine and API
- Seamless integration with third-party Django apps
- Multi-device detection and template handling
- One step migration from other blogging engines
- Automated production provisioning and deployments
- Disqus integration, or built-in threaded comments
- Gravatar integration
- Google Analytics integration
- Twitter feed integration
- bit.ly integration
- Akismet spam filtering
- Built-in test suite
- JVM compatible (via Jython)
The YaCms admin dashboard:
To report a security issue, please send an email privately to core-team@yacms.vn. This gives us a chance to fix the issue and create an official release prior to the issue being made public.
For all other YaCms support, the primary channel is the YaCms-users mailing list. Questions, comments, issues, feature requests, and all other related discussions should take place here.
If you're certain you've come across a bug, then please use the GitHub issue tracker, however it's crucial that enough information is provided to reproduce the bug, ideally with a small code sample repo we can simply fork, run, and see the issue with. Other useful information includes things such as the Python stack trace generated by error pages, as well as other aspects of the development environment used, such as operating system, database, and Python version. If you're not sure you've found a reproducible bug, then please try the mailing list first.
Finally, feel free to drop by the #YaCms IRC channel on Freenode, for a chat! Lastly, communications in all YaCms spaces are expected to conform to the Django Code of Conduct.
YaCms is an open source project managed using both the Git and Mercurial version control systems. These repositories are hosted on both GitHub and Bitbucket respectively, so contributing is as easy as forking the project on either of these sites and committing back your enhancements.
Please note the following guidelines for contributing:
- If you're fairly confident you've identified a bug or have already written a patch, feel free to open an issue or pull request. Otherwise, please discuss on the YaCms-users mailing list first.
- Contributed code must be written in the existing style. For Python (and to a decent extent, JavaScript as well), this is as simple as following the Django coding style and (most importantly) PEP 8. Front-end CSS should adhere to the Bootstrap CSS guidelines.
- Contributions must be available on a separately named branch based on the latest version of the main branch.
- Run the tests before committing your changes. If your changes cause the tests to break, they won't be accepted.
- If you are adding new functionality, you must include basic tests and documentation.
If you would like to make a donation to continue development of YaCms, you can do so via the YaCms Project website.