inFactory@ /Studio by XED.dev

CSS Subgrid Section Renderer + Puck Visual Editor — Open Source, Self-Hosted, AI-Ready.

Two Tracks, One System

Track A — inFactory@ /StudioTrack B — inFactory@ /Themes
StatusActiveFrozen
Purpose5–50 pixel-perfect pages per projectGhost blog/news/newsletter themes
StackCSS Subgrid + Payload CMS + Puck + Next.jsGhost CLI + HBS templates + Presets
DeliveryNGINX/LEMP (primary) + Ghost (secondary)Ghost themes

Quick Start — Install as root

# inFactory Server (Express, Track A)
curl -fsSL https://studio.xed.dev/install.sh | bash

# Per-Site Setup
curl -fsSL https://studio.xed.dev/install.sh | bash -s setup steirischursprung.at

# Studio-Payload (Puck Visual Editor + Payload CMS + Next.js)
curl -fsSL https://studio.xed.dev/payload.sh | bash

# Per-Site Setup
curl -fsSL https://studio.xed.dev/payload.sh | bash -s setup steirischursprung.at

Requires: Node.js 18+ · Git · pnpm (auto-installed)

Health Monitoring

# Check all services
curl -fsSL https://studio.xed.dev/health.sh | bash

# Auto-fix stopped services
curl -fsSL https://studio.xed.dev/health.sh | bash -s fix

# Install crontab (every 5 minutes)
curl -fsSL https://studio.xed.dev/health.sh | bash -s cron

SysOps Reference — All Commands

ScriptCommandWhat it does
install.sh| bashInstall/Update infactory-server + auto-restart services
| bash -s setup <tld>Per-site: API-key, config, systemd, ACLs, start, health-check
| bash -s statusStatus of all infactory-server sites
payload.sh| bashInstall/Update studio-payload + migrate + build + auto-restart
| bash -s setup <tld>Per-site: secrets, systemd, migrate, start
| bash -s statusStatus of all studio-payload sites
health.sh| bashHealth-check all services (NGINX + infactory + payload)
| bash -s fixHealth-check + auto-restart stopped services
| bash -s cronInstall crontab (5-minute health check)
| bash -s uncronRemove crontab

All scripts: curl -fsSL https://studio.xed.dev/<script>

Architecture

AI Agent / SysOps
Claude Code
curl | bash
Puck Editor
Port 4368 — infactory-server
Compile Engine
NGINX Target Driver
REST API + Health
+
Port 5368 — studio-payload
Payload CMS 3
Puck Visual Editor
Next.js 16 SSR

CSS Subgrid Section System

Every section block produces semantic HTML with g_-classes — a thin layer over native CSS Subgrid. No framework classes, no inline styles for layout.

<section data-snippet="s_hero_split" class="g_section">
  <div class="g_grid" style="--g-cols: 12">
    <div class="g_item g_col-7" data-zone="headline" data-editable="true">
      <h1>Your Headline</h1>
    </div>
    <div class="g_item g_col-5" data-zone="image" data-editable="true">
      <!-- visual content -->
    </div>
  </div>
</section>

Dual format: HBS (Compile Engine) + TSX (Puck Editor) produce DOM-identical output.

Server API (infactory-server, Port 4368)

EndpointWhat it does
GET /xed/api/healthServer health + version (no auth)
GET /xed/api/nginx/sitesList configured NGINX sites
POST /xed/api/nginx/writeWrite compiled HTML to NGINX webroot

All endpoints except health require X-API-Key header.

Repositories

RepoPurpose
XED-dev/Studioinfactory-cli + infactory-server + install.sh + payload.sh + health.sh
XED-dev/Studio-Payloaddd-starter fork with Payload CMS + Puck + SQLite + g_-classes blocks

inFactory@ /Studio v1.3.0 — XED.dev — MIT License