https://github.com/vnykmshr/markgo
High-performance Go blog engine with file-based content. Runs as dynamic server or exports to static HTML. 30MB footprint, sub-second startup.
https://github.com/vnykmshr/markgo
blog-engine cms docker golang markdown performance rest-api seo-optimization static-site-generator technical-blog
Last synced: 5 months ago
JSON representation
High-performance Go blog engine with file-based content. Runs as dynamic server or exports to static HTML. 30MB footprint, sub-second startup.
- Host: GitHub
- URL: https://github.com/vnykmshr/markgo
- Owner: vnykmshr
- License: mit
- Created: 2025-09-09T04:03:56.000Z (10 months ago)
- Default Branch: main
- Last Pushed: 2026-02-04T13:39:45.000Z (5 months ago)
- Last Synced: 2026-02-07T14:11:38.574Z (5 months ago)
- Topics: blog-engine, cms, docker, golang, markdown, performance, rest-api, seo-optimization, static-site-generator, technical-blog
- Language: Go
- Homepage: https://vnykmshr.github.io/markgo/
- Size: 1.27 MB
- Stars: 1
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: .github/CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: .github/CODE_OF_CONDUCT.md
- Security: .github/SECURITY.md
Awesome Lists containing this project
README
# MarkGo
[](https://github.com/vnykmshr/markgo/actions/workflows/ci.yml)
[](https://golang.org)
[](LICENSE)
A blog engine where you write first and categorize never.
Type two sentences without a title and it becomes a thought. Paste a URL with commentary and it becomes a link. Write something long with a title and it becomes an article. Three content types, inferred automatically from what you write. No database. No build step.
## Quick Start
```bash
git clone https://github.com/vnykmshr/markgo && cd markgo
make build
./build/markgo init --quick
./build/markgo serve
# Visit http://localhost:3000
```
Or download a release from [GitHub Releases](https://github.com/vnykmshr/markgo/releases).
## What You Get
**Write from anywhere** — CLI for drafting in your editor, web compose form for publishing from your phone. Quick capture: tap the FAB, type a thought, hit Publish. Under 5 seconds.
**SPA navigation** — Instant page transitions. The router fetches HTML and swaps content — no full page reloads, no client-side rendering framework.
**Works offline** — Installable PWA with Service Worker. Pages cached for offline reading. Compose queue syncs when you're back online.
**Mobile-native feel** — Bottom navigation, full-screen search overlay, visual viewport handling for iOS keyboards. CSS starts at 320px and works up.
**Your files, your control** — Articles are markdown files with YAML frontmatter. Edit in vim, version with git, back up however you like. The compose form writes files to disk — it's a convenience layer, not a lock-in.
**Zero dependencies** — Single Go binary with embedded web assets. No Node.js, no PHP, no database. `markgo init` creates only your content directory and config.
## Usage
```bash
markgo serve # Start the web server
markgo init [--quick] # Initialize a new blog
markgo new [--title "..." --tags "..."] # Create an article
markgo new --type thought # Quick thought (no title needed)
markgo new --type link # Share a link
```
## Configuration
Copy `.env.example` to `.env`:
```bash
BLOG_TITLE="Your Blog Title"
BLOG_AUTHOR="Your Name"
BASE_URL="https://yourdomain.com"
```
Admin credentials enable the compose form, admin panel, and login:
```bash
ADMIN_USERNAME=you
ADMIN_PASSWORD=something-strong
```
See [Configuration Guide](docs/configuration.md) for all options.
## Deploy
**Docker:**
```bash
docker compose up -d
```
See [Deployment Guide](docs/deployment.md) for systemd, reverse proxy, and production setup.
## Development
```bash
make dev # Dev server with hot reload
make build # Build binary
make lint # golangci-lint
make test # Run tests
make test-race # Race detector
make coverage # Coverage report
```
## Documentation
- [Getting Started](docs/GETTING-STARTED.md) — Install, first post, and features overview
- [Configuration](docs/configuration.md) — All environment variables
- [Architecture](docs/architecture.md) — How the system works
- [API](docs/API.md) — Every HTTP endpoint
- [Deployment](docs/deployment.md) — Docker, systemd, reverse proxy
- [Design Language](docs/design.md) — The principles behind every decision
## License
MIT License — see [LICENSE](LICENSE).