mishka-group/mishka_cms
mishka-group/mishka_cms has 28 GitHub stars and 3 forks. Star changes are not measured yet. Last checked 2026-11-11 21:09 UTC. Last push 2026-11-11.
Comment ces chiffres sont mesurés
Open source real-time, multi-tenant CMS for Elixir and Phoenix LiveView. One install runs many websites, with a visual page builder and an AI assistant you connect to your own model.
Progression mesurée des étoiles
- in 24h
- Mise à jour retardée
- in 7 days
- Mise à jour retardée
- in 15 days
- Mise à jour retardée
- in 1 month
- Mise à jour retardée
Variations nettes sur des périodes qui se chevauchent, pas des totaux quotidiens. Les mesures absentes restent vides. Les étoiles indiquent l’intérêt, pas la qualité.
README.md
OriginalMishka CMS
An open source real-time CMS for Elixir and Phoenix LiveView. One install runs many websites.
Website · Documentation · Admin preview · Discord · Hire us
📖 What is Mishka CMS?
Mishka CMS is an open source real-time CMS built on Elixir, Phoenix LiveView and the Ash framework. You build pages in the browser, publish them without a redeploy, and run many websites from one install.
This repository is the application that runs it: the Phoenix endpoint, the router, the release scripts and the Dockerfile. The engine and the extensions are packages it loads from Hex.
✨ Why Mishka CMS
- 🌐 Many websites, one install: each brand, client or market gets its own site with its own domain, languages, users and content. One master account runs them all.
- 🎨 Visual page builder: place sections and components on a live canvas, edit text in place and check every screen size. The code behind the page is one click away.
- ⚡ Publish without a redeploy: pages, layouts and components live in the database and compile while the app runs. Visitors with the page open get the new styles at once.
- 📝 Drafts and versions: your work saves to a draft, teammates review it from a link, and every earlier version can be restored.
- 🔍 SEO with no setup: every page ships with its title, description, canonical link, social preview and structured data, and pages without an image get a share card drawn for them. Each site has its own sitemap and robots.txt.
- 🌍 Every language you publish in: one site serves several languages, with addresses like
/fa/blog, translated pages and interface words, and dates and numbers in each language's own format. - 🔐 Secure sign-in: passwords or emailed sign-in links, two-step sign-in with an authenticator app, rate limits, and a captcha from Cloudflare Turnstile, Google reCAPTCHA or hCaptcha.
- 🛡️ Permissions you can read: names like
admin:dashboard:blog:post, with wildcards, kept apart for the dashboard and the API. Lock a page or a post to members. - 🔌 Headless, coupled or both: a site serves its own pages, a JSON:API for your frontend, or both. The API comes with an OpenAPI spec and Swagger UI.
- 🧩 Plugins instead of forks: every action fires a named event such as
blog:comment:after_create, and your plugin hooks in by priority. - 🧱 Components and UI kits: install a kit of ready components, write your own, and reuse snippets and design tokens across a site.
- 🧰 Everything a site needs: a media library, forms, redirects, email delivery and an activity log of every change.
- 🤖 Bring your own AI model: connect a model to the editor's Assistant with one Elixir module, and undo its edits like your own.
🚀 Get started
Follow Install Mishka CMS and sign in, then build your first site and start a blog. In short, with Elixir 1.20 or newer, PostgreSQL and bun:
git clone https://github.com/mishka-group/mishka_cms.git && cd mishka_cms
mix deps.get && mix assets.setup
mix ecto.create && mix oban.install --yes
mix ash.codegen cms_with_extensions && mix ash.migrate
mix assets.build && mix phx.server
Open http://localhost:4000, and the install wizard creates the master admin and the first site. mix run priv/repo/dev_seeds.exs fills a development database with sample sites and content. Without a local Elixir or PostgreSQL, use the development container in examples/docker.
🧪 Try the demo image
docker pull ghcr.io/mishka-group/mishka_cms-demo:0.0.2
demo-docker-compose.yml starts it with PostgreSQL 18 and explains the secrets. Open /install?token=... with your MISHKA_SETUP_TOKEN. The demo is for trying only: its migrations belong to one release, so a newer demo needs a fresh database.
🚢 Deploy
A real install is your own copy of this repository, built with its Dockerfile.
- Generate the migrations for the extensions you load and commit them: run
mix oban.install --yesandmix ash.codegen first_install, then commitpriv/repo/migrationsandpriv/resource_snapshots. The build fails without them. - Run the image with
DATABASE_URL,SECRET_KEY_BASE,TOKEN_SIGNING_SECRETandSESSION_SIGNING_SALT, and withMISHKA_SETUP_TOKENfor the first run. - Mount a volume at
MISHKA_DATA_DIR(/app/mishka_data), and run/app/bin/migratebefore/app/bin/server.
To upgrade, bump the Mishka packages in mix.exs, run mix deps.update for them and mix ash.codegen upgrade_<version>, commit what it wrote and deploy. mix dev_reset regenerates every migration, so keep it to throwaway development databases.
🧩 The Mishka CMS family
- Mishka CMS Core, the Elixir CMS engine: sites, pages, permissions, the runtime compiler and the JSON:API.
- Mishka CMS Builder, the visual page editor: the live canvas, drafts, history and review notes.
- Mishka Blog, the blog extension: posts, categories, tags, authors and moderated comments.
- Mishka Document, the documentation extension: versioned docs, proposed changes as drafts, and issue tracking.
- Mishka Gervaz, the admin DSL for Ash: the toolkit the admin screens are built with.
- Mishka Installer, plugins and events for Elixir: the event system every plugin hooks into.
- Mishka Chelekom, Phoenix LiveView components: the UI kits the install wizard offers.
- Sign-in providers: Google, GitHub, Slack and Discord.
📚 Documentation
- Mishka CMS documentation: tutorials, how-to guides, reference and concepts
- The Blog extension docs and the Documentation extension docs
- Mishka Installer documentation, for plugins and events
- The Mishka blog, for releases and articles
💬 Community and support
- Chat with the team and other users on Discord.
- Report a bug or ask a question in GitHub issues.
- For a custom extension, a migration from another CMS or priority support, hire the Mishka team.
💖 Support the project
Mishka CMS is free and open source. You can support its development through GitHub Sponsors or Buy Me a Coffee.
📜 License
Apache License 2.0. See LICENSE.
Explorer des projets similaires
freeCodeCamp/freeCodeCamp
La base de code open source et le cursus de freeCodeCamp.org. Apprenez gratuitement les mathématiques, la programmation et l'informatique.
459,044 étoilesdonnemartin/system-design-primer
Apprenez à concevoir des systèmes à grande échelle et préparez-vous à l’entretien de conception de systèmes. Comprend des cartes mémoire Anki.
377,704 étoilesreact/react
La bibliothèque pour les interfaces utilisateur web et natives.
252,546 étoilesvuejs/vue
Voici le dépôt de Vue 2. Pour Vue 3, rendez-vous sur https://github.com/vuejs/core
212,527 étoiles