⚡
SelfHostStackOpen-Source Directory

Why Migrate Away from Substack & Medium?

Third-party publishing platforms control your monetization, can de-platform your publication, and charge ongoing percentage fees on your recurring revenue. Self-hosting your publication gives you 0% platform take rates (you only pay direct Stripe fees), custom domain SEO, unlimited custom themes, and full control over your subscriber database.

Top 2 Recommended Open-Source Replacements

Tested, self-contained, and production-ready. Click any tool to inspect verified docker-compose configurations, hardware sizing, and deployment guides.

Ghost

MIT⭐ 47.5k+

The world's leading professional open-source publishing and newsletter platform with native paid memberships.

Min RAM1 GB
Min CPU1 vCPU
GitHub Repo ↗

✅ Advantages

  • 0% platform take rate — keep 100% of your paid membership revenue
  • World-class writing and editing experience designed for modern publishers
  • Built-in email newsletter broadcast engine

⚠️ Trade-offs / Limitations

  • Requires transactional email service (Mailgun or Amazon SES) for newsletter sending
  • Requires MySQL 8+ database for production deployments

Core Features

▸Modern dynamic card editor with rich embeds and responsive typography
▸Native membership tiers, premium content paywalls, and Stripe Connect
▸Built-in email newsletter delivery via Amazon SES or Mailgun
▸Industry-leading SEO performance, clean schema markup, and AMP support
▸Fast Node.js and MySQL architecture with instant search
📄 docker-compose.yml
Production Ready
version: '3.8'
services:
  ghost:
    image: ghost:5-alpine
    container_name: ghost-app
    restart: always
    ports:
      - "2368:2368"
    environment:
      - url=https://newsletter.yourdomain.com
      - database__client=mysql
      - database__connection__host=db
      - database__connection__user=ghost
      - database__connection__password=ghost_secure_password
      - database__connection__database=ghost_prod
      - mail__transport=SMTP
      - mail__options__host=email-smtp.us-east-1.amazonaws.com
      - mail__options__port=587
      - mail__options__auth__user=YOUR_SES_USER
      - mail__options__auth__pass=YOUR_SES_PASSWORD
    volumes:
      - ghost-content:/var/lib/ghost/content
    depends_on:
      - db
  db:
    image: mysql:8.0
    container_name: ghost-db
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=mysql_root_pass
      - MYSQL_DATABASE=ghost_prod
      - MYSQL_USER=ghost
      - MYSQL_PASSWORD=ghost_secure_password
    volumes:
      - ghost-dbdata:/var/lib/mysql
volumes:
  ghost-content:
  ghost-dbdata:

🚀 5-Minute Deployment Guide

  1. 1Deploy a 2GB+ RAM VPS on Hetzner or DigitalOcean.
  2. 2Save docker-compose.yml with Ghost + MySQL 8.
  3. 3Start Ghost with `docker compose up -d`.
  4. 4Open `https://yourdomain.com/ghost` to complete admin onboarding.
  5. 5Connect Stripe in Settings -> Portal to charge paid memberships with 0% platform fee cut.

Recommended Cloud VPS for Ghost

Compare all VPS hosts →
Hetzner Cloud€3.79/mo

CX22 (2 vCPU, 4GB RAM, 40GB NVMe)

High speed NVMe storage makes Ghost page loads instantaneous.

Deploy on Hetzner →
DigitalOcean$12.00/mo

Basic Droplet (1 vCPU, 2GB RAM, 50GB SSD)

Fast worldwide CDN and 1-click Docker support.

Claim $200 DO Credit →
Vultr$12.00/mo

High Frequency (1 vCPU, 2GB RAM, 64GB NVMe)

High clock speed for snappy CMS administration.

Deploy on Vultr →

WordPress (Self-Hosted)

GPL-2.0⭐ 21.0k+

The open-source CMS powering over 40% of the web with infinite plugin extensibility and full eCommerce support.

Min RAM1 GB
Min CPU1 vCPU
GitHub Repo ↗

✅ Advantages

  • Massive ecosystem with solutions for every niche and requirement
  • Low hosting barrier on standard LAMP/LEMP stacks
  • 100% data and domain ownership with no vendor restrictions

⚠️ Trade-offs / Limitations

  • Requires regular plugin updates and security monitoring
  • Can suffer from database bloat without proper caching configuration

Core Features

▸Over 60,000 free plugins and themes for any imaginable business model
▸Full membership, LMS, and paywall support via WooCommerce and MemberPress
▸Gutenberg block editor and full site visual editing (FSE)
▸Decoupled Headless REST API and GraphQL endpoints
📄 docker-compose.yml
Production Ready
version: '3.8'
services:
  wordpress:
    image: wordpress:php8.2-apache
    container_name: wp-app
    restart: always
    ports:
      - "8080:80"
    environment:
      - WORDPRESS_DB_HOST=db
      - WORDPRESS_DB_USER=wordpress
      - WORDPRESS_DB_PASSWORD=wp_secure_password
      - WORDPRESS_DB_NAME=wordpress
    volumes:
      - wp-data:/var/www/html
    depends_on:
      - db
  db:
    image: mariadb:11.2
    container_name: wp-db
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=mariadb_root_pass
      - MYSQL_DATABASE=wordpress
      - MYSQL_USER=wordpress
      - MYSQL_PASSWORD=wp_secure_password
    volumes:
      - wp-dbdata:/var/lib/mysql
volumes:
  wp-data:
  wp-dbdata:

🚀 5-Minute Deployment Guide

  1. 1Provision a 2GB RAM VPS.
  2. 2Create docker-compose.yml with WordPress and MariaDB.
  3. 3Launch stack with `docker compose up -d`.
  4. 4Complete classic WordPress 5-minute install wizard.
  5. 5Install newsletter plugins (MailPoet or Newsletter Glue) and membership gateways.

Recommended Cloud VPS for WordPress (Self-Hosted)

Compare all VPS hosts →
Hetzner Cloud€3.79/mo

CX22 (2 vCPU, 4GB RAM, 40GB NVMe)

Robust PHP-FPM and MariaDB performance.

Deploy on Hetzner →
DigitalOcean$6.00/mo

Basic Droplet (1 vCPU, 1GB RAM, 25GB SSD)

Includes $200 trial credits.

Claim $200 DO Credit →
Vultr$6.00/mo

Cloud Compute (1 vCPU, 1GB RAM, 25GB NVMe)

High availability storage.

Deploy on Vultr →

Quick Specification Matrix

ToolLicenseMin RAMMin CPUGitHub RepoPrimary Advantage
Substack & Medium (Proprietary)Proprietary ClosedManaged CloudManaged CloudN/ATurnkey onboarding with vendor lock-in & paywalls
GhostMIT1 GB1 vCPUTryGhost/Ghost0% platform take rate — keep 100% of your paid membership revenue
WordPress (Self-Hosted)GPL-2.01 GB1 vCPUWordPress/WordPressMassive ecosystem with solutions for every niche and requirement
Starter Stack Pack — $29

Skip the setup: get the production-ready stack

Don't stitch together configs from five different READMEs. Get all 5 production-hardened Docker Compose stacks — Postgres, Redis, SSL auto-renewal, and backup scripts — ready to deploy in minutes.

⚡n8nVisual workflow automation
📊UmamiPrivacy-first web analytics
🛡️Uptime KumaUptime monitoring & alerts
🔐VaultwardenBitwarden-compatible vault
☁️NextcloudDropbox/Drive replacement
Get the Stack Pack — $29 →

One-time purchase · Instant download · Production-ready

esc
↑↓ navigate↵ open