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 기반 개인용 CMS 스택
무엇인가요 – 개인 블로그 및 크리에이터 사이트를 위한 완전한 헤드리스 콘텐츠 관리 시스템을 구축하는 모노레포입니다. 이 스택은 AI 강화되어 있으며 (예: AI 계약을 통한 콘텐츠 생성), 다음과 같은 구성 요소로 이루어져 있습니다.
| 구성 요소 | 기술 스택 | 역할 |
|---|---|---|
핵심 서버 (apps/core) |
NestJS + Fastify, PostgreSQL, Redis | API, 스토리지, AI 관련 엔드포인트, 인증 처리. |
관리 대시보드 (apps/admin) |
React 19 SPA | 소유자가 콘텐츠를 편집하고 사이트를 구성하며 텔레메트리 데이터를 확인할 수 있는 웹 UI. |
iOS 클라이언트 (apps/ios) |
UIKit + SwiftUI (XcodeGen) | 서버와 생성된 OpenAPI 클라이언트를 통해 통신하는 네이티브 관리 앱. |
푸시 리레이 (apps/push-relay-rs) |
Rust | 프라이버시를 보장하는 APNs 리레이 (푸시 알림용). |
텔레메트리 (apps/telemetry) |
Cloudflare Workers + D1 | 익명의 사용 데이터 수집. |
공유 SDK (packages/*) |
TypeScript / Rust | 타입 안전한 API 클라이언트, CLI (mxs), 데이터베이스 스키마, Lexical 에디터 계약, AI 이벤트 계약, 푸시 프로토콜, 웹훅 헬퍼, 마이그레이션 도구. |
어떻게 연결되는가
README의 다이어그램은 일반적인 배포를 보여줍니다: 프론트엔드 (예: Yohaku의 Next.js 사이트)는 @mx-space/api-client를 통해 핵심 서버와 통신합니다. 관리용 SPA와 iOS 앱은 모두 이 SDK를 사용하는 얇은 클라이언트입니다. 서버는 알림 ID를 푸시 리레이에 전달하고, 리레이가 이를 Apple의 APNs로 전달합니다. 텔레메트리는 익명으로 Cloudflare 워커로 전송됩니다.
시작하기 (개발자용)
- Node 22 이상을 설치하고 Corepack을 활성화합니다.
pnpm install로 모든 패키지를 가져옵니다.- Docker로 PostgreSQL과 Redis를 실행합니다 (
docker compose up -d postgres redis). - 서버를 실행하려면
pnpm dev(http://localhost:2333), 관리 UI는pnpm dev:admin(http://localhost:9528)을 실행합니다. - OIDC 디바이스 플로우로 인증되는 CLI (
mxs)를 사용해 콘텐츠 생성 및 설정을 수행합니다.
주목할 만한 기능
- AI 계약 –
@mx-space/ai패키지는 클라이언트가 AI 생성 콘텐츠나 제안을 구독할 수 있는 서버 측 SSE 이벤트 유형을 정의합니다. - 타입 안전 SDK –
@mx-space/api-client는 프론트엔드에 완전한 TypeScript 타입을 제공하여 런타임 오류를 줄입니다. - 모듈화된 배포 – 푸시 리레이와 텔레메트리는 별도의 서비스이므로 필요에 따라 필요한 것만 실행할 수 있습니다.
- 마이그레이션 도구 –
mongo-pg-cli는 기존 MongoDB 데이터를 새 PostgreSQL 스키마로 이전하는 데 도움을 줍니다.
누구에게 적합한가요?
- 자체 호스팅되고 AI 기능이 강화된 블로그 플랫폼을 원하는 개인 크리에이터.
- 강력한 TypeScript 생태계와 선택적 네이티브 iOS 관리 앱을 갖춘 즉시 사용 가능한 헤드리스 CMS를 찾는 개발자.
- 프라이버시 중심의 푸시 알림이 필요한 팀 (Rust 리레이를 통해).
라이선스
AGPL‑v3 + MIT 이중 라이선스이며, 추가 조건은 ADDITIONAL_TERMS.md에 명시되어 있습니다.
- 위의 모든 정보는 리포지토리의 README에서 직접 가져온 것이며, 외부 가정은 전혀 추가되지 않았습니다.*
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트