Platform CLI Use cases
Learn
Developer docs User guide Quickstart CLI and AI agents Blog
Company
Services About Contact Links Get started
Agency and portfolio

Halverline Studio: an open-source .NET CMS for web design agencies, with a client portal

A web design agency site for a fictional studio: case studies, services, a team page, insights, careers, client logos and testimonials, and a members-only client portal with project updates, deliverables and brand assets. Built on Raytha, a self-hosted, open-source .NET CMS agencies can build client sites on, by an AI agent with the CLI in under an hour.

Build time
Under an hour
Built with
Raytha 2.0.1 and the raytha CLI 0.1.1
Industry
Agency and portfolio
Rebuild
One script, from GitHub
Halverline Studio: an open-source .NET CMS for web design agencies, with a client portal
Walkthrough

See it in action

A short, silent tour of the finished site, recorded from the real pages.

Silent walkthrough, 1080pOpen the MP4
The site

Take the tour

10 screens from the finished site, on desktop and on a phone. Use the arrow keys, swipe, or open any screen full size.

01 / 10The home page: selected work, services, clients and the studio at a glance
The write-up

For each Raytha use case we take a realistic brief, hand it to an AI agent with the raytha CLI, and publish what comes out: the site, the files behind it, and a kit you can use to rebuild it yourself. This one is a web design agency site: case studies, services, a team page, insights, careers, client logos and testimonials, and a members-only client portal with project updates, deliverables and brand assets.

If you are looking for an open-source .NET CMS for web design agencies, or a self-hosted CMS agencies can build client sites on, this is the kind of site an agency or a freelancer builds on Raytha, for its own website and as a starting point for client work. The agent built it on a fresh Raytha 2.0.1 instance. Nobody opened the admin. Every template, content type, item, page, menu and group went in through the CLI, from files in a directory.

Halverline Studio is fictional. The studio, its clients, people, projects and files are invented, and the site says so on every page. There are no payment, registration or job application forms.

Why agencies and freelancers look for a self-hosted CMS

An agency runs its own site and builds and maintains sites for clients. The CMS it picks shows up in every proposal, every handover and every care plan, so the same questions come up:

  • You and your client own the code. Raytha is MIT-licensed. Templates, content types and content are plain files you can keep in a repository, so a client site can be handed over, moved to another host or picked up by another team without a license transfer.
  • No per-seat or per-site licensing. There is no fee per editor, per site or per page view. Each client site is its own Raytha instance, and adding one does not change your license costs or your client's.
  • Self-hosted, on-premises or managed. Raytha is a .NET 10 application with PostgreSQL, shipped as a Docker image. It runs on your own servers, a client's cloud account or an on-premises data center, which matters for clients in healthcare, legal, finance and the public sector. It can also be fully hosted and managed for you under contract.
  • A .NET stack your developers already know. Raytha is ASP.NET Core with Liquid templates. A .NET team can host, review and extend it, and front-end developers write plain HTML and CSS in the templates.
  • Members-only client areas without a second product. Raytha has public user accounts, user groups and per-group permissions, so a client portal with project updates, deliverables and brand assets can sit behind a website sign-in instead of a separate file-sharing or project tool.
  • Reusable content models and templates. Content types, templates, widgets and menus can be exported and imported as files, so a model that works for one museum, clinic or retailer becomes the starting point for the next client like it.

Raytha fits agencies that want to own their stack: the code is open source, the content model is yours, and you can run it on your own infrastructure or your client's. If you would rather not run it yourself, Raytha can be fully hosted and managed for you under contract. Where another platform may suit you better is if you need a large plugin marketplace, or an all-in-one marketing suite with CRM and marketing automation built in. For fair comparisons with platforms agencies often evaluate, see Raytha vs WordPress, Raytha vs Umbraco, Raytha vs Kentico, Raytha vs Strapi, Raytha vs Payload, Raytha vs Directus and Raytha vs Contentful.

What was built

Halverline Studio is the website of a fictional eight-person web design and development studio in Portland, Maine, founded in 2016, that designs and builds websites for museums, libraries, clinics, retailers and product companies. The site has:

  • A home page with selected work, a client logo wall, services, the studio's process, a client testimonial and recent insights.
  • Eight case studies, filterable by industry, each with the challenge, the approach, results, the stack, the timeline and a client quote.
  • Ten clients with logos and short profiles, linked to the case studies done for them.
  • Six services, from brand and identity to accessibility audits and hosting and care plans, each with deliverables, a typical timeline, the person who leads it and related case studies.
  • A studio page and a team directory with eight profiles, an insights blog with eight articles, and careers with four open roles.
  • A client portal behind a Raytha sign-in, with project rooms showing the phase, progress, next milestone and weekly updates, plus deliverables and brand assets with versions.
  • A contact page, an accessibility statement and search across case studies, clients, services, people, insights and roles.

The design is editorial and confident: a near-black hero with browser and phone mockups of client work, warm paper backgrounds, white cards and a single vermilion accent. Headings and body are set in Instrument Sans, with Instrument Serif italic used sparingly for emphasis. No wide display fonts. The portraits, client logos, case study mockups, design boards and PDFs are generated by a script, so every image and document is license-free. On a 390px phone the navigation becomes a menu button and the case study grids stack cleanly.

How case studies, services and the client portal work

  1. Each case study is a content item with an industry dropdown and a relationship field to its client, so a client page lists its work and a case study shows the client's logo without duplicating anything. The work page filters by industry with a query parameter, and service pages pull in the case studies that used that service.
  2. Services, projects and insights relate to team members, so a service shows who leads it, a project room shows its studio lead and a profile lists that person's articles.
  3. The client portal uses Raytha user groups: one group per client and a studio group. Each project and deliverable names its client's group, and the templates check CurrentUser.UserGroups on the server. Signed out, the portal shows a lock and a sign-in prompt. Signed in, a client sees only their own projects and files, and another client's project stays hidden. The studio team sees every client.

Try it yourself

The rebuild kit is in the public RaythaHQ/raytha-examples repository. Point the Raytha CLI at a fresh instance, run the example's build.sh, and you get the same content types, templates, pages and seed content. You can also deploy Raytha on Railway from the template to try a blank site quickly.

Run it yourself

Run this on your own Raytha

Raytha is free and open source (MIT). Deploy your own copy on Railway, with PostgreSQL included, then load this site into it from the rebuild kit.

  1. Deploy RaythaThe Railway template sets up Raytha, PostgreSQL and a volume for uploads. Open the new site and create your administrator.
  2. Create an API keyIn the admin: People, Admins, open your account, then Create API key.
  3. Import the kitInstall the Raytha CLI, set RAYTHA_URL and RAYTHA_API_KEY, and run the kit's build.sh on the fresh site.

Prefer your own server? Raytha also runs with Docker.

Share Post LinkedIn

Build yours on Raytha

Free, open source and ready to deploy in minutes. Bring a brief and an AI agent.