Skip to content

A universal Git-based Content Management System that turns any GitHub repository into a dynamic CMS

License

Notifications You must be signed in to change notification settings

BestPlayerMMIII/GitCMS

Repository files navigation

GitCMS

Universal GitHub-Based Content Management System

npm version License: MIT TypeScript

Transform your GitHub repository into a powerful content management system.


🌟 What is GitCMS?

GitCMS is a universal content management system that uses GitHub as its backend. It provides a beautiful web interface for managing content while storing everything as files in your GitHub repository - no database required.

Key Features

  • πŸš€ No Database Required - All content stored in GitHub
  • 🎨 Universal Admin Panel - One hosted interface for all users
  • πŸ“ Visual Content Editor - Rich text editing with TipTap
  • πŸ” GitHub OAuth - Secure authentication
  • πŸ–ΌοΈ Media Management - Upload and organize images, videos, documents
  • πŸ“¦ TypeScript SDK - Full type-safety for developers
  • ⚑ Framework Agnostic - Works with React, Vue, Next.js, etc.
  • 🌐 Public & Private Repos - Supports both access modes

🎯 Who Is This For?

Content Creators

Use the Admin Panel to manage content visually without touching code.

Perfect for:

  • Bloggers managing posts
  • Teams managing documentation
  • Developers managing app configuration
  • Anyone preferring visual interfaces

Get Started: Admin Panel Guide | Live Demo

Developers

Use the @git-cms/client SDK to fetch content from GitHub in your projects.

Perfect for:

  • Next.js websites
  • React/Vue applications
  • Mobile apps
  • Static site generators
  • Any project needing content

Get Started: Client SDK Guide | NPM Package


πŸš€ Quick Start

For Content Creators

  1. Visit the Admin Panel
  2. Sign in with GitHub
  3. Connect your repository
  4. Define content schemas
  5. Start creating content!

πŸ“– Full Admin Guide β†’

For Developers

Install the SDK:

npm install @git-cms/client

Fetch content in your project:

import { GitCMS } from '@git-cms/client';

const cms = new GitCMS({
  repository: 'username/my-blog',
});

// Fetch blog posts
const posts = await cms
  .from('posts')
  .where('metadata.status', '==', 'published')
  .orderBy('metadata.publishedAt', 'desc')
  .get();

// Display content
posts.forEach(post => {
  console.log(post.title, post.content);
});

πŸ“– Full SDK Guide β†’


πŸ“¦ Packages

TypeScript SDK for developers to integrate GitCMS into their projects.

npm install @git-cms/client

πŸ“– Documentation β†’

Core utilities and types. Internal dependency.

Universal admin panel for content management. Hosted service, not published to NPM.

πŸ”— Live Admin Panel β†’


πŸ—οΈ How It Works

Admin Panel (Web UI)
        ↓ commits via GitHub API
GitHub Repository (your content)
        ↑ reads via GitHub API
Client SDK (in your app)

GitCMS uses GitHub as the storage backend. The admin panel writes content to your repository, and the client SDK reads it back. Everything is version-controlled and backed by GitHub's infrastructure.


πŸ’‘ Use Cases

Blog Management

const posts = await cms
  .from('posts')
  .where('metadata.status', '==', 'published')
  .orderBy('metadata.publishedAt', 'desc')
  .limit(10)
  .get();

Portfolio Projects

const projects = await cms.from('projects').where('featured', true).get();

E-commerce Catalog

const products = await cms
  .from('products')
  .where('category', '==', 'electronics')
  .where('inStock', true)
  .get();

Documentation Sites

const docs = await cms.from('docs').where('version', '==', 'v1.0').get();

πŸ“š Documentation

Comprehensive documentation is available in the docs/ directory:

Full Documentation available here: GitCMS Docs


🀝 Contributing

Contributions are welcome! Please follow these steps:

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

Development Setup

# Clone repository
git clone https://github.com/BestPlayerMMIII/GitCMS.git
cd GitCMS

# Install dependencies
npm install

# Build all packages
npm run build

# Run development servers
npm run dev

πŸ“„ License

MIT License - see LICENSE file for details.

Copyright (c) 2025 GitCMS


πŸ”— Links


🌟 Features

βœ… Current Features

  • GitHub OAuth authentication
  • Repository connection
  • Visual schema designer
  • Rich text editor (TipTap)
  • Media upload and management
  • TypeScript SDK
  • Public and private repo support
  • Nested field access
  • Progressive media loading

Work In Progress

  • Virtual Folders for Media management (like File Explorer!)

πŸ”„ Roadmap

  • Full-text search
  • Multi-user collaboration
  • Content versioning UI
  • Branch-based workflows
  • GraphQL API
  • Webhooks integration
  • Real-time collaboration

πŸ’¬ Support


πŸ™ Built With


Made with ❀️ by Manuel Maiuolo

Welcome to GitCMS! πŸš€

About

A universal Git-based Content Management System that turns any GitHub repository into a dynamic CMS

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages