mx-space/core

AI-powered CMS core for personal blogs and creator websites, with AI summaries, translation, moderation, and writing workflows.

mx-space/core – AI‑powered personal CMS stack

What it is – A monorepo that builds a complete, head‑less content‑management system aimed at personal blogs and creator sites. The stack is AI‑enhanced (e.g. AI contracts for content generation) and consists of:

Component Tech stack Role
Core server (apps/core) NestJS + Fastify, PostgreSQL, Redis Handles API, storage, AI‑related endpoints, authentication.
Admin dashboard (apps/admin) React 19 SPA Web UI for owners to edit content, configure the site, and view telemetry.
iOS client (apps/ios) UIKit + SwiftUI (XcodeGen) Native admin app that talks to the server via the generated OpenAPI client.
Push‑relay (apps/push-relay-rs) Rust Stand‑alone, privacy‑preserving APNs relay for push notifications.
Telemetry (apps/telemetry) Cloudflare Workers + D1 Anonymous usage‑data collector.
Shared SDKs (packages/*) TypeScript / Rust Typed API client, CLI (mxs), database schema, Lexical editor contracts, AI event contracts, push protocol, webhook helpers, migration tool.

How it fits together

The diagram in the README shows a typical deployment: a front‑end (e.g. the Yohaku Next.js site) talks to the Core server through the @mx-space/api-client. The admin SPA and iOS app are thin clients that also use this SDK. The server can push notification IDs to the Push Relay, which forwards them to Apple’s APNs. Telemetry is sent anonymously to a Cloudflare worker.

Getting started (developer view)

  1. Install Node 22+ and enable Corepack.
  2. pnpm install to fetch all packages.
  3. Spin up PostgreSQL and Redis with Docker (docker compose up -d postgres redis).
  4. Run pnpm dev for the server (http://localhost:2333) and pnpm dev:admin for the admin UI (http://localhost:9528).
  5. Use the provided CLI (mxs) for content creation and configuration, which authenticates via OIDC device flow.

Notable features

  • AI contracts – The @mx-space/ai package defines server‑side SSE event types that clients can subscribe to for AI‑generated content or suggestions.
  • Typed SDK – @mx-space/api-client gives front‑ends full TypeScript typings, reducing runtime errors.
  • Modular deployment – The push relay and telemetry are separate services, allowing you to run only what you need.
  • Migration tooling – mongo-pg-cli helps move legacy MongoDB data to the new PostgreSQL schema.

Who might use it?

  • Individual creators who want a self‑hosted, AI‑enhanced blog platform.
  • Developers looking for a ready‑made headless CMS with a strong TypeScript ecosystem and optional native iOS admin.
  • Teams that need privacy‑first push notifications (via the Rust relay).

License

Dual‑licensed under AGPL‑v3 + MIT, with additional terms in ADDITIONAL_TERMS.md.


All information above is taken directly from the repository’s README; no external assumptions have been added.

Related

  • Project
  • Project
  • Project
  • Project