Skip to main content

max / makenotwork

git clone https://makenot.work/git/max/makenotwork.git git clone git@ssh.makenot.work:max/makenotwork.git
Name Size
/ bento/
/ mnw-cli/
/ multithreaded/
/ pom/
/ sando/
/ server/
/ shared/
/ wam/
· .gitignore 750 B
· LICENSE 4.4 KB
· README.md 2.7 KB

README

MakeNotWork

Creator platform with 0% platform fee. Only Stripe’s ~3% processing fee applies. Live at makenot.work.

Monorepo Structure

MNW/
  server/              MNW server (Rust/Axum, PostgreSQL, HTMX)
  multithreaded/       Forum software (Rust/Axum, MNW OAuth integration)
  pom/                 Production operations monitor (health checks, alerts)
  mnw-cli/             CLI tool for MNW platform
  shared/              Shared libraries
    docengine/         Markdown rendering + documentation engine
    tagtree/           Hierarchical tag standard
    synckit-client/    SyncKit cloud sync client SDK
    theme-common/      Theme loading + parsing (TOML themes)
    s3-storage/        S3-compatible storage abstraction
    themes/            TOML theme definitions (24 themes)
    tauri-updater-ui/  OTA update UI components

MNW Server

Built with Rust (2024 edition), Axum, PostgreSQL, Askama templates, and HTMX.

Prerequisites

  • Rust (stable toolchain, 1.85+, 2024 edition)
  • PostgreSQL (16+)
  • Environment variables via .env file: database URL, Stripe keys, Postmark token, S3 credentials, Sentry DSN, session secret, JWT secret. See server/.env.example for the full list.

Build and Run

All commands run from the MNW/server/ directory:

# Development
cargo run

# Run unit tests (no database needed)
cargo test

# Run integration tests (needs a running PostgreSQL instance)
TEST_DATABASE_URL="postgres://user:pass@host:5432/postgres" cargo test --test integration

# Admin CLI
cargo run --bin mnw-admin

Production deployment uses cargo zigbuild for cross-compilation to x86_64 Linux. See server/deploy/deploy.sh.

Key Integrations

  • Stripe Connect – creator payouts, subscriptions, checkout
  • Postmark – transactional email (verification, password reset, purchase receipts)
  • S3 (Hetzner Object Storage) – file storage for creator uploads
  • SyncKit – cloud sync and device management API for client applications
  • Sentry – error tracking
  • git2 – built-in git source browser

Deployment

Runs on a Hetzner VPS with systemd and Caddy (reverse proxy + TLS). No Docker.

cd server/

# Full deploy (cross-compile + upload + restart)
./deploy/deploy.sh

# Binary-only deploy (skip config files)
./deploy/deploy.sh --quick

# Config-only deploy (Caddyfile, systemd unit, static assets, error pages)
./deploy/deploy.sh --config

Testing

Each integration test creates and drops its own PostgreSQL database, so tests run in full isolation. Unit tests have no external dependencies.

cd server/
cargo test                    # Unit tests
cargo test --test integration # Integration tests (needs TEST_DATABASE_URL)

License

PolyForm Noncommercial 1.0.0