Concept
A CMS where content is stored as Markdown files in a Git repository. Editors get a WYSIWYG interface, while developers maintain full control via Git.
Why Markdown + Git?
- Version Control: Every change is tracked with full history
- Collaboration: Built-in merge conflict resolution
- Portability: Content isn't locked in a database
- Developer-Friendly: Easy to migrate, backup, and script
Features
Visual Editor
- Split-pane editor with live preview
- Drag-and-drop image uploads
- Code syntax highlighting
- Keyboard shortcuts for formatting
Git Integration
const simpleGit = require('simple-git');
const git = simpleGit('/content');
async function savePost(filename, content) {
await fs.writeFile(`/content/${filename}`, content);
await git.add(filename);
await git.commit(`Update ${filename}`);
await git.push();
}
Tech Stack
- Frontend: Vue 3 with Composition API
- Editor: ProseMirror for rich text editing
- Backend: Express.js with simple-git
- Deployment: Auto-deploy via webhooks to Netlify
Use Cases
- Documentation Sites: Technical docs with version control
- Blogs: Simple publishing workflow
- Knowledge Bases: Team wikis with Git backing