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

Corrowen & Ivesmark LLP: a self-hosted CMS for law firms — an open-source .NET law firm website

A law firm website for a fictional litigation and business firm: practice areas with what the firm refers out and how it bills, attorneys as signature blocks, representative matters as a docket, insights as memos, offices, and a members-only client room. Built on Raytha, a self-hosted, open-source .NET CMS for law firms, 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
Legal and professional services
Rebuild
One script, from GitHub
Corrowen & Ivesmark LLP: a self-hosted CMS for law firms — an open-source .NET law firm 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 redlined statement of the firm, with margin notes from three attorneys
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 law firm website — the site a litigation and business firm runs for clients, referral sources and the people who will read its attorneys' bios before a first meeting: practice areas, attorneys, representative matters, insights, offices, and a client area that only clients should see. The same build works for a firm's own marketing team, or for an agency or freelancer that builds sites for law firm clients.

If you are looking for a self-hosted CMS for law firms, or an open-source .NET CMS for a law firm website, this is the kind of site that fits: practice areas, attorneys and matters as structured content, server-rendered pages, and a members-only client room built on Raytha's own user accounts and groups. Built on a fresh Raytha instance, with no client-side app in the layout.

Corrowen & Ivesmark LLP is fictional. The firm, the river city of Wendlow and its courts, the seven attorneys, their bar numbers, the matters, docket numbers and figures are invented and labeled as such, and phone numbers use the 555 range. There is no contact, intake, payment or registration form; client accounts exist only for the demo.

A law firm site that reads like a marked-up draft

Most firm sites open with a skyline photo and the words "results-driven." This one is set like a document a lawyer would actually recognize:

  • A redlined statement in the hero. The firm's opening line is shown with tracked changes ("handle" struck through, "try" written in), and the margin carries comments from three attorneys. Each comment is the attorney's own margin_note field, so changing a bio changes the margin.
  • A practice index set as a table of contents. Section numbers, dotted leaders and a count of representative matters for each practice, grouped into disputes, business, and people and property. The counts are computed from the matter records.
  • Representative matters as a docket. Docket number, year, matter, forum and a disposition stamp (verdict, settled, dismissed, award, affirmed, closed). Each matter page opens with a court-style caption — parties, the parenthesis column and the case number — followed by what happened and the team.
  • Practice pages that say what the firm does not do. Each practice has a "we handle" list, a "we refer out" list, the fee model (hourly, flat, blended) and the steps a matter usually goes through, plus the attorneys, matters and insights for that practice, all pulled in by practice code.
  • Attorneys as signature blocks. "Respectfully submitted, /s/ Helena Corrowen," with position, bar admission and office. Profiles list education, languages, practices and every matter the attorney worked on.
  • Fees, stated plainly. A table on the home page lists how each practice bills, from the same practice records.
  • Insights as memos. TO, FROM, DATE and RE, with the author linked to their profile.
  • How a matter moves. Conflict check, first meeting, engagement letter, strategy memo, resolution — with a note that nobody is a client until the engagement letter.
  • Notices on every page. Attorney advertising, no attorney-client relationship from reading the site, and prior results do not guarantee a similar outcome.

Design: the redline

The visual language is a legal draft under review: bone paper, ink black, a vermilion red-pencil accent for deletions, stamps and margin notes, and a tracked-changes blue for insertions. A fixed left rail works as the table of contents (§ 1 Practice, § 2 Attorneys...), and a thin red margin rule runs down each page header like a legal pad. Text and headings are set in Source Serif 4, interface text in IBM Plex Sans, and section numbers and docket entries in IBM Plex Mono. There are no wide display fonts. Attorney portraits are generated initials on ruled paper, so no real person is pictured.

Why a law firm looks at a self-hosted CMS

  • Confidential pages without a second portal. Raytha has public user accounts and user groups. The client room and client-only library documents check CurrentUser.UserGroups in the template on the server, so a privileged page is never sent to a browser that should not see it. In-house counsel accounts get a separate counsel desk with templates and quarterly updates.
  • You own the code and the content model. Raytha is open source. Practice areas, attorneys, matters and insights are content types you define; the templates and content are files you can keep in your own repository, rebuild on a new server, or move to another host without asking a vendor.
  • Your infrastructure, if you need it. Firms with client confidentiality obligations, outside counsel guidelines or their own IT policy can run Raytha on their own servers, on premises or in a private cloud. It is ASP.NET Core with PostgreSQL, so it fits next to the .NET and Windows systems many firms already run. You can also deploy it on Railway.
  • No per-seat pricing. Partners, associates, paralegals and the marketing coordinator can all have editor accounts, and clients can have as many sign-ins as they need. Raytha has no seat licensing, so you do not ration logins.
  • One build, many firms. For an agency or freelancer that builds law firm sites, the kit is the product: the same content model and theme can be rebuilt for the next firm with its own practices, attorneys and colors.

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

How the members-only client room works

  • Two user groups: clients and counsel (an in-house counsel program). A counsel account is also treated as a client.
  • Each client library document has an audience field (everyone, clients, in-house counsel). 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 library list shows every document with its audience, so the public can see what exists without reading it.
  • The client room at /client-room is a site page with its own template: signed out, it explains what is behind sign-in; signed in, it shows a matter (story data) with its phase drawn from the practice's own steps, the next deadlines, the budget by phase, the team, and the documents the account can open. Counsel accounts also get the counsel desk.
  • Sign-in uses Raytha's built-in login page, restyled to match. There is no registration form: in the story, the matter team sets up a client's account when the engagement letter is signed.

What is in the kit

Six content types (practice areas, attorneys, representative matters, insights, offices, client library documents), two user groups, site pages for The firm, Notices, Search and the client room, menus, and generated attorney portraits — all rebuildable with one command from the kit in the examples repository. Route check: 64 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.