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

Pennowick Insurance Agency: a self-hosted CMS for insurance agencies — an open-source .NET insurance agency website

An independent insurance agency website for a fictional agency: coverage lines with what is and is not covered, a carrier appointment matrix, claims guides by the hour, agents, offices, a glossary, and a members-only client binder. Built on Raytha, a self-hosted, open-source .NET CMS for insurance agencies, 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
Financial services
Rebuild
One script, from GitHub
Pennowick Insurance Agency: a self-hosted CMS for insurance agencies — an open-source .NET insurance agency website
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 / 10Home: a street-block map where every numbered pin is a coverage line
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 an independent insurance agency website — the site a local agency runs for the households and businesses it insures: coverage lines, the carriers it is appointed with, its agents and offices, claims guides, a glossary, and a few pages only clients should see. The same build works for an agency's own team, or for a freelancer or web shop that builds sites for agency clients.

If you are looking for a self-hosted CMS for insurance agencies, or an open-source .NET CMS for an insurance agency website, this is the kind of site that fits: coverage, carriers and claims guides as structured content, server-rendered pages, and a members-only client binder built on Raytha's own user accounts and groups. Built on a fresh Raytha instance, with no client-side app in the layout.

Pennowick Insurance Agency is fictional. The agency, the town of Pennowick, its three offices, its six agents, its ten carriers (Halvorly Mutual, Quarrow Fire & Casualty, Ostrine Indemnity and the rest), license numbers, policy numbers and figures are invented and labeled as such, and phone numbers use the 555 range. There is no quote request, payment, registration or contact form; client accounts exist only for the demo.

An agency site built around an ordinary street

Most agency sites open with a stock photo of a family and a quote button. Pennowick opens with an illustrated street block instead, and uses it to explain what the agency does:

  • A street-block map in the hero. A cottage, a house, a car, an apartment building, a corner café, a rental duplex, a worker on a ladder, a work van and the river, with a numbered pin on each. Every pin is a coverage line, positioned from that line's own pin_x and pin_y fields, so adding a line adds a pin. A legend below groups them into home and family, business, and life and income.
  • Captive or independent, in one panel. One agent with one company next to one agent with ten companies — the actual reason an independent agency exists, without a paragraph of marketing.
  • A carrier appointment matrix. Rows are carriers, columns are coverage lines, and a dot means the carrier writes that line through the agency. The table is built from the carrier and coverage records, so it changes when an appointment does.
  • "When to call us." Six life events (bought a house, a teen got a license, opened a shop, hired a first employee) each linking to the coverage they usually change.
  • A claims desk. Every claims guide is split into the first hour, the first day and the first week. The home page shows the most common one in full; each guide page adds what to keep, the related coverage, and the claims lines of the carriers that write it.
  • Coverage pages that say what is not covered. Each line has a two-column "usually covered / usually not covered" ledger, the body, and questions clients ask, plus the carriers and agents for that line pulled in by code.
  • Agents, offices and an A–Z glossary. Agents have licensed lines, languages and office; offices have hours, parking and a pin on a county map; sixteen glossary terms each have a short definition and a worked example.

Design: a policy folder

The visual language is a paper policy folder: manila and cream paper, oxblood and deep teal ink, a brass accent, and navigation drawn as folder tabs. Page headers are file labels pinned to a manila band; the members area is a binder with tabs. Headings are set in Literata, body text in Atkinson Hyperlegible (chosen for legibility), and labels and figures in Red Hat Mono. There are no wide display fonts. Agent portraits are generated monogram cards, so no real person is pictured.

Why an insurance agency looks at a self-hosted CMS

  • Client pages without a second portal. Raytha has public user accounts and user groups. The client binder, renewal calendar and claims contact sheet check CurrentUser.UserGroups in the template on the server, so a gated page is never sent to a browser that should not see it. Business clients see an extra tab with certificate and payroll audit guides.
  • You own the code and the content model. Raytha is open source. Coverage lines, carriers, agents and claims guides are content types you define; the templates and content are files you can keep in your own repository, rebuild on a new server, or hand to another agency.
  • Your infrastructure, if you need it. Agencies that answer to carriers, E&O insurers or their own IT policy can run Raytha on their own servers or private cloud. It is ASP.NET Core with PostgreSQL, so it fits next to the .NET systems many agencies and their vendors already run. You can also deploy it on Railway.
  • No per-seat pricing. Principals, producers, account managers and the person who updates office hours can all have editor accounts. Raytha has no seat licensing, so you do not ration logins.
  • One build, many agencies. For a freelancer or web shop that builds agency sites, the kit is the product: the same content model and theme can be rebuilt for the next agency with its own carriers, offices and colors.

Raytha fits insurance agencies that want to own their stack: the code is open source, the content model is yours, and the site can run on your own infrastructure. 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 and .NET teams often evaluate, see Raytha vs WordPress, Raytha vs Kentico, Raytha vs DNN and Raytha vs Umbraco.

How the members-only client binder works

  • Two user groups: policyholders and business. A business client is also treated as a policyholder.
  • Each client resource has an audience field (everyone, policyholders, business clients). The detail template reads it and the signed-in user's groups and renders either the body or a lock panel with a sign-in link. The resources list shows every item with its audience, so the public can see what exists without reading it.
  • The client binder at /binder is a site page with its own template: signed out, it explains what is behind sign-in; signed in, it shows a policy summary (story data), the next renewal, the assigned agent, and the guides the account's groups can open. Business accounts get business policy rows and the business guides.
  • Sign-in uses Raytha's built-in login page, restyled as a binder label. There is no registration form: in the story, an agent sets up each client's binder at their first policy review.

What is in the kit

Seven content types (coverage lines, carriers, agents, offices, claims guides, glossary terms, client resources), two user groups, site pages for About, Licenses and disclosures, Search and the client binder, menus, and generated agent portraits — all rebuildable with one command from the kit in the examples repository. Route check: 80 routes checked, 0 failed.

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.