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
.envfile: database URL, Stripe keys, Postmark token, S3 credentials, Sentry DSN, session secret, JWT secret. Seeserver/.env.examplefor 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