Skip to content
/ markgo Public

Go blog engine — SPA navigation, PWA, offline compose, reactive auth, mobile-native UX, single binary

License

Notifications You must be signed in to change notification settings

1mb-dev/markgo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

400 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MarkGo

CI Go Version 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

git clone https://github.com/1mb-dev/markgo && cd markgo
make build

./build/markgo init --quick
./build/markgo serve
# Visit http://localhost:3000

Or download a release from GitHub 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

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:

BLOG_TITLE="Your Blog Title"
BLOG_AUTHOR="Your Name"
BASE_URL="https://yourdomain.com"

Admin credentials enable the compose form, admin panel, and login:

ADMIN_USERNAME=you
ADMIN_PASSWORD=something-strong

See Configuration Guide for all options.

Deploy

Docker:

docker compose up -d

See Deployment Guide for systemd, reverse proxy, and production setup.

Development

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

License

MIT License — see LICENSE.

About

Go blog engine — SPA navigation, PWA, offline compose, reactive auth, mobile-native UX, single binary

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

Packages

No packages published

Contributors 2

  •  
  •