A modern, web-based markdown editor with Obsidian-like features
.md is a powerful, self-hosted markdown editor built with modern web technologies. It brings Obsidian and Logseq-inspired features to the browser with bidirectional linking, daily notes, and a clean, keyboard-first interface.
- Rich Markdown Editing - CodeMirror 6 editor with live preview
- Bidirectional WikiLinks -
[[note-name]]syntax with backlinks panel - Daily Notes - Logseq-style journaling with keyboard shortcuts
- Automatic Tagging - Extract and search by
#hashtags - Folder Organization - Hierarchical folder structure
- Tabbed Interface - Multiple notes open simultaneously
- Multiple Themes - Dark, Light, Solarized, High Contrast, and Ocean themes
- Keyboard-First - Comprehensive keyboard shortcuts
- File Tree Navigation - Virtual scrolling for 1000+ notes
- Soft Delete - Trash system with restore functionality
- Advanced Search - Full-text search with tag filters
- Import/Export - Drag-and-drop file import, folder preservation
- Auto-Sync - Background sync with configurable intervals
- Mobile Responsive - Touch-optimized interface
- Calendar picker with purple theme
- Sidebar browser for all daily notes
- Quick navigation between days
- Template support with variables (
{{date}},{{time}}, etc.) - Fully configurable via settings
# Clone the repository
git clone https://github.com/Cache8063/md.git
cd md
# Copy environment file
cp .env.example .env
# Start with Docker Compose
./install.sh docker
# Access at http://localhost:3000# Clone the repository
git clone https://github.com/Cache8063/md.git
cd md
# Copy environment file
cp .env.example .env
# Start with Podman
./install.sh podman
# Access at http://localhost:3000Prerequisites:
- Node.js 20+
- PostgreSQL 16+
# Clone the repository
git clone https://github.com/Cache8063/md.git
cd md
# Copy and configure environment
cp .env.example .env
# Edit .env with your database credentials
# Run installation
./install.sh bare-metal
# Start development server
npm run dev
# Or build for production
npm run build
npm run preview- Installation Guide
- User Guide (coming soon)
- API Documentation (coming soon)
- Architecture Overview
- Daily Notes Feature
Cmd/Ctrl+N- New noteCmd/Ctrl+K- Search notesCmd/Ctrl+S- Save noteCmd/Ctrl+W- Close tab
Cmd/Ctrl+T- Open today's daily noteCmd/Ctrl+Shift+D- Toggle daily notes browserCmd/Ctrl+Shift+←- Previous dayCmd/Ctrl+Shift+→- Next day
- Frontend: Nuxt 3, Vue 3, TypeScript, Tailwind CSS
- Editor: CodeMirror 6
- Backend: Nuxt/Nitro server
- Database: PostgreSQL, Prisma ORM
- Markdown: markdown-it
- Containerization: Docker, Podman
md/
├── components/ # Vue components
├── composables/ # State management (useNotes, useFolders, etc.)
├── pages/ # Nuxt pages (routing)
├── server/ # Backend API
│ ├── api/ # REST API endpoints
│ └── utils/ # Server utilities
├── prisma/ # Database schema and migrations
└── types/ # TypeScript types
# Production deployment
docker-compose up -d
# View logs
docker-compose logs -f
# Stop services
docker-compose down# Database
DATABASE_URL=postgresql://user:password@localhost:5432/md
# Application
NODE_ENV=production
PORT=3000See .env.example for all options.
We welcome contributions! Please see CONTRIBUTING.md for guidelines.
- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'feat: add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
- Command Palette (Cmd+P)
- Graph View
- Templates & Automation
- Advanced Search & Query
- Export to PDF/HTML
- Mobile Apps (iOS/Android)
- Collaborative Editing
- Plugin System
See next_session.md for detailed roadmap.
- Git hook error in development (non-blocking)
- TypeScript type checking disabled in dev mode (run
npm run typecheckmanually)
This project is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0) - see the LICENSE file for details.
- You can use, modify, and distribute this software freely
- If you run a modified version on a server and let users interact with it, you must share your changes
- This prevents companies from building closed-source services using this code without contributing back
- For commercial licensing options, please contact the maintainers
- Inspired by Obsidian and Logseq
- Built with Nuxt 3
- Editing powered by CodeMirror 6
- UI components styled with Tailwind CSS
- Issues: GitHub Issues
- Discussions: GitHub Discussions
- Documentation: docs
If you find this project useful, please consider giving it a star!
Made with by the .md community