A self-hosted blog you publish from Git.
Write articles in Markdown with your preferred editor, keep them in Git, and
publish them on your own domain. Maincopy provides the website and a private
administration screen for reviewing, publishing, and scheduling your writing.
You can also manage the site through the maincopy CLI or a scoped agent account.
A Git push prepares an update for review. You choose when the reviewed article goes live, immediately or at a scheduled time. Readers get article pages, an archive, RSS, and a sitemap. Code blocks, Mermaid diagrams, images, and optional Lightning tips are supported.
Maincopy runs one site per instance. It uses SQLite for accounts and publication state, with optional encrypted backups to Backblaze B2. The NixOS module supplies the server, HTTPS gateway, and background services.
Status: preparing the first release. Email announcements through SES include double opt-in and unsubscribe controls, but remain disabled until deployment acceptance. See what remains for v1.
On Linux with Nix installed:
git clone https://github.com/tee8z/maincopy.git
cd maincopy
nix develop -c just startThe launcher builds Maincopy, starts an example site, and installs a local
certificate authority in supported browser stores. Keep the terminal open.
On first startup, save the generated owner password shown there.
Wait for Maincopy development environment is ready before signing in.
- Open the administration screen and sign in as
owner. - Select Review exact preview for Hello, Maincopy, then open the preview.
- Continue to publication confirmation, accept the reviewed preview, and approve the revision.
- Open the published article.
Press Ctrl+C to stop. Running just start again preserves your local state.
The local guide covers CLI login, agents, certificate
trust, troubleshooting, and resetting the example.
Create a content repository with publication.toml for your site settings and
Markdown articles under posts/. Each article has TOML frontmatter for its stable
ID, title, slug, date, and description. Follow the content guide
and the included example.
Deploy Maincopy, connect the content repository, and use the same review-and-publish workflow. Managed Git mode fetches your selected branch with a read-only deploy key. You can also supply a local checkout maintained by your own tools.
| Task | Guide |
|---|---|
| Set up the home server and HTTPS | Deployment |
| Connect a Git repository | Managed Git |
| Configure email announcements | |
| Back up or restore the site | Backup and restore |
| Monitor the running service | Observability |
| Install or publish a versioned release | Releases |
Keep administration on a private network or VPN. The deployment guide configures separate public, administration, and metrics access.
Maincopy has no software subscription fee. These public price examples are in USD, checked on 2026-09-07. You maintain the server, updates, and recovery.
| Component | Example cost | When you need it |
|---|---|---|
| Application host | No additional hosting bill on an existing server | Required; hardware, electricity, internet, and any new hosting are extra. |
| Domain | Porkbun .com: $11.08/year, including renewal |
Omit the purchase if you already have a domain or subdomain. |
| Public gateway (optional) | DigitalOcean: $4/month, or $48/year | A small proxy for a private host; omit when hosting directly on a public server. This quote covers only the gateway. |
| Email announcements (optional) | SES à-la-carte: $0.10/1,000 recipient messages; $2.40/year for one monthly send to 2,000 subscribers | Omit for a website and RSS only. Confirmation messages, message data, and feedback processing can add charges. |
| Encrypted off-site backups (optional) | B2: first 10 GB free, then $6.95/TB/month | Count all retained versions against storage. Download overages cost extra; use another recovery arrangement if omitted. |
That example totals $13.48/year for a domain and monthly announcements on an existing publicly reachable server, or $61.48/year with the optional gateway. It assumes backups stay within B2's free allowance and excludes taxes and the additional costs above. Email feedback uses SNS/SQS free allowances; account usage, including queue polling, counts toward those limits. Select SES à-la-carte pricing explicitly; see the email setup guide.
For a managed alternative, Ghost(Pro) starts at $216/year for Starter or $348/year for Publisher, billed annually at 1,000 members. beehiiv Launch is free up to 2,500 subscribers, with a hosted website and unlimited sends, but retains platform branding. These services handle hosting; features, audience limits, and domain costs differ.
Maincopy is written in Rust. maincopyd runs the server; maincopy is its
administration client. Start with the design and
quality rules, then check the implementation plan.
nix develop -c cargo test --locked --workspace --all-targets --all-features
nix flake check --print-build-logs
nix build --print-build-logsThe flake supports Linux x86_64 and ARM64. Release preparation and installation instructions are in the release guide.
