Acachy CMS

Welcome

Getting started with Acachy CMS

Welcome to the Acachy CMS documentation.

Overview

Acachy is a headless CMS built with modern technologies:

  • Fastify — High-performance Node.js HTTP framework
  • TypeScript — Type safety across the entire codebase
  • Drizzle ORM — Lightweight, type-safe SQL ORM
  • PostgreSQL — Reliable database (via Supabase)

Architecture

Acachy follows a modular architecture within a Turborepo monorepo:

acachy-cms/
├── apps/
│   ├── api/          # Fastify API server
│   └── docs/         # Documentation site
├── packages/
│   ├── shared/       # Shared types
│   ├── ui/           # UI components
│   ├── eslint-config/
│   └── typescript-config/
├── database/
│   └── schema/       # Database schema
└── package.json

API

The API is available at http://localhost:3333.

Authentication

POST /api/admin/auth/login
{
  "email": "admin@acachy.com",
  "password": "admin123"
}

Returns a JWT access token and sets a refresh token cookie.

Content Types

POST /api/admin/content-types
Content-Type: application/json
Authorization: Bearer <token>

{
  "name": "Post",
  "slug": "post",
  "fields": [
    { "name": "title", "type": "text", "required": true },
    { "name": "content", "type": "markdown", "required": true }
  ]
}

Entries

POST /api/admin/entries/post
Content-Type: application/json
Authorization: Bearer <token>

{
  "data": {
    "title": "Hello World",
    "content": "# My first post"
  }
}

Public API

GET /api/v1/content/post
x-api-key: ck_live_<your-api-key>

Features

  • JWT + refresh token authentication
  • Content type definitions with custom fields
  • Entry management with draft/publish workflow
  • Auto-generated slugs
  • Public API with API key authentication
  • Rate limiting (100 req/min)

On this page