Platform CLI
Learn
Developer docs User guide Quickstart CLI and AI agents Blog
Company
Services About Contact Links Get started
New: the Raytha CLI. Hand your AI agent a whole website.

The open source .NET CMS for developers who ship.

Model your content, design with Liquid, publish through a headless REST API, and extend with JavaScript. Or hand the CLI to an AI agent and describe the site you want. One MIT-licensed app, one Postgres database, zero lock-in.

$docker run -p 8080:8080 raythahq/raytha

Free and open source forever. Self-hosted on your own infrastructure.

Custom content types Liquid templates Headless REST API Site pages and widgets JavaScript functions SAML and JWT single sign-on Media library Revisions and audit logs CLI built for AI agents
AI agents are first-class citizens

One prompt. One website.

Install the Raytha CLI, give your coding agent an API key and a brief, and it builds the theme, the content model, the content, the pages and the navigation. Every command prints JSON, the manual ships inside the binary, and raytha check tells the agent when it is done.

  • Works with Cursor, Claude Code, Codex and anything that runs a shell
  • Themes as files in git, dry-run before every push
  • The API key is the permission boundary
  • Two complete example sites built this way in the repo

Build a site with an agent

$ curl -fsSL https://raytha.com/cli/install.sh | sh
$ export RAYTHA_URL=https://your-site.example.com
$ export RAYTHA_API_KEY=...
$ raytha doctor

> Build a complete website for Kiln & Kettle, a pottery
> studio and tea room. Theme, content model, seed content,
> pages, navigation. Finish with `raytha check`.

$ raytha check
{"ok":true,"data":{"checked":88,"failed":0}}
Everything in one place

A CMS that gets out of your way

Raytha is deliberately small: one .NET app and a Postgres database. Everything you need to build and run a content site ships in the box.

Content types, your way

Define the fields you need: text, rich text, dropdowns, relationships, files. The admin and the API follow automatically.

titlecontentfeatured_imageauthor -> authorspublished_atseo_description

Headless by default

Every content type gets a REST endpoint. Authenticate with an API key and build any front end.

GET /raytha/api/v1/ ContentItems/posts X-API-KEY: ••••••••

Liquid templates, editable live

Layouts, partial views and widgets in the Liquid language you already know. Every change keeps a revision.

Layout: raytha_html_base_layout
Page: blog_detail_view
Widget: rt_hero

Site pages and widgets

Give editors a page builder without giving up your design system. Widgets are plain Liquid with a settings form.

HeroBento gridFAQPricingCTAContent list

Functions in JavaScript

Serve sitemap.xml, handle webhooks, call APIs, send email. Plain JavaScript on V8, no deploy step.

function get(q) { return new TextResult( "hello"); }

Single sign-on built in

SAML and JWT for admins and public users, plus roles, permissions and user groups.

Revisions and audit logs

Roll back content and templates, and see who changed what.

Template saved2m
Post published1h
Role updated1d
From zero to live

Up and running in minutes

No build pipeline to learn. Deploy, model your content, and start publishing.

# Option 1: Railway (recommended)
# Open the template, click Deploy, wait a minute.

# Option 2: Docker
docker run -p 8080:8080 \
  -e ConnectionStrings__DefaultConnection="Host=db;Database=raytha;Username=postgres;Password=..." \
  raythahq/raytha
For humans too

Manage a whole site from the command line

The Raytha CLI pulls a theme into a folder, lets you edit with your editor, and pushes it back. Content types, content, pages, menus and functions work the same way. Every command speaks JSON with exit codes you can script against, in a terminal or in CI.

  • Pull and push entire themes as plain files
  • Dry-run every change before it goes live
  • Import the content model and hundreds of items from files
  • raytha check requests every public route

Read the CLI docs

$ raytha doctor
$ raytha theme pull my_theme ./site
$ raytha theme push ./site --dry-run
$ raytha theme push ./site
$ raytha site-page create --title About \
    --template rt_page --route-path about
$ raytha check
MITLicensed, free forever
.NET 10Modern, fast runtime
1 app + PostgresThat is the whole stack
100%Of your data, in your database
Install

Choose how you run it

Raytha is self-hosted. Pick the path that fits.

Recommended

Railway

The fastest way to a running site. One click deploys Raytha with PostgreSQL, a domain and TLS.

Deploy on Railway

Docker

Run the published image anywhere you have Docker, with your own PostgreSQL.

$docker run -p 8080:8080 raythahq/raytha

From source

Clone the repository, build with the .NET 10 SDK and run it as a regular ASP.NET app.

View on GitHub
FAQ

Good questions

Is Raytha really free?

Yes. Raytha is released under the MIT license. There is no paid tier, no feature gating and no hosted version to subscribe to.

What does it run on?

Raytha is an ASP.NET app on .NET 10 with PostgreSQL as its only database. Run it on Railway, with Docker, or on any server that can run .NET.

Can I use it headless?

Yes. Every content type is available through the REST API v1 with API-key authentication. You can also render public pages with Liquid at the same time.

Can an AI agent build my site?

Yes. Install the Raytha CLI where your agent runs, give it an API key, and describe the site. The CLI prints JSON, carries its own manual (raytha guide build-a-site), dry-runs changes and checks every route when it is done. It works with Cursor, Claude Code, Codex and any agent that can run a shell. Here is the walkthrough.

Can you help me build or run my site?

Yes. Professional consulting and support are available. Get in touch.

Build your next site on Raytha

Deploy in minutes, by hand or by agent. Own your content and your code.