Skip to main content
ACI works with your existing frontend project. Every supported framework connects through the same frontend contract, .aci.yaml, component and layout contracts, and a renderer entrypoint, so the concepts you learn for one carry over to the rest. The contract is shared; each framework simply decides how to render the validated page payload. This page walks through setting up each one, from installing the SDK to wiring your first component.

Shared Setup

Install the SDK and TypeScript tooling:
Use this package name in all framework integrations:

Contract File Rules

Keep contract files separate from runtime components:
Contract files may import @gradial/aci and zod. They should not import framework components, CSS, browser APIs, or runtime rendering code.

Astro

Astro is ACI’s recommended starting point. Its island architecture and static-first approach align naturally with ACI’s pre-compile model, so it’s the fastest way to get a feel for how content and code come together.

Config

Component Contract

Layout Contract

Renderer Entry

Local Scripts

Next.js

Next.js plugs into the same contract, centered on the App Router and SSR path. If you already run Next.js, ACI slots in alongside it.

Config

CMS Catch-All Route

Create a catch-all App Router page and force dynamic SSR:

Middleware

Release Asset Route

Run aci doctor to verify the catch-all route, dynamic SSR settings, package dependency, and asset route.

SvelteKit

SvelteKit uses the same .aci.yaml contract and a renderer function that returns HTML.

Config

Renderer Function

Local Content Structure

Content lives in .content/ as JSON files:
Page documents use component names from the contract registry:

Validation Loop

Run this before committing starter changes:

Next: CLI Reference →