An open alternative to WordPress plugins and Webflow lock-in:
Visual editing, a real CMS, and an AI engineer in Astro.
Quick start ⌁ Runtimes ⌁ Capabilities ⌁ Docs ⌁ Contributing
Deploy Aria to Cloudflare in one click, or run it locally with Node and SQLite.
- Click the Deploy to Cloudflare button above.
- Accept the generated Worker, D1, KV, R2, Queue, Durable Object, and optional Workers AI resources. Give the two KV namespaces distinct titles (e.g.
aria-cacheandaria-session) — the form cannot prefill them. - Open
/admin/setupon the live site, create the first administrator, and complete first-launch setup.
One-click runs the deploy script: migrate D1, build the Worker, bootstrap the
secrets Aria needs to boot (Site API keyring + OAuth), and ship it. You land on
a blank site — finish at /admin/setup. Redeploys keep your content and won't
rotate keys that are already live. Optional pieces (email encryption, Turnstile,
custom-domain analytics, webhooks) are deliberately configured after deployment
and never block first boot. See the
Cloudflare deployment guide
for prerequisites and manual deploy.
The deployment template also declares a few bindings and triggers the Deploy button does not list as generated resources — Cloudflare Images (media transforms degrade gracefully without an entitlement), the Cache API, and a 5-minute cron trigger. None of them block first boot.
Workers Builds settings: the Deploy flow auto-detects build and deploy
scripts from package.json and pre-fills both fields — keep the deploy
command as npm run deploy (it migrates D1, then builds). You can clear the
build command to skip a redundant second build; leaving it pre-filled is safe,
just slower. The default non-production deploy (wrangler versions upload)
skips migrations and secret bootstrap, so preview deploys can lag behind on
schema and secrets.
The Deploy button cannot create a least-privileged Cloudflare API token or
choose a DNS zone for you. A new workers.dev URL does not belong to one of
your account's zones, so finish this setup after connecting a Cloudflare-managed
custom domain:
- Create a dedicated Zone Analytics token, restrict it to the site's zone, and grant Zone → Analytics → Read. Zone → Zone → Read is optional and only lets Aria verify that the configured zone matches the site domain.
- Copy the domain's Zone ID.
- In Workers & Pages → your Aria Worker → Settings → Variables and Secrets, add
ARIA_CLOUDFLARE_ANALYTICS_TOKENas an encrypted secret andARIA_CLOUDFLARE_ZONE_IDas a plain-text variable, then deploy the new Worker version. - Set Aria's Site URL to the custom-domain URL and enable Show Cloudflare metrics in Aria Builder under Analytics settings.
Existing deployments that use ARIA_CLOUDFLARE_API_TOKEN remain compatible,
but the dedicated analytics token is preferred because it can be limited to
read-only analytics access. Sites that stay on workers.dev can use
Cloudflare's Worker metrics dashboard instead.
Requirements: Node.js >= 22.18.0 and npm.
git clone https://github.com/ariabuilder/aria.git
cd aria
npm install
npm run devOpen http://localhost:4321/admin and complete
first-run setup at /admin/setup.
For Cloudflare binding parity (D1, KV, R2, and Workers), run:
npm run dev:edgeLocal setup · Edge development
| Cloudflare | Node + SQLite | |
|---|---|---|
| Runs on | Workers with D1, KV, R2, Queues, Durable Objects, and optional Workers AI | Your PC, VPS, Docker, Railway, or another Node host |
| Best for | Edge delivery and Cloudflare-native services | Local development, self-hosting, and straightforward deployments |
| Start with | npm run dev:edge locally; npm run deploy for production |
npm run dev |
The same Astro project, Astro Actions, and StorageAdapter run in both modes.
See storage and runtimes
for the architecture and trade-offs.
| Capability | What it enables |
|---|---|
| Studio & Composer | Edit the real page on a visual canvas, with Inspector controls, responsive viewports, and optimistic updates. Explore Composer → |
| CMS & collections | Define structured content, schemas, templates, relations, drafts, and revisions without a separate CMS product. Explore collections → |
| Design system & motion | Author tokens, semantic classes, fonts, and motion visually; publish only the CSS each page needs. Design system → Motion → |
| AI Engineer & MCP | Plan, create, and publish with an agent and external tools that honor the same role permissions as Studio. Explore Agent & MCP → |
| Site API | Connect site-local automations through policy-aware REST endpoints for CMS collection and entry workflows. Site API credentials are scoped to the site and use Aria's authorization model. |
| Auth & security | Use sessions, TOTP, roles, capabilities, audit logging, rate limiting, and login protection built into Aria. Authentication → Security → |
| Send password resets and transactional messages through Cloudflare Email, SMTP, or a local preview sink. Explore email → | |
| SEO & publishing | Publish with sitemaps, feeds, redirects, JSON-LD, crawler guidance, and site-health tools. SEO → Publishing → |
| Runtime & storage | Keep code portable while choosing SQLite locally or Cloudflare D1, KV, and R2 at the edge. Storage and runtimes → |
| Ownership & export | Download a clean Astro project, including your pages, components, design system, and CMS data. Export and import → |
The job has not changed: ship a site, manage content, and iterate on design.
Aria Builder combines visual editing with an Astro codebase and a runtime you control.
| The old way | Aria | |
|---|---|---|
| Foundation | Theme and plugin layers across several products | One Astro project with Studio, content, design, and publishing |
| Content | A posts table plus add-ons | Structured collections with schemas and visual templates |
| Design | Theme options that drift | A canonical design system shared by previews, publishing, and export |
| AI | A disconnected chat sidebar | An agent and MCP server with the same capabilities as a user |
| Ownership | Hosting and export restrictions | A project you can run, deploy, and export yourself |
Aria separates code deployment, schema migrations, and content promotion.
A builder update does not overwrite live pages or settings unless you
explicitly promote content.
The Studio export creates a clean Astro project you can take elsewhere. For deployment, media storage, content promotion, and environment configuration, use the Cloudflare deployment guide, content-sync guide, and environment-variable reference.
Technical details for contributors, including the generated inline-SVG icon pipeline, are documented in the platform architecture.
Aria is pre-launch and under active development.
Webhook automation, third-party OAuth, Figma integration, and plugins are not currently available and are currently being developed.
See ROADMAP.md for publicly planned work.
Start with Aria docs for setup, deployment, Studio workflows, and contributor architecture.
Documentation will be expanded on as we progress with development. Expect full step by step guides, video tutorials, and more.
| Resource | What it covers |
|---|---|
| Deployment | Cloudflare setup, migrations, bindings, and content after deploy |
| Architecture | Platform boundaries and extension points |
| SECURITY.md | Private vulnerability reporting |
| TRADEMARKS.md | Name, logo, and fork-branding rules |
Contributions are welcome, especially around Composer UX, blocks, and tests. Read CONTRIBUTING.md, review the contributor documentation, and open an issue before substantial architectural changes. Support expectations are in SUPPORT.md.
Bundled front-end asset notices, including Outfit under the SIL OFL 1.1, are listed in Acknowledgements.
Built for creators.
Apache-2.0 | See LICENSE | Trademarks | Acknowledgements
