├── .nvmrc ├── scripts ├── url-to-toml-append.sh ├── url-to-toml.js └── generate-readme.js ├── .eslintrc.json ├── meta.toml ├── package.json ├── .gitignore ├── LICENSE ├── CONTRIBUTING.md ├── README.md.hbs ├── data.toml └── README.md /.nvmrc: -------------------------------------------------------------------------------- 1 | 6 2 | -------------------------------------------------------------------------------- /scripts/url-to-toml-append.sh: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | TOML=$(node ./scripts/url-to-toml.js "$1") 3 | echo "\n${TOML}" >> data.toml 4 | -------------------------------------------------------------------------------- /.eslintrc.json: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "airbnb", 3 | "rules": { 4 | "no-console": 0, 5 | "consistent-return": 0, 6 | "new-cap": 0 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /meta.toml: -------------------------------------------------------------------------------- 1 | [languages_to_human] 2 | "c#" = ".NET" 3 | javascript = "JavaScript" 4 | php = "PHP" 5 | python = "Python" 6 | ruby = "Ruby" 7 | undefined = "Closed Source" 8 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "awesome-cms", 3 | "version": "1.0.0", 4 | "description": "📝 An Awesome List for Content Management Systems", 5 | "dependencies": { 6 | "handlebars": "4.0.5", 7 | "humps": "1.1.0", 8 | "lodash": "4.15.0", 9 | "moment": "2.14.1", 10 | "toml": "2.3.0", 11 | "x-ray": "2.3.0" 12 | }, 13 | "scripts": { 14 | "generate-readme": "node scripts/generate-readme.js", 15 | "website-to-toml": "node scripts/url-to-toml.js $1", 16 | "test": "echo \"Error: no test specified\" && exit 1" 17 | }, 18 | "author": "Postlight", 19 | "license": "MIT" 20 | } 21 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Created by https://www.gitignore.io/api/node 2 | 3 | ### Node ### 4 | # Logs 5 | logs 6 | *.log 7 | npm-debug.log* 8 | 9 | # Runtime data 10 | pids 11 | *.pid 12 | *.seed 13 | *.pid.lock 14 | 15 | # Directory for instrumented libs generated by jscoverage/JSCover 16 | lib-cov 17 | 18 | # Coverage directory used by tools like istanbul 19 | coverage 20 | 21 | # nyc test coverage 22 | .nyc_output 23 | 24 | # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) 25 | .grunt 26 | 27 | # node-waf configuration 28 | .lock-wscript 29 | 30 | # Compiled binary addons (http://nodejs.org/api/addons.html) 31 | build/Release 32 | 33 | # Dependency directories 34 | node_modules 35 | jspm_packages 36 | 37 | # Optional npm cache directory 38 | .npm 39 | 40 | # Optional eslint cache 41 | .eslintcache 42 | 43 | # Optional REPL history 44 | .node_repl_history 45 | /tmp 46 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2016 Postlight 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # How to Contribute to Awesome CMS 2 | 3 | _All scripts require **Node 6** or greater. Use [NVM][] to easily install it._ 4 | 5 | ## [data.toml](/data.toml) and [meta.toml](/meta.toml) 6 | 7 | [data.toml](/data.toml) and [meta.toml](/meta.toml) use the human-friendly [TOML] 8 | markup language. Together, they are used to generate the README. 9 | 10 | ## Generate the README.md 11 | 12 | The [README.md](/) for this project is generated from the data in 13 | [`data.toml`](data.toml). 14 | 15 | ``` 16 | # Edit data.toml 17 | npm install 18 | npm run generate-readme 19 | ``` 20 | 21 | ## Convert a URL to [TOML][] 22 | 23 | The [`scripts`](/scripts) folder contains `url-to-toml.js`, a script 24 | to easily convert a URL into TOML. E.g. 25 | 26 | ``` 27 | node scripts/url-to-toml.js https://github.com/jekyll/jekyll-admin 28 | ``` 29 | 30 | will generate 31 | 32 | ```toml 33 | 34 | [[cms]] 35 | name = "Jekyll Admin - A Jekyll plugin that provides users with a traditional CMS-style graphical interface to author content and administer Jekyll sites." 36 | description = "A Jekyll plugin that provides users with a traditional CMS-style graphical interface to author content and administer Jekyll sites." 37 | url = "https://jekyll.github.io/jekyll-admin/" 38 | github_repo = "jekyll/jekyll-admin" 39 | language = "javascript" 40 | ``` 41 | 42 | Data is scraped using [X-Ray](https://github.com/lapwinglabs/x-ray). Some hand 43 | editing is normally needed. 44 | 45 | [NVM]: https://github.com/creationix/nvm 46 | [TOML]: (https://github.com/toml-lang/toml) 47 | -------------------------------------------------------------------------------- /scripts/url-to-toml.js: -------------------------------------------------------------------------------- 1 | const compact = require('lodash/compact'); 2 | const Xray = require('x-ray'); 3 | 4 | const x = Xray(); 5 | 6 | function scrape(url) { 7 | let githubRepo; 8 | let githubOrg; 9 | if (/https:\/\/github.com/.test(url)) { 10 | const parts = url.split('/'); 11 | githubOrg = parts[3]; 12 | githubRepo = parts[4]; 13 | } 14 | 15 | x(url, { 16 | title: 'title', 17 | description: 'meta[name="description"]@content', 18 | metaUrl: 'span[itemprop="url"]', 19 | languages: ['.lang'], 20 | // Fetch the title from the actual site, which will be more accurate. 21 | githubSite: x('span[itemprop="url"]@text', { 22 | title: 'title', 23 | }), 24 | })((err, data) => { 25 | if (!data) { 26 | return console.error(`Failed to scrape ${url}`); 27 | } 28 | const title = data.title; 29 | const metaUrl = data.metaUrl; 30 | let description = data.description; 31 | const firstLanguage = data.languages[0]; 32 | 33 | // Handle special case where github duplicates the repo name in the 34 | // description. 35 | if (githubRepo) { 36 | description = description.split(' - ')[1]; 37 | } 38 | 39 | const tomlArray = [ 40 | '[[cms]]', 41 | `name = "${(data.githubSite.title || githubRepo || title || '').trim()}"`, 42 | `description = "${(description || title || '').trim()}"`, 43 | `url = "${metaUrl || url}"`, 44 | githubRepo && `github_repo = "${githubOrg}/${githubRepo}"`, 45 | firstLanguage && `language = "${firstLanguage.toLowerCase()}"`, 46 | ]; 47 | 48 | console.log(compact(tomlArray).join('\n')); 49 | }); 50 | } 51 | 52 | const url = process.argv[2]; 53 | 54 | if (!url) { 55 | console.error('No URL provided'); 56 | process.exit(); 57 | } 58 | 59 | scrape(url); 60 | -------------------------------------------------------------------------------- /README.md.hbs: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Awesome CMS [![Awesome][awesome-image]][awesome-repo] 4 | 5 | A collection of **{{cmsCount}}** open and closed source Content Management 6 | Systems (CMS) for your perusal. 7 | 8 | _Last generated on {{generationTime}}. See [CONTRIBUTING.md](/CONTRIBUTING.md) 9 | for details on generation and contribution._ 10 | 11 | {{#each tocEntries}} 12 | - [{{text}}](#{{anchor}}) 13 | {{/each}} 14 | 15 | **Key** 16 | 17 | | Emoji | Meaning | 18 | | ---------------------- | ---------------- | 19 | | :octocat: | GitHub Repo | 20 | | :globe_with_meridians: | Official Website | 21 | | :sunglasses: | Awesome List | 22 | | ⓘ | Last Commit Date | 23 | 24 | {{#each cmsGroups}} 25 | ## {{name}} 26 | 27 | 28 | 29 | 30 | {{#each headerColumns}} 31 | 32 | {{/each}} 33 | 34 | 35 | 36 | {{#each cmses}} 37 | 38 | 69 | 70 | 71 | {{/each}} 72 | 73 |
{{this}}
39 |
40 | {{name}} 41 |
42 |
43 | {{#if githubURL}} 44 | 45 | :octocat: 46 |    47 | {{/if}} 48 | {{#if url}} 49 | 50 | :globe_with_meridians: 51 |    52 | {{/if}} 53 | {{#if awesomeURL}} 54 | 55 | :sunglasses: 56 | 57 | {{/if}} 58 |
59 |
60 | {{#if starCountText}} 61 | ★{{starCountText}} 62 | {{/if}} 63 | {{#if lastCommit}} 64 | | {{lastCommit}} 65 | 66 | {{/if}} 67 |
68 |
{{description}}
74 | 75 | {{/each}} 76 | 77 | ## License 78 | 79 | MIT, see [LICENSE](/LICENSE) for more details. 80 | 81 | [awesome-image]: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg 82 | [awesome-repo]: https://github.com/sindresorhus/awesome 83 | -------------------------------------------------------------------------------- /scripts/generate-readme.js: -------------------------------------------------------------------------------- 1 | const fs = require('fs'); 2 | const toml = require('toml'); 3 | const groupBy = require('lodash/groupBy'); 4 | const sortBy = require('lodash/sortBy'); 5 | const compact = require('lodash/compact'); 6 | const find = require('lodash/find'); 7 | const { camelizeKeys } = require('humps'); 8 | const Xray = require('x-ray'); 9 | const Handlebars = require('handlebars'); 10 | const moment = require('moment'); 11 | 12 | const readmeTemplate = Handlebars.compile( 13 | fs.readFileSync('./README.md.hbs').toString() 14 | ); 15 | 16 | const x = Xray({ 17 | filters: { 18 | removeCommas(value) { 19 | return value && value.replace(',', ''); 20 | }, 21 | trim(value) { 22 | return value && value.trim(); 23 | }, 24 | toInt(value) { 25 | return value && parseInt(value, 10); 26 | }, 27 | toMoment(value) { 28 | return moment(value); 29 | }, 30 | }, 31 | }); 32 | 33 | // From https://git.io/viRqj 34 | const anchorify = (text) => ( 35 | text.toLowerCase() 36 | .split(/ /) 37 | .join('-') 38 | .split(/\t/) 39 | .join('--') 40 | .split(/[|$&`~=\\\/@+*!?({[\]})<>=.,;:'"^]/) 41 | .join('') 42 | ); 43 | 44 | const GITHUB_URL = 'https://github.com'; 45 | 46 | const numberWithCommas = (n) => ( 47 | n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',') 48 | ); 49 | 50 | const fetchGitHubDetails = (githubURL) => ( 51 | new Promise((resolve, reject) => { 52 | x(githubURL, { 53 | starCount: '.js-social-count | trim | removeCommas | toInt', 54 | lastCommit: 'relative-time@datetime | trim | toMoment', 55 | })((err, data) => { 56 | if (err) { 57 | console.error(`Error scraping ${githubURL}`, err); 58 | return reject(err); 59 | } 60 | return resolve(data); 61 | }); 62 | }) 63 | ); 64 | 65 | // Find duplicate entries in an array of objects for a given key. 66 | const duplicatesForKey = (objectArray, key) => ( 67 | objectArray.filter((object, index) => ( 68 | object[key] && find(objectArray.slice(index + 1), [key, object[key]]) 69 | )).map((object) => object[key]) 70 | ); 71 | 72 | const generateReadme = () => { 73 | const startedAt = moment(); 74 | const metaContents = fs.readFileSync('./meta.toml'); 75 | const meta = camelizeKeys(toml.parse(metaContents)); 76 | const dataContents = fs.readFileSync('./data.toml'); 77 | const data = camelizeKeys(toml.parse(dataContents)); 78 | const { cms: allCMSES } = data; 79 | 80 | const duplicateURLS = duplicatesForKey(allCMSES, 'url'); 81 | const duplicateGithubRepos = duplicatesForKey(allCMSES, 'githubRepo'); 82 | 83 | if (duplicateURLS.length) { 84 | console.error(`Duplciate url found: ${duplicateURLS}`); 85 | } 86 | if (duplicateGithubRepos.length) { 87 | console.error(`Duplciate github_repo found: ${duplicateGithubRepos}`); 88 | } 89 | 90 | const { languagesToHuman } = meta; 91 | const cmsesByLanguage = groupBy(allCMSES, 'language'); 92 | const languageKeys = Object.keys(cmsesByLanguage).sort(); 93 | 94 | const tocEntries = languageKeys.map((key) => { 95 | let humanName = languagesToHuman[key]; 96 | if (!humanName) { 97 | console.error( 98 | `Human name missing for "${key}" language. Add it to meta.toml` 99 | ); 100 | humanName = key; 101 | } 102 | return { 103 | text: humanName, 104 | anchor: anchorify(humanName), 105 | }; 106 | }); 107 | 108 | Promise.all(languageKeys.map((key) => { 109 | const cmsesForLanguage = cmsesByLanguage[key]; 110 | 111 | const cmsPromises = cmsesForLanguage.map( 112 | ({ awesomeRepo, name, description, githubRepo, url }) => { 113 | const githubURL = githubRepo && `${GITHUB_URL}/${githubRepo}`; 114 | const awesomeURL = awesomeRepo && `${GITHUB_URL}/${awesomeRepo}`; 115 | 116 | if (githubRepo) { 117 | return fetchGitHubDetails(githubURL).then(({ starCount, lastCommit }) => ({ 118 | awesomeURL, 119 | name, 120 | githubURL, 121 | starCount, 122 | starCountText: numberWithCommas(starCount), 123 | lastCommit: lastCommit.format('YYYY/MM/DD'), 124 | url, 125 | description, 126 | })); 127 | } 128 | 129 | return { 130 | awesomeURL, 131 | name, 132 | url, 133 | description, 134 | }; 135 | } 136 | ); 137 | 138 | return Promise.all(cmsPromises).then((cmses) => { 139 | // Sort by star count or name if starCount not available. 140 | const sortedCMSES = cmses[0].githubURL ? 141 | sortBy(cmses, ({ starCount }) => starCount).reverse() 142 | : 143 | sortBy(cmses, ({ name }) => name.toLowerCase()); 144 | 145 | return { 146 | name: languagesToHuman[key], 147 | headerColumns: compact([ 148 | 'Name', 149 | 'Description', 150 | ]), 151 | cmses: sortedCMSES, 152 | }; 153 | }); 154 | })).then((cmsGroups) => { 155 | fs.writeFileSync('README.md', readmeTemplate({ 156 | cmsCount: allCMSES.length, 157 | cmsGroups, 158 | generationTime: moment().format('MMMM Do, YYYY'), 159 | tocEntries, 160 | })); 161 | const milliseconds = moment().diff(startedAt); 162 | console.log( 163 | `Finished README.md generation for ${allCMSES.length}` + 164 | ` CMSes in ${milliseconds / 1000.0} seconds.` 165 | ); 166 | }).catch((error) => { 167 | console.error('Error generating readme', error); 168 | }); 169 | }; 170 | 171 | generateReadme(); 172 | -------------------------------------------------------------------------------- /data.toml: -------------------------------------------------------------------------------- 1 | # Template 2 | 3 | # [[cms]] 4 | # name = "" 5 | # description = "" 6 | # url = "" 7 | # github_repo = "" 8 | # awesome_repo = "" 9 | # language = "" 10 | 11 | # --- 12 | # PHP 13 | # --- 14 | 15 | [[cms]] 16 | name = "WordPress" 17 | description = "WordPress is a free and open-source content management system (CMS) based on PHP and MySQL." 18 | url = "https://wordpress.org" 19 | github_repo = "WordPress/WordPress" 20 | awesome_repo = "miziomon/awesome-wordpress" 21 | language = "php" 22 | 23 | [[cms]] 24 | name = "Drupal" 25 | description = "Drupal is a free and open-source content-management framework written in PHP and distributed under the GNU General Public License." 26 | url = "https://www.drupal.org" 27 | github_repo = "drupal/drupal" 28 | awesome_repo = "mrsinguyen/awesome-drupal" 29 | language = "php" 30 | 31 | [[cms]] 32 | name = "Joomla!" 33 | description = "Joomla is a free and open-source content management system (CMS) for publishing web content. It is built on a model–view–controller web application framework that can be used independently of the CMS." 34 | url = "https://www.joomla.org" 35 | github_repo = "joomla/joomla-cms" 36 | language = "php" 37 | 38 | [[cms]] 39 | name = "Croogo" 40 | description = "A CakePHP powered Content Management System." 41 | url = "http://www.croogo.org" 42 | github_repo = "croogo/croogo" 43 | language = "php" 44 | 45 | [[cms]] 46 | name = "FUEL CMS" 47 | description = "A CodeIgniter Content Management System." 48 | url = "http://www.getfuelcms.com" 49 | github_repo = "daylightstudio/FUEL-CMS" 50 | language = "php" 51 | 52 | [[cms]] 53 | name = "Grav" 54 | description = "Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS." 55 | url = "http://getgrav.org" 56 | github_repo = "getgrav/grav" 57 | language = "php" 58 | 59 | [[cms]] 60 | name = "Pagekit" 61 | description = "Pagekit is a modular and lightweight CMS built with Symfony components and Vue.js." 62 | url = "https://pagekit.com" 63 | github_repo = "pagekit/pagekit" 64 | language = "php" 65 | 66 | [[cms]] 67 | name = "Bolt" 68 | description = "Bolt is a simple CMS written in PHP. It is based on Silex and Symfony components, uses Twig and either SQLite, MySQL or PostgreSQL." 69 | url = "https://github.com/bolt/bolt" 70 | github_repo = "bolt/bolt" 71 | language = "php" 72 | 73 | [[cms]] 74 | name = "Anchor CMS" 75 | description = "A lightweight blog CMS for PHP." 76 | url = "http://anchorcms.com/" 77 | github_repo = "anchorcms/anchor-cms" 78 | language = "php" 79 | 80 | [[cms]] 81 | name = "Pico" 82 | description = "Pico is a stupidly simple, blazing fast, flat file CMS." 83 | url = "http://picocms.org/" 84 | github_repo = "picocms/Pico" 85 | language = "php" 86 | 87 | [[cms]] 88 | name = "Cockpit CMS" 89 | description = "Add content management functionality to any site." 90 | url = "http://getcockpit.com" 91 | github_repo = "COCOPi/cockpit" 92 | language = "php" 93 | 94 | [[cms]] 95 | name = "Bootstrap CMS" 96 | description = "A PHP CMS powered by Laravel 5 and Sentry" 97 | github_repo = "BootstrapCMS/CMS" 98 | language = "php" 99 | 100 | [[cms]] 101 | name = "Fork CMS" 102 | description = "Fork is an open source CMS using Symfony Components." 103 | url = "http://www.fork-cms.com" 104 | github_repo = "forkcms/forkcms" 105 | language = "php" 106 | 107 | [[cms]] 108 | name = "Pimcore Platform" 109 | description = "Content & Product Management Framework (CMS/PIM/E-Commerce)." 110 | url = "http://www.pimcore.org/" 111 | github_repo = "pimcore/pimcore" 112 | language = "php" 113 | 114 | [[cms]] 115 | name = "SilverStripe" 116 | description = "SilverStripe is the intuitive content management system and flexible framework loved by editors and developers alike. Equip your web teams to achieve outstanding results." 117 | url = "http://silverstripe.org/" 118 | github_repo = "silverstripe/silverstripe-framework" 119 | language = "php" 120 | 121 | [[cms]] 122 | name = "Lavalite" 123 | description = "CMS Built with Laravel 5.2 and Bootstrap 3." 124 | url = "http://www.lavalite.org" 125 | github_repo = "LavaLite/cms" 126 | language = "php" 127 | 128 | [[cms]] 129 | name = "Contao" 130 | description = "Contao is a web-based Open Source CMS, which generates accessible websites. It supports multiple languages and can easily be learned and extended." 131 | url = "https://contao.org/en/" 132 | github_repo = "contao/core" 133 | language = "php" 134 | 135 | [[cms]] 136 | name = "Microweber" 137 | description = "Microweber is a new generation content management system that allows you to create a website using drag and drop. You can easily manipulate the content and the layout of your pages. No coding skills are required." 138 | url = "https://microweber.com" 139 | github_repo = "microweber/microweber" 140 | language = "php" 141 | 142 | [[cms]] 143 | name = "PyroCMS" 144 | description = "PyroCMS is an MVC PHP Content Management System built to be easy to use, theme and develop with. It is used by individuals and organizations of all sizes around the world." 145 | url = "https://www.pyrocms.com/" 146 | github_repo = "pyrocms/pyrocms" 147 | awesome_repo = "websemantics/awesome-pyrocms" 148 | language = "php" 149 | 150 | # ------------- 151 | # Closed Source 152 | # ------------- 153 | 154 | [[cms]] 155 | name = "SquareSpace" 156 | description = "Squarespace is a SaaS-based content management system-integrated website builder, blogging platform and hosting service." 157 | url = "https://www.squarespace.com" 158 | 159 | [[cms]] 160 | name = "Siteleaf" 161 | description = "Supports Jekyll, user collaboration, publishing to AWS S3, GitHub Pages, FTP, and more." 162 | url = "http://www.siteleaf.com" 163 | 164 | [[cms]] 165 | name = "ExpressionEngine" 166 | description = "general purpose content management system written in object-oriented PHP and using MySQL for data storage." 167 | url = "https://ellislab.com/expressionengine" 168 | 169 | [[cms]] 170 | name = "Craft CMS" 171 | description = "Craft CMS is a focused content management system for developers, designers, and web professionals that blends flexibility, power, and ease of use for clients." 172 | url = "https://craftcms.com" 173 | 174 | [[cms]] 175 | name = "prismic.io" 176 | description = "A hosted, API based and developer friendly CMS backend. We take care of upgrades, scalability and security." 177 | url = "https://prismic.io" 178 | 179 | [[cms]] 180 | name = "Built.io Contentstack" 181 | description = "Headless CMS divides front-end from backend architecture to send content to multiple devices and platforms without creating content differently each time." 182 | url = "https://www.built.io/products/contentstack/overview" 183 | 184 | [[cms]] 185 | name = "Osmek" 186 | description = "Osmek is a new kind of CMS, built in the cloud so your content is available where and how you need it. It's a beautiful interface for creating content, and a powerful set of APIs for retrieving it." 187 | url = "http://osmek.com" 188 | 189 | [[cms]] 190 | name = "Cloud CMS" 191 | description = "Shatter the limits imposed by your old, legacy CMS. Our headless, API-first Content Management System provides everything needed for scalable, multi-device publishing through SaaS and On-Premise delivery" 192 | url = "https://www.cloudcms.com" 193 | 194 | [[cms]] 195 | name = "Contentful" 196 | description = "Contentful is an API-first CMS focused on the simplicity of development. Manage structured content in websites and apps." 197 | url = "https://www.contentful.com" 198 | 199 | [[cms]] 200 | name = "Cosmic JS" 201 | description = "Cosmic JS is a cloud-hosted content platform that offers a flexible and intuitive CMS API. Build websites and applications with more freedom and manage content easier." 202 | url = "https://cosmicjs.com" 203 | 204 | [[cms]] 205 | name = "Prose" 206 | description = "Prose is a content editor for GitHub designed for managing websites." 207 | url = "http://prose.io" 208 | 209 | [[cms]] 210 | name = "Statamic" 211 | description = "Statamic is a flat file CMS built for developers and clients alike. It's a platform designed to make you the hero. Built with Laravel and Vue.js." 212 | url = "https://statamic.com" 213 | 214 | [[cms]] 215 | name = "Weebly" 216 | description = "Weebly makes it surprisingly easy to create a high-quality website, blog or online store. Over 30 million people use Weebly to bring their unique ideas to life." 217 | url = "https://www.weebly.com" 218 | 219 | [[cms]] 220 | name = "Wix" 221 | description = "Create a free website with Wix.com. Customize with Wix' free website builder, no coding skills needed. Choose a design, begin customizing and be online today!" 222 | url = "http://www.wix.com" 223 | 224 | [[cms]] 225 | name = "Blogger" 226 | description = "Publish your passions your way. Whether you’d like to share your knowledge, experiences or the latest news, create a unique and beautiful blog for free." 227 | url = "https://www.blogger.com" 228 | 229 | [[cms]] 230 | name = "Medium" 231 | description = "Welcome to Medium, a place to read, write, and interact with the stories that matter most to you. Every day thousands of new voices share…" 232 | url = "http://medium.com" 233 | 234 | [[cms]] 235 | name = "Jimdo" 236 | description = "Create a professional website, online store or blog in minutes with Jimdo's website builder. Choose one of our responsive templates, and get started!" 237 | url = "http://www.jimdo.com" 238 | 239 | # ---------- 240 | # JavaScript 241 | # ---------- 242 | 243 | [[cms]] 244 | name = "Netlify CMS" 245 | description = "A CMS for Static Site Generators." 246 | github_repo = "netlify/netlify-cms" 247 | language = "javascript" 248 | 249 | [[cms]] 250 | name = "KeystoneJS" 251 | description = "The open source framework for developing database-driven websites, applications and APIs in Node.js. Built on Express and MongoDB." 252 | url = "http://keystonejs.com" 253 | github_repo = "keystonejs/keystone" 254 | language = "javascript" 255 | 256 | [[cms]] 257 | name = "Relax" 258 | description = "New generation CMS on top of React, Redux and GraphQL." 259 | github_repo = "relax/relax" 260 | language = "javascript" 261 | 262 | [[cms]] 263 | name = "Ghost" 264 | description = "Ghost is an open source publishing platform which is beautifully designed, easy to use, and free for everyone." 265 | url = "https://ghost.org" 266 | github_repo = "tryghost/Ghost" 267 | language = "javascript" 268 | 269 | [[cms]] 270 | name = "We.js Framework" 271 | description = "Extensible Node.js MVC framework." 272 | url = "http://wejs.org/" 273 | github_repo = "wejs/we" 274 | language = "javascript" 275 | 276 | [[cms]] 277 | name = "PencilBlue" 278 | description = "Business class content management for Node.js (plugins, server cluster management, data-driven pages)." 279 | url = "https://pencilblue.org" 280 | github_repo = "pencilblue/pencilblue" 281 | language = "javascript" 282 | 283 | [[cms]] 284 | name = "Cody" 285 | description = "Javascript Content Management System running on Node.js." 286 | url = "http://howest.cody-cms.org" 287 | github_repo = "jcoppieters/cody" 288 | language = "javascript" 289 | 290 | [[cms]] 291 | name = "Apostrophe" 292 | description = "Apostrophe is a content management system. This core module provides rich content editing as well as essential services to tie Apostrophe to your Express application." 293 | github_repo = "punkave/apostrophe" 294 | language = "javascript" 295 | 296 | [[cms]] 297 | name = "Reaction" 298 | description = "Reaction is a modern reactive, real-time event driven ecommerce platform." 299 | url = "https://reactioncommerce.com/" 300 | github_repo = "reactioncommerce/reaction" 301 | language = "javascript" 302 | 303 | [[cms]] 304 | name = "Directus" 305 | description = "Directus is a headless CMS written in backbone.js that provides a feature-rich environment for rapid development and management of custom database schemas." 306 | url = "http://getdirectus.com" 307 | github_repo = "directus/directus" 308 | language = "javascript" 309 | 310 | [[cms]] 311 | name = "Webhook" 312 | description = "Webhook lets you build a custom CMS with matching HTML templates in about a minute. Webhook is built with Node JS, Grunt, Firebase and Swig." 313 | url = "http://www.webhook.com" 314 | github_repo = "webhook/webhook" 315 | language = "javascript" 316 | 317 | [[cms]] 318 | name = "CMS.js" 319 | description = "CMS.js is fully client-side, Javascript site generator in the spirit of Jekyll that uses plain ol' HTML, CSS and Javascript to generate your website. CMS.js is like a file-based CMS. It takes your content, renders Markdown and delivers a complete website in Single-Page App fashion...without the aid of server-side scripting." 320 | url = "http://cdmedia.github.io/cms.js" 321 | github_repo = "cdmedia/cms.js" 322 | language = "javascript" 323 | 324 | [[cms]] 325 | name = "Respond CMS" 326 | description = "Angular 2 + Lumen PHP + Static HTML sites. Respond 6 is a responsive CMS that features Bootstrap 3, a complete REST API, templates, plugins, and more." 327 | url = "https://respondcms.com" 328 | github_repo = "madoublet/respond" 329 | language = "javascript" 330 | 331 | [[cms]] 332 | name = "Jekyll Admin" 333 | description = "A Jekyll plugin that provides users with a traditional CMS-style graphical interface to author content and administer Jekyll sites." 334 | url = "https://jekyll.github.io/jekyll-admin/" 335 | github_repo = "jekyll/jekyll-admin" 336 | language = "javascript" 337 | 338 | # ---- 339 | # Ruby 340 | # ---- 341 | 342 | [[cms]] 343 | name = "Alchemy CMS" 344 | description = "Alchemy is a powerful, flexible and user centric Rails CMS." 345 | url = "http://alchemy-cms.com" 346 | github_repo = "AlchemyCMS/alchemy_cms" 347 | language = "ruby" 348 | 349 | [[cms]] 350 | name = "Camaleon CMS" 351 | description = "Camaleon CMS is a dynamic and advanced content management system based on Ruby on Rails 4." 352 | url = "http://camaleon.tuzitio.com/" 353 | github_repo = "owen2345/camaleon-cms" 354 | language = "ruby" 355 | 356 | [[cms]] 357 | name = "ComfortableMexicanSofa " 358 | description = "ComfortableMexicanSofa is a powerful Rails 4 CMS Engine." 359 | github_repo = "comfy/comfortable-mexican-sofa" 360 | language = "ruby" 361 | 362 | [[cms]] 363 | name = "LocomotiveCMS" 364 | description = "A platform to create, publish and edit sites." 365 | url = "http://locomotive.works" 366 | github_repo = "locomotivecms/engine" 367 | language = "ruby" 368 | 369 | [[cms]] 370 | name = "Publify" 371 | description = "A self hosted Web publishing platform on Rails." 372 | url = "http://publify.co" 373 | github_repo = "publify/publify" 374 | language = "ruby" 375 | 376 | [[cms]] 377 | name = "Radiant CMS" 378 | description = "Radiant is a no-fluff, open source content management system designed for small teams." 379 | url = "http://radiantcms.org/" 380 | github_repo = "radiant/radiant" 381 | language = "ruby" 382 | 383 | [[cms]] 384 | name = "Refinery CMS" 385 | description = "An extendable Ruby on Rails CMS that supports Rails 4.2+." 386 | url = "http://refinerycms.com" 387 | github_repo = "refinery/refinerycms" 388 | awesome_repo = "refinerycms-contrib/awesome-refinerycms" 389 | language = "ruby" 390 | 391 | [[cms]] 392 | name = "Spina" 393 | description = "GitHub - denkGroot/Spina: Spina CMS." 394 | url = "http://www.spinacms.com" 395 | github_repo = "denkGroot/Spina" 396 | language = "ruby" 397 | 398 | [[cms]] 399 | name = "Storytime" 400 | description = "Storytime is a Rails 4+ CMS and blogging engine, with a core focus on content. It is built and maintained by @cultivatelabs." 401 | github_repo = "CultivateLabs/storytime" 402 | language = "ruby" 403 | 404 | [[cms]] 405 | name = "Nesta" 406 | description = "A lightweight CMS, implemented in Sinatra." 407 | url = "http://nestacms.com" 408 | github_repo = "gma/nesta" 409 | language = "ruby" 410 | 411 | ## ------ 412 | ## Python 413 | ## ------ 414 | 415 | [[cms]] 416 | name = "django CMS" 417 | description = "The easy-to-use and developer-friendly CMS." 418 | url = "http://www.django-cms.org" 419 | github_repo = "divio/django-cms" 420 | awesome_repo = "mishbahr/awesome-django-cms" 421 | language = "python" 422 | 423 | [[cms]] 424 | name = "feinCMS" 425 | description = "A Django-based CMS with a focus on extensibility and concise code." 426 | url = "http://www.feincms.org/" 427 | github_repo = "feincms/feincms" 428 | language = "python" 429 | 430 | [[cms]] 431 | name = "Kotti" 432 | description = "Kotti is a high-level, Pythonic web application framework based on Pyramid and SQLAlchemy. It includes an extensible Content Management System called the Kotti CMS." 433 | url = "http://kotti.pylonsproject.org" 434 | github_repo = "Kotti/Kotti" 435 | language = "python" 436 | 437 | [[cms]] 438 | name = "Mezzanine" 439 | description = "CMS framework for Django." 440 | url = "http://mezzanine.jupo.org" 441 | github_repo = "stephenmcd/mezzanine" 442 | language = "python" 443 | 444 | [[cms]] 445 | name = "Opps Project" 446 | description = "A Django-based CMS for the magazines, newspappers websites and portals with high-traffic." 447 | url = "http://opps.github.io/opps/" 448 | github_repo = "opps/opps" 449 | language = "python" 450 | 451 | [[cms]] 452 | name = "Plone CMS" 453 | description = "Plone is a user friendly Content Management System running on top of Python, Zope and the CMF." 454 | url = "http://plone.org" 455 | github_repo = "plone/Plone" 456 | language = "python" 457 | 458 | [[cms]] 459 | name = "Quokka CMS" 460 | description = "Quokka is a flexible content management platform powered by Python, Flask and MongoDB." 461 | url = "http://www.quokkaproject.org" 462 | github_repo = "quokkaproject/quokka" 463 | language = "python" 464 | 465 | [[cms]] 466 | name = "Wagtail CMS" 467 | description = "Wagtail is a content management system built on Django. It's focused on user experience, and offers precise control for designers and developers." 468 | url = "http://wagtail.io" 469 | github_repo = "torchbox/wagtail" 470 | awesome_repo = "springload/awesome-wagtail" 471 | language = "python" 472 | 473 | [[cms]] 474 | name = "Lektor" 475 | description = "The lektor static file content management system" 476 | url = "https://www.getlektor.com/" 477 | github_repo = "lektor/lektor" 478 | language = "python" 479 | 480 | # ---- 481 | # .NET 482 | # ---- 483 | 484 | [[cms]] 485 | name = "Umbraco" 486 | description = "The simple, flexible and friendly ASP.NET CMS used by more than 360,000 websites." 487 | url = "http://umbraco.com" 488 | github_repo = "umbraco/Umbraco-CMS" 489 | awesome_repo = "leekelleher/awesome-umbraco" 490 | language = "c#" 491 | 492 | [[cms]] 493 | name = "Orchard" 494 | description = "Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform." 495 | url = "http://orchardproject.net" 496 | github_repo = "OrchardCMS/Orchard" 497 | language = "c#" 498 | 499 | [[cms]] 500 | name = "DotNetNuke (DNN)" 501 | description = "DNN Platform is our free, open source web CMS and the foundation of every professional DNN solution. Over 750,000 organizations worldwide have built websites powered by the DNN Platform." 502 | url = "http://www.dnnsoftware.com" 503 | github_repo = "dnnsoftware/Dnn.Platform" 504 | language = "c#" 505 | 506 | [[cms]] 507 | name = "Piranha CMS" 508 | description = "Piranha is the fun, fast and lightweight .NET framework for developing cms-based web applications with an extra bite. It's built on ASP.NET MVC and Web Pages and is fully compatible with both Visual Studio and WebMatrix." 509 | url = "http://piranhacms.org" 510 | github_repo = "PiranhaCMS/Piranha" 511 | language = "c#" 512 | 513 | [[cms]] 514 | name = "Composite C1" 515 | description = "A web CMS that focus on UX and adaptability." 516 | github_repo = "Orckestra/C1-CMS" 517 | language = "c#" 518 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | 3 | # Awesome CMS [![Awesome][awesome-image]][awesome-repo] 4 | 5 | A collection of **73** open and closed source Content Management 6 | Systems (CMS) for your perusal. 7 | 8 | _Last generated on October 3rd, 2016. See [CONTRIBUTING.md](/CONTRIBUTING.md) 9 | for details on generation and contribution._ 10 | 11 | - [.NET](#net) 12 | - [JavaScript](#javascript) 13 | - [PHP](#php) 14 | - [Python](#python) 15 | - [Ruby](#ruby) 16 | - [Closed Source](#closed-source) 17 | 18 | **Key** 19 | 20 | | Emoji | Meaning | 21 | | ---------------------- | ---------------- | 22 | | :octocat: | GitHub Repo | 23 | | :globe_with_meridians: | Official Website | 24 | | :sunglasses: | Awesome List | 25 | | ⓘ | Last Commit Date | 26 | 27 | ## .NET 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 59 | 60 | 61 | 62 | 80 | 81 | 82 | 83 | 101 | 102 | 103 | 104 | 122 | 123 | 124 | 125 | 140 | 141 | 142 | 143 |
NameDescription
39 |
40 | Umbraco 41 |
42 |
43 | 44 | :octocat: 45 |    46 | 47 | :globe_with_meridians: 48 |    49 | 50 | :sunglasses: 51 | 52 |
53 |
54 | ★1,348 55 | | 2016/09/28 56 | 57 |
58 |
The simple, flexible and friendly ASP.NET CMS used by more than 360,000 websites.
63 |
64 | Orchard 65 |
66 |
67 | 68 | :octocat: 69 |    70 | 71 | :globe_with_meridians: 72 |    73 |
74 |
75 | ★1,064 76 | | 2016/09/22 77 | 78 |
79 |
Orchard is a free, open source, community-focused Content Management System built on the ASP.NET MVC platform.
84 |
85 | Piranha CMS 86 |
87 |
88 | 89 | :octocat: 90 |    91 | 92 | :globe_with_meridians: 93 |    94 |
95 |
96 | ★314 97 | | 2016/02/19 98 | 99 |
100 |
Piranha is the fun, fast and lightweight .NET framework for developing cms-based web applications with an extra bite. It's built on ASP.NET MVC and Web Pages and is fully compatible with both Visual Studio and WebMatrix.
105 |
106 | DotNetNuke (DNN) 107 |
108 |
109 | 110 | :octocat: 111 |    112 | 113 | :globe_with_meridians: 114 |    115 |
116 |
117 | ★218 118 | | 2016/09/30 119 | 120 |
121 |
DNN Platform is our free, open source web CMS and the foundation of every professional DNN solution. Over 750,000 organizations worldwide have built websites powered by the DNN Platform.
126 |
127 | Composite C1 128 |
129 |
130 | 131 | :octocat: 132 |    133 |
134 |
135 | ★99 136 | | 2016/09/29 137 | 138 |
139 |
A web CMS that focus on UX and adaptability.
144 | 145 | ## JavaScript 146 | 147 | 148 | 149 | 150 | 151 | 152 | 153 | 154 | 155 | 156 | 174 | 175 | 176 | 177 | 195 | 196 | 197 | 198 | 213 | 214 | 215 | 216 | 234 | 235 | 236 | 237 | 255 | 256 | 257 | 258 | 276 | 277 | 278 | 279 | 297 | 298 | 299 | 300 | 315 | 316 | 317 | 318 | 336 | 337 | 338 | 339 | 357 | 358 | 359 | 360 | 375 | 376 | 377 | 378 | 396 | 397 | 398 | 399 | 417 | 418 | 419 | 420 | 438 | 439 | 440 | 441 |
NameDescription
157 |
158 | Ghost 159 |
160 |
161 | 162 | :octocat: 163 |    164 | 165 | :globe_with_meridians: 166 |    167 |
168 |
169 | ★20,789 170 | | 2016/10/03 171 | 172 |
173 |
Ghost is an open source publishing platform which is beautifully designed, easy to use, and free for everyone.
178 |
179 | KeystoneJS 180 |
181 |
182 | 183 | :octocat: 184 |    185 | 186 | :globe_with_meridians: 187 |    188 |
189 |
190 | ★7,785 191 | | 2016/10/03 192 | 193 |
194 |
The open source framework for developing database-driven websites, applications and APIs in Node.js. Built on Express and MongoDB.
199 |
200 | Relax 201 |
202 |
203 | 204 | :octocat: 205 |    206 |
207 |
208 | ★6,208 209 | | 2016/09/26 210 | 211 |
212 |
New generation CMS on top of React, Redux and GraphQL.
217 |
218 | Reaction 219 |
220 |
221 | 222 | :octocat: 223 |    224 | 225 | :globe_with_meridians: 226 |    227 |
228 |
229 | ★2,750 230 | | 2016/09/23 231 | 232 |
233 |
Reaction is a modern reactive, real-time event driven ecommerce platform.
238 |
239 | CMS.js 240 |
241 |
242 | 243 | :octocat: 244 |    245 | 246 | :globe_with_meridians: 247 |    248 |
249 |
250 | ★1,905 251 | | 2016/03/07 252 | 253 |
254 |
CMS.js is fully client-side, Javascript site generator in the spirit of Jekyll that uses plain ol' HTML, CSS and Javascript to generate your website. CMS.js is like a file-based CMS. It takes your content, renders Markdown and delivers a complete website in Single-Page App fashion...without the aid of server-side scripting.
259 |
260 | PencilBlue 261 |
262 |
263 | 264 | :octocat: 265 |    266 | 267 | :globe_with_meridians: 268 |    269 |
270 |
271 | ★1,436 272 | | 2016/10/03 273 | 274 |
275 |
Business class content management for Node.js (plugins, server cluster management, data-driven pages).
280 |
281 | Directus 282 |
283 |
284 | 285 | :octocat: 286 |    287 | 288 | :globe_with_meridians: 289 |    290 |
291 |
292 | ★1,407 293 | | 2016/09/30 294 | 295 |
296 |
Directus is a headless CMS written in backbone.js that provides a feature-rich environment for rapid development and management of custom database schemas.
301 |
302 | Apostrophe 303 |
304 |
305 | 306 | :octocat: 307 |    308 |
309 |
310 | ★1,196 311 | | 2016/10/01 312 | 313 |
314 |
Apostrophe is a content management system. This core module provides rich content editing as well as essential services to tie Apostrophe to your Express application.
319 |
320 | Respond CMS 321 |
322 |
323 | 324 | :octocat: 325 |    326 | 327 | :globe_with_meridians: 328 |    329 |
330 |
331 | ★794 332 | | 2016/08/30 333 | 334 |
335 |
Angular 2 + Lumen PHP + Static HTML sites. Respond 6 is a responsive CMS that features Bootstrap 3, a complete REST API, templates, plugins, and more.
340 |
341 | Jekyll Admin 342 |
343 |
344 | 345 | :octocat: 346 |    347 | 348 | :globe_with_meridians: 349 |    350 |
351 |
352 | ★570 353 | | 2016/09/29 354 | 355 |
356 |
A Jekyll plugin that provides users with a traditional CMS-style graphical interface to author content and administer Jekyll sites.
361 |
362 | Netlify CMS 363 |
364 |
365 | 366 | :octocat: 367 |    368 |
369 |
370 | ★553 371 | | 2016/09/22 372 | 373 |
374 |
A CMS for Static Site Generators.
379 |
380 | Cody 381 |
382 |
383 | 384 | :octocat: 385 |    386 | 387 | :globe_with_meridians: 388 |    389 |
390 |
391 | ★532 392 | | 2016/06/02 393 | 394 |
395 |
Javascript Content Management System running on Node.js.
400 |
401 | Webhook 402 |
403 |
404 | 405 | :octocat: 406 |    407 | 408 | :globe_with_meridians: 409 |    410 |
411 |
412 | ★505 413 | | 2015/09/04 414 | 415 |
416 |
Webhook lets you build a custom CMS with matching HTML templates in about a minute. Webhook is built with Node JS, Grunt, Firebase and Swig.
421 |
422 | We.js Framework 423 |
424 |
425 | 426 | :octocat: 427 |    428 | 429 | :globe_with_meridians: 430 |    431 |
432 |
433 | ★158 434 | | 2016/07/12 435 | 436 |
437 |
Extensible Node.js MVC framework.
442 | 443 | ## PHP 444 | 445 | 446 | 447 | 448 | 449 | 450 | 451 | 452 | 453 | 454 | 475 | 476 | 477 | 478 | 496 | 497 | 498 | 499 | 517 | 518 | 519 | 520 | 538 | 539 | 540 | 541 | 559 | 560 | 561 | 562 | 580 | 581 | 582 | 583 | 604 | 605 | 606 | 607 | 628 | 629 | 630 | 631 | 649 | 650 | 651 | 652 | 670 | 671 | 672 | 673 | 688 | 689 | 690 | 691 | 709 | 710 | 711 | 712 | 730 | 731 | 732 | 733 | 751 | 752 | 753 | 754 | 772 | 773 | 774 | 775 | 793 | 794 | 795 | 796 | 814 | 815 | 816 | 817 | 835 | 836 | 837 | 838 | 856 | 857 | 858 | 859 |
NameDescription
455 |
456 | WordPress 457 |
458 |
459 | 460 | :octocat: 461 |    462 | 463 | :globe_with_meridians: 464 |    465 | 466 | :sunglasses: 467 | 468 |
469 |
470 | ★8,027 471 | | 2016/10/03 472 | 473 |
474 |
WordPress is a free and open-source content management system (CMS) based on PHP and MySQL.
479 |
480 | Grav 481 |
482 |
483 | 484 | :octocat: 485 |    486 | 487 | :globe_with_meridians: 488 |    489 |
490 |
491 | ★5,214 492 | | 2016/10/01 493 | 494 |
495 |
Modern, Crazy Fast, Ridiculously Easy and Amazingly Powerful Flat-File CMS.
500 |
501 | Pagekit 502 |
503 |
504 | 505 | :octocat: 506 |    507 | 508 | :globe_with_meridians: 509 |    510 |
511 |
512 | ★3,745 513 | | 2016/08/26 514 | 515 |
516 |
Pagekit is a modular and lightweight CMS built with Symfony components and Vue.js.
521 |
522 | Bolt 523 |
524 |
525 | 526 | :octocat: 527 |    528 | 529 | :globe_with_meridians: 530 |    531 |
532 |
533 | ★2,975 534 | | 2016/09/30 535 | 536 |
537 |
Bolt is a simple CMS written in PHP. It is based on Silex and Symfony components, uses Twig and either SQLite, MySQL or PostgreSQL.
542 |
543 | Anchor CMS 544 |
545 |
546 | 547 | :octocat: 548 |    549 | 550 | :globe_with_meridians: 551 |    552 |
553 |
554 | ★2,802 555 | | 2016/08/08 556 | 557 |
558 |
A lightweight blog CMS for PHP.
563 |
564 | Pico 565 |
566 |
567 | 568 | :octocat: 569 |    570 | 571 | :globe_with_meridians: 572 |    573 |
574 |
575 | ★2,404 576 | | 2016/09/17 577 | 578 |
579 |
Pico is a stupidly simple, blazing fast, flat file CMS.
584 |
585 | Drupal 586 |
587 |
588 | 589 | :octocat: 590 |    591 | 592 | :globe_with_meridians: 593 |    594 | 595 | :sunglasses: 596 | 597 |
598 |
599 | ★2,375 600 | | 2016/09/30 601 | 602 |
603 |
Drupal is a free and open-source content-management framework written in PHP and distributed under the GNU General Public License.
608 |
609 | PyroCMS 610 |
611 |
612 | 613 | :octocat: 614 |    615 | 616 | :globe_with_meridians: 617 |    618 | 619 | :sunglasses: 620 | 621 |
622 |
623 | ★2,343 624 | | 2016/09/27 625 | 626 |
627 |
PyroCMS is an MVC PHP Content Management System built to be easy to use, theme and develop with. It is used by individuals and organizations of all sizes around the world.
632 |
633 | Joomla! 634 |
635 |
636 | 637 | :octocat: 638 |    639 | 640 | :globe_with_meridians: 641 |    642 |
643 |
644 | ★2,145 645 | | 2016/10/03 646 | 647 |
648 |
Joomla is a free and open-source content management system (CMS) for publishing web content. It is built on a model–view–controller web application framework that can be used independently of the CMS.
653 |
654 | Cockpit CMS 655 |
656 |
657 | 658 | :octocat: 659 |    660 | 661 | :globe_with_meridians: 662 |    663 |
664 |
665 | ★1,955 666 | | 2016/09/30 667 | 668 |
669 |
Add content management functionality to any site.
674 |
675 | Bootstrap CMS 676 |
677 |
678 | 679 | :octocat: 680 |    681 |
682 |
683 | ★1,846 684 | | 2016/06/28 685 | 686 |
687 |
A PHP CMS powered by Laravel 5 and Sentry
692 |
693 | Fork CMS 694 |
695 |
696 | 697 | :octocat: 698 |    699 | 700 | :globe_with_meridians: 701 |    702 |
703 |
704 | ★931 705 | | 2016/10/03 706 | 707 |
708 |
Fork is an open source CMS using Symfony Components.
713 |
714 | FUEL CMS 715 |
716 |
717 | 718 | :octocat: 719 |    720 | 721 | :globe_with_meridians: 722 |    723 |
724 |
725 | ★781 726 | | 2016/06/23 727 | 728 |
729 |
A CodeIgniter Content Management System.
734 |
735 | Croogo 736 |
737 |
738 | 739 | :octocat: 740 |    741 | 742 | :globe_with_meridians: 743 |    744 |
745 |
746 | ★769 747 | | 2016/05/12 748 | 749 |
750 |
A CakePHP powered Content Management System.
755 |
756 | Lavalite 757 |
758 |
759 | 760 | :octocat: 761 |    762 | 763 | :globe_with_meridians: 764 |    765 |
766 |
767 | ★598 768 | | 2016/07/25 769 | 770 |
771 |
CMS Built with Laravel 5.2 and Bootstrap 3.
776 |
777 | Pimcore Platform 778 |
779 |
780 | 781 | :octocat: 782 |    783 | 784 | :globe_with_meridians: 785 |    786 |
787 |
788 | ★586 789 | | 2016/10/03 790 | 791 |
792 |
Content & Product Management Framework (CMS/PIM/E-Commerce).
797 |
798 | SilverStripe 799 |
800 |
801 | 802 | :octocat: 803 |    804 | 805 | :globe_with_meridians: 806 |    807 |
808 |
809 | ★522 810 | | 2016/10/02 811 | 812 |
813 |
SilverStripe is the intuitive content management system and flexible framework loved by editors and developers alike. Equip your web teams to achieve outstanding results.
818 |
819 | Contao 820 |
821 |
822 | 823 | :octocat: 824 |    825 | 826 | :globe_with_meridians: 827 |    828 |
829 |
830 | ★518 831 | | 2016/09/20 832 | 833 |
834 |
Contao is a web-based Open Source CMS, which generates accessible websites. It supports multiple languages and can easily be learned and extended.
839 |
840 | Microweber 841 |
842 |
843 | 844 | :octocat: 845 |    846 | 847 | :globe_with_meridians: 848 |    849 |
850 |
851 | ★435 852 | | 2016/07/29 853 | 854 |
855 |
Microweber is a new generation content management system that allows you to create a website using drag and drop. You can easily manipulate the content and the layout of your pages. No coding skills are required.
860 | 861 | ## Python 862 | 863 | 864 | 865 | 866 | 867 | 868 | 869 | 870 | 871 | 872 | 893 | 894 | 895 | 896 | 917 | 918 | 919 | 920 | 938 | 939 | 940 | 941 | 959 | 960 | 961 | 962 | 980 | 981 | 982 | 983 | 1001 | 1002 | 1003 | 1004 | 1022 | 1023 | 1024 | 1025 | 1043 | 1044 | 1045 | 1046 | 1064 | 1065 | 1066 | 1067 |
NameDescription
873 |
874 | django CMS 875 |
876 |
877 | 878 | :octocat: 879 |    880 | 881 | :globe_with_meridians: 882 |    883 | 884 | :sunglasses: 885 | 886 |
887 |
888 | ★4,427 889 | | 2016/10/03 890 | 891 |
892 |
The easy-to-use and developer-friendly CMS.
897 |
898 | Wagtail CMS 899 |
900 |
901 | 902 | :octocat: 903 |    904 | 905 | :globe_with_meridians: 906 |    907 | 908 | :sunglasses: 909 | 910 |
911 |
912 | ★3,735 913 | | 2016/06/17 914 | 915 |
916 |
Wagtail is a content management system built on Django. It's focused on user experience, and offers precise control for designers and developers.
921 |
922 | Mezzanine 923 |
924 |
925 | 926 | :octocat: 927 |    928 | 929 | :globe_with_meridians: 930 |    931 |
932 |
933 | ★2,835 934 | | 2016/09/30 935 | 936 |
937 |
CMS framework for Django.
942 |
943 | Lektor 944 |
945 |
946 | 947 | :octocat: 948 |    949 | 950 | :globe_with_meridians: 951 |    952 |
953 |
954 | ★2,058 955 | | 2016/10/02 956 | 957 |
958 |
The lektor static file content management system
963 |
964 | Quokka CMS 965 |
966 |
967 | 968 | :octocat: 969 |    970 | 971 | :globe_with_meridians: 972 |    973 |
974 |
975 | ★1,397 976 | | 2016/09/30 977 | 978 |
979 |
Quokka is a flexible content management platform powered by Python, Flask and MongoDB.
984 |
985 | feinCMS 986 |
987 |
988 | 989 | :octocat: 990 |    991 | 992 | :globe_with_meridians: 993 |    994 |
995 |
996 | ★675 997 | | 2016/05/12 998 | 999 |
1000 |
A Django-based CMS with a focus on extensibility and concise code.
1005 |
1006 | Kotti 1007 |
1008 |
1009 | 1010 | :octocat: 1011 |    1012 | 1013 | :globe_with_meridians: 1014 |    1015 |
1016 |
1017 | ★301 1018 | | 2016/09/19 1019 | 1020 |
1021 |
Kotti is a high-level, Pythonic web application framework based on Pyramid and SQLAlchemy. It includes an extensible Content Management System called the Kotti CMS.
1026 |
1027 | Opps Project 1028 |
1029 |
1030 | 1031 | :octocat: 1032 |    1033 | 1034 | :globe_with_meridians: 1035 |    1036 |
1037 |
1038 | ★253 1039 | | 2016/06/01 1040 | 1041 |
1042 |
A Django-based CMS for the magazines, newspappers websites and portals with high-traffic.
1047 |
1048 | Plone CMS 1049 |
1050 |
1051 | 1052 | :octocat: 1053 |    1054 | 1055 | :globe_with_meridians: 1056 |    1057 |
1058 |
1059 | ★59 1060 | | 2016/10/02 1061 | 1062 |
1063 |
Plone is a user friendly Content Management System running on top of Python, Zope and the CMF.
1068 | 1069 | ## Ruby 1070 | 1071 | 1072 | 1073 | 1074 | 1075 | 1076 | 1077 | 1078 | 1079 | 1080 | 1101 | 1102 | 1103 | 1104 | 1122 | 1123 | 1124 | 1125 | 1140 | 1141 | 1142 | 1143 | 1161 | 1162 | 1163 | 1164 | 1182 | 1183 | 1184 | 1185 | 1203 | 1204 | 1205 | 1206 | 1224 | 1225 | 1226 | 1227 | 1245 | 1246 | 1247 | 1248 | 1263 | 1264 | 1265 | 1266 | 1284 | 1285 | 1286 | 1287 |
NameDescription
1081 |
1082 | Refinery CMS 1083 |
1084 |
1085 | 1086 | :octocat: 1087 |    1088 | 1089 | :globe_with_meridians: 1090 |    1091 | 1092 | :sunglasses: 1093 | 1094 |
1095 |
1096 | ★3,387 1097 | | 2016/09/23 1098 | 1099 |
1100 |
An extendable Ruby on Rails CMS that supports Rails 4.2+.
1105 |
1106 | LocomotiveCMS 1107 |
1108 |
1109 | 1110 | :octocat: 1111 |    1112 | 1113 | :globe_with_meridians: 1114 |    1115 |
1116 |
1117 | ★2,139 1118 | | 2016/09/30 1119 | 1120 |
1121 |
A platform to create, publish and edit sites.
1126 |
1127 | ComfortableMexicanSofa 1128 |
1129 |
1130 | 1131 | :octocat: 1132 |    1133 |
1134 |
1135 | ★2,031 1136 | | 2016/04/28 1137 | 1138 |
1139 |
ComfortableMexicanSofa is a powerful Rails 4 CMS Engine.
1144 |
1145 | Radiant CMS 1146 |
1147 |
1148 | 1149 | :octocat: 1150 |    1151 | 1152 | :globe_with_meridians: 1153 |    1154 |
1155 |
1156 | ★1,659 1157 | | 2016/04/04 1158 | 1159 |
1160 |
Radiant is a no-fluff, open source content management system designed for small teams.
1165 |
1166 | Publify 1167 |
1168 |
1169 | 1170 | :octocat: 1171 |    1172 | 1173 | :globe_with_meridians: 1174 |    1175 |
1176 |
1177 | ★1,635 1178 | | 2016/09/23 1179 | 1180 |
1181 |
A self hosted Web publishing platform on Rails.
1186 |
1187 | Spina 1188 |
1189 |
1190 | 1191 | :octocat: 1192 |    1193 | 1194 | :globe_with_meridians: 1195 |    1196 |
1197 |
1198 | ★1,028 1199 | | 2016/09/21 1200 | 1201 |
1202 |
GitHub - denkGroot/Spina: Spina CMS.
1207 |
1208 | Nesta 1209 |
1210 |
1211 | 1212 | :octocat: 1213 |    1214 | 1215 | :globe_with_meridians: 1216 |    1217 |
1218 |
1219 | ★899 1220 | | 2016/08/11 1221 | 1222 |
1223 |
A lightweight CMS, implemented in Sinatra.
1228 |
1229 | Camaleon CMS 1230 |
1231 |
1232 | 1233 | :octocat: 1234 |    1235 | 1236 | :globe_with_meridians: 1237 |    1238 |
1239 |
1240 | ★816 1241 | | 2016/09/29 1242 | 1243 |
1244 |
Camaleon CMS is a dynamic and advanced content management system based on Ruby on Rails 4.
1249 |
1250 | Storytime 1251 |
1252 |
1253 | 1254 | :octocat: 1255 |    1256 |
1257 |
1258 | ★669 1259 | | 2016/07/11 1260 | 1261 |
1262 |
Storytime is a Rails 4+ CMS and blogging engine, with a core focus on content. It is built and maintained by @cultivatelabs.
1267 |
1268 | Alchemy CMS 1269 |
1270 |
1271 | 1272 | :octocat: 1273 |    1274 | 1275 | :globe_with_meridians: 1276 |    1277 |
1278 |
1279 | ★429 1280 | | 2016/09/30 1281 | 1282 |
1283 |
Alchemy is a powerful, flexible and user centric Rails CMS.
1288 | 1289 | ## Closed Source 1290 | 1291 | 1292 | 1293 | 1294 | 1295 | 1296 | 1297 | 1298 | 1299 | 1300 | 1312 | 1313 | 1314 | 1315 | 1327 | 1328 | 1329 | 1330 | 1342 | 1343 | 1344 | 1345 | 1357 | 1358 | 1359 | 1360 | 1372 | 1373 | 1374 | 1375 | 1387 | 1388 | 1389 | 1390 | 1402 | 1403 | 1404 | 1405 | 1417 | 1418 | 1419 | 1420 | 1432 | 1433 | 1434 | 1435 | 1447 | 1448 | 1449 | 1450 | 1462 | 1463 | 1464 | 1465 | 1477 | 1478 | 1479 | 1480 | 1492 | 1493 | 1494 | 1495 | 1507 | 1508 | 1509 | 1510 | 1522 | 1523 | 1524 | 1525 | 1537 | 1538 | 1539 | 1540 |
NameDescription
1301 |
1302 | Blogger 1303 |
1304 |
1305 | 1306 | :globe_with_meridians: 1307 |    1308 |
1309 |
1310 |
1311 |
Publish your passions your way. Whether you’d like to share your knowledge, experiences or the latest news, create a unique and beautiful blog for free.
1316 |
1317 | Built.io Contentstack 1318 |
1319 |
1320 | 1321 | :globe_with_meridians: 1322 |    1323 |
1324 |
1325 |
1326 |
Headless CMS divides front-end from backend architecture to send content to multiple devices and platforms without creating content differently each time.
1331 |
1332 | Cloud CMS 1333 |
1334 |
1335 | 1336 | :globe_with_meridians: 1337 |    1338 |
1339 |
1340 |
1341 |
Shatter the limits imposed by your old, legacy CMS. Our headless, API-first Content Management System provides everything needed for scalable, multi-device publishing through SaaS and On-Premise delivery
1346 |
1347 | Contentful 1348 |
1349 |
1350 | 1351 | :globe_with_meridians: 1352 |    1353 |
1354 |
1355 |
1356 |
Contentful is an API-first CMS focused on the simplicity of development. Manage structured content in websites and apps.
1361 |
1362 | Cosmic JS 1363 |
1364 |
1365 | 1366 | :globe_with_meridians: 1367 |    1368 |
1369 |
1370 |
1371 |
Cosmic JS is a cloud-hosted content platform that offers a flexible and intuitive CMS API. Build websites and applications with more freedom and manage content easier.
1376 |
1377 | Craft CMS 1378 |
1379 |
1380 | 1381 | :globe_with_meridians: 1382 |    1383 |
1384 |
1385 |
1386 |
Craft CMS is a focused content management system for developers, designers, and web professionals that blends flexibility, power, and ease of use for clients.
1391 |
1392 | ExpressionEngine 1393 |
1394 |
1395 | 1396 | :globe_with_meridians: 1397 |    1398 |
1399 |
1400 |
1401 |
general purpose content management system written in object-oriented PHP and using MySQL for data storage.
1406 |
1407 | Jimdo 1408 |
1409 |
1410 | 1411 | :globe_with_meridians: 1412 |    1413 |
1414 |
1415 |
1416 |
Create a professional website, online store or blog in minutes with Jimdo's website builder. Choose one of our responsive templates, and get started!
1421 |
1422 | Medium 1423 |
1424 |
1425 | 1426 | :globe_with_meridians: 1427 |    1428 |
1429 |
1430 |
1431 |
Welcome to Medium, a place to read, write, and interact with the stories that matter most to you. Every day thousands of new voices share…
1436 |
1437 | Osmek 1438 |
1439 |
1440 | 1441 | :globe_with_meridians: 1442 |    1443 |
1444 |
1445 |
1446 |
Osmek is a new kind of CMS, built in the cloud so your content is available where and how you need it. It's a beautiful interface for creating content, and a powerful set of APIs for retrieving it.
1451 |
1452 | prismic.io 1453 |
1454 |
1455 | 1456 | :globe_with_meridians: 1457 |    1458 |
1459 |
1460 |
1461 |
A hosted, API based and developer friendly CMS backend. We take care of upgrades, scalability and security.
1466 |
1467 | Prose 1468 |
1469 |
1470 | 1471 | :globe_with_meridians: 1472 |    1473 |
1474 |
1475 |
1476 |
Prose is a content editor for GitHub designed for managing websites.
1481 |
1482 | Siteleaf 1483 |
1484 |
1485 | 1486 | :globe_with_meridians: 1487 |    1488 |
1489 |
1490 |
1491 |
Supports Jekyll, user collaboration, publishing to AWS S3, GitHub Pages, FTP, and more.
1496 |
1497 | SquareSpace 1498 |
1499 |
1500 | 1501 | :globe_with_meridians: 1502 |    1503 |
1504 |
1505 |
1506 |
Squarespace is a SaaS-based content management system-integrated website builder, blogging platform and hosting service.
1511 |
1512 | Weebly 1513 |
1514 |
1515 | 1516 | :globe_with_meridians: 1517 |    1518 |
1519 |
1520 |
1521 |
Weebly makes it surprisingly easy to create a high-quality website, blog or online store. Over 30 million people use Weebly to bring their unique ideas to life.
1526 |
1527 | Wix 1528 |
1529 |
1530 | 1531 | :globe_with_meridians: 1532 |    1533 |
1534 |
1535 |
1536 |
Create a free website with Wix.com. Customize with Wix' free website builder, no coding skills needed. Choose a design, begin customizing and be online today!
1541 | 1542 | 1543 | ## License 1544 | 1545 | MIT, see [LICENSE](/LICENSE) for more details. 1546 | 1547 | [awesome-image]: https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg 1548 | [awesome-repo]: https://github.com/sindresorhus/awesome 1549 | --------------------------------------------------------------------------------