Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

pageel/pageel-cms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

28 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Pageel CMS

Version: 1.1.0-beta.1 | Updated: February 2026

A powerful, client-side Content Management System (CMS) for managing Markdown/MDX content and images directly on GitHub, Gitea, or Gogs repositories. Built with React 19 and TypeScript, featuring a modern Notion-inspired UI.

Git-native CMS for Astro & Next.js

Run entirely in your browser. No database. No backend.

License Version Status



πŸ“Έ Screenshots

Pageel Dashboard Preview


✨ Key Features

Feature Description
πŸ“š Multi-Collection Manage multiple content types (Blog, Docs, Projects) in one workspace
🏷️ Typed Templates Define schema with String, Date, Boolean, Number, Array, Object
πŸ” Smart Filtering Auto-generated filter UI based on your template types
πŸ” No Backend Runs entirely in browser, communicates directly with Git APIs
πŸ”’ Secure PAT encrypted with AES-GCM (Web Crypto API), stored in sessionStorage
🌍 Multi-Platform Supports GitHub, Gitea, and Gogs (self-hosted)
🌐 i18n Ready English and Vietnamese support
⚑ Optimistic Locking SHA-check prevents overwriting concurrent changes

🧭 Application Modules

1. πŸ“ Manage Posts (PostList)

The central hub for content management.

  • View Modes: Switch between dense data table or visual card grid.
  • Advanced Filtering: Filter by text, date range, tags, booleans, and numbers.
  • Smart Sort: Sort by any field defined in your template.
  • Quick Actions: Edit frontmatter inline, split-pane Markdown editor, upload/replace files.

2. πŸ–ΌοΈ Manage Images (ImageList)

Dedicated asset library for managing media files.

  • Gallery View: Visual grid with lazy-loaded thumbnails.
  • Bulk Upload: Drag & drop multiple images.
  • Auto Compression: Client-side optimization (configurable max size/width).
  • Public URL: One-click copy for absolute or relative paths.

3. πŸ“‹ Post Template (TemplateGenerator)

Define and validate content structure.

  • Visual Editor: Define fields and types via dropdown UI.
  • Supported Types:
    • String (Text input)
    • Date (Date picker)
    • Array (Multi-select tags)
    • Boolean (Toggle switch)
    • Number (Numeric input)
    • Object (JSON editor)
  • Schema Generation: Auto-generate schema from existing posts.

πŸš€ Getting Started

Prerequisites

  • Modern browser (Chrome 80+, Firefox 75+, Safari 13.1+)
  • Node.js 20.19+ (for local development)
  • Git repository on GitHub, Gitea, or Gogs

1. Clone & Install

git clone https://github.com/pageel/pageel-cms.git
cd pageel-cms/core
npm install

2. Run Development Server

npm run dev

Open http://localhost:3000 in your browser.

3. Generate Access Token

Provider Permissions Required
GitHub Contents (Read and Write)
Gitea/Gogs Repo (Read and Write)

4. Connect Repository

  1. Select your Git service.
  2. Enter repository (e.g., username/repo).
  3. Paste your access token.
  4. (Self-hosted) Enter instance URL.

πŸ—οΈ Technical Architecture

Tech Stack

React TypeScript Vite Tailwind CSS

Core Design Patterns

1. Adapter Pattern (IGitService) Abstracts Git operations for GitHub (GithubAdapter), Gitea (GiteaAdapter), and Gogs (GogsAdapter).

2. Client-Side Encryption

  • Personal Access Tokens (PAT) are encrypted using AES-GCM.
  • Enrollment key is generated via crypto.getRandomValues().
  • Nothing is ever sent to our servers.

3. State Management

  • Zustand for global app state.
  • IndexedDB / localStorage for settings and cache.
  • URL Query Params for deep linking state.

🌐 Ecosystem

Product Type Purpose
Pageel CMS OSS (MIT) Git-native CMS for content & media
Pageel Workhub Commercial Team workspace: workflow, review, permissions

Pageel CMS focuses on content. For team collaboration features, see Pageel Workhub.


🀝 Contributing

Contributions are welcome! Please see our Contributing Guide for details.

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

πŸ“„ License

This project is licensed under the MIT License. See the LICENSES.md file for details.


Made with ❄️ by Pageel

About

A Git-based CMS for Astro & Next.js - Manage Markdown content directly on GitHub repositories.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages