MarkEdit#
A markdown editor for managing blog posts across multiple storage providers (GitHub, Google Drive, Dropbox). Built with Go and Astro/React, featuring WYSIWYG editing powered by TipTap.
Features#
- Multi-source Support: Connect to GitHub repositories (Google Drive and Dropbox coming later)
- WYSIWYG Editing: TipTap-based markdown editor with live preview
- Git Workflow: Automatic branch management, commits, and pull requests
- Self-hosted: Run anywhere with Docker
- Lightweight: Single binary deployment
Quick Start#
Prerequisites#
- Go 1.21+
- Node.js 18+
- Docker (optional, for containerized deployment)
- GitHub OAuth App credentials
Development Setup#
-
Create GitHub OAuth App
- Go to https://github.com/settings/developers
- Create new OAuth App
- Set callback URL:
http://localhost:8080/api/auth/github/callback - Save Client ID and Client Secret
-
Configure Environment
cp .env.example .env # Edit .env with your GitHub OAuth credentials -
Run Backend
cd backend go mod download go run cmd/server/main.go -
Run Frontend
cd frontend npm install npm run dev -
Access Application
- Open http://localhost:3000
- Login with GitHub
- Start editing!
Docker Deployment#
docker-compose up --build
Access at http://localhost:3000
Architecture#
- Backend: Go with Chi router, GitHub OAuth, go-git for version control
- Frontend: Astro (client-only) + React + TipTap editor
- Database: SQLite for session and state management
- Deployment: Single Docker container
Project Status#
Currently in initial development phase. See IMPLEMENTATION_PLAN.md for detailed roadmap.
MVP Scope#
- ✅ GitHub authentication
- ✅ Repository and file browsing
- ✅ Markdown editing with TipTap
- ✅ Automatic branch management
- ✅ Commit and PR creation
- ❌ Image uploads (links only initially)
- ❌ Search, version history, collaborative editing (post-MVP)
Documentation#
- Implementation Plan - Detailed technical specification
- Architecture - System design
- API Documentation - REST API reference
Contributing#
This project will be open-sourced once MVP is complete. Stay tuned!
License#
TBD