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 company
intranet and employee portal: company news and announcements, an employee directory, departments, a handbook of
policies, events, a library of templates and documents, IT help and a system status page, all behind sign-in.
If you are searching for a self-hosted intranet CMS or an open-source .NET intranet, this is what one looks
like on Raytha. The agent built it on a fresh Raytha 2.0.1 instance. Nobody opened the admin. Every template, content
type, item, page, menu and user group went in through the CLI, from files in a directory.
Why a self-hosted CMS for an intranet
The people who look for an intranet CMS they can host themselves are usually in IT, and they tend to ask for the
same things. Raytha has these built in:
- It runs where you choose. Raytha is a .NET 10 application with PostgreSQL, shipped as a Docker image, so it
can sit on your own servers, on-prem or in your own cloud account, next to the systems it describes.
- You own the code. Raytha is MIT-licensed. The templates, content types and content in this example are plain
files you can keep in your own repository.
- It fits a .NET shop. Teams that already run ASP.NET Core and PostgreSQL can host, patch and extend it with
tools they know.
- Single sign-on. Raytha supports SAML and JWT sign-in, so employees can use the identity provider the company
already has. This demo uses Raytha's email and password sign-in to keep it self-contained.
- Members-only content. User groups decide who sees what, and the templates check them on the server, so
restricted pages are never sent to people who are not allowed to see them.
- No per-seat pricing. It is open source, so there is no license fee per employee.
If you are weighing it against other .NET platforms, see Raytha vs Kentico
and Raytha vs Umbraco.
What was built
Meridian Hub is the intranet of Meridian Waterworks, a fictional maker of water meters with offices in Austin,
Tulsa, Denver and Rotterdam and a manufacturing plant. The site has:
- A sign-in page for anyone who is not signed in. Every URL on the site shows it until you sign in, and the
sign-in page itself has no "create account" link, because accounts are made by the company.
- A personal dashboard that greets you by name, with quick links, the pinned announcement, the latest news, a
to-do list of things that need your attention, upcoming events, new starters, popular IT help and the status of
company systems.
- News and announcements with categories, the department and author, a pinned flag and an "action needed" flag.
- An employee directory of 24 people you can search by name, role or skill and filter by department and office,
with a profile page for each person showing their team, manager, extension, pronouns and what to ask them about.
- Department pages with the mission, headcount, location, chat channel, team members, the policies it owns, and
its news and documents.
- A handbook of 16 policies grouped into sections, with an owner, version, effective date and review date. Three
policies ask employees to confirm they have read them, and two are for people managers only.
- Events grouped by month, from the all-hands to learning sessions, socials, wellbeing and volunteering, each
with an "add to calendar" file.
- A resource library of templates, forms and guides with their format and last update, two of them for managers
only.
- IT help articles by topic, a search box, and a system status page showing which company systems are
working, degraded or under maintenance. A "2 systems need attention" pill sits in the top bar on every page.
- One search box in the top bar that searches people, news, policies, documents and IT help at once.
- An About Meridian page with the company's values, offices and leadership team.
The design is a calm workplace app: a dark teal sidebar with the navigation and quick links, a light canvas, white
cards and one teal accent, with amber and coral kept for things that need attention. Text is set in Geist, with
Geist Mono for labels. The 24 portraits, the news images and the document previews are generated as SVG, so every
image is license-free. On a 390px phone the sidebar becomes a drawer, the dashboard becomes one column and the
directory filters stack.
How sign-in, user groups and managers-only pages work
- Raytha has user accounts and user groups built in. The site has two groups, employees and managers.
The demo users are added to them, and a manager belongs to both.
- The base layout checks the signed-in user's groups on every request. Members of the employees group, and
admins, get the page. Everyone else gets the sign-in page instead, and the page's content is never rendered for
them. Because the check is in the layout, every page, list and search result is covered, including pages added
later.
- Policies and resources have a "Managers only" checkbox. Their templates check for the managers group as well,
so an employee who opens a managers-only policy sees a short "this page is for people managers" note instead of
the policy.
- Policy acknowledgements and the dashboard to-do count are kept in the browser for this demo. A real company
would record them against the user, for example with a Raytha Function that saves each confirmation.
Features, and the Raytha features behind them
| Feature |
How it is built |
| Departments, people, announcements, policies, events, resources, IT help and systems |
Eight content types from one schema document. People, announcements, policies, events and resources use relationship fields to their department or author, with dropdowns for office, category, section, event type and status, checkboxes for pinned, action needed, acknowledgement and managers only, dates, attachments for photos and files, and rich text for bodies. |
| 110 seed items |
Content import from JSON Lines. Items point at their department or author by name, and the portraits and files are uploaded during the import. |
| Sign-in for the whole site |
Raytha login and user groups, checked in the base layout, with a restyled sign-in page and no sign-up link. |
| Managers-only policies and documents |
A checkbox on the item and a user group check in the detail template. |
| Directory search and filters |
A list view with a Liquid template that combines ?q=, ?dept= and ?office=. |
| News, handbook, events, resources, IT help and status |
List views with their own templates: news by category, the handbook by section, events by month, resources as a table, help by topic. |
| Profile, department, policy, event and article pages |
Detail templates per content type that pull related items with get_content_items. |
| Site-wide search |
A site page whose template queries five content types with get_content_items filters. |
| Dashboard and About |
Site pages built from 13 custom widget templates (quick links, pinned news, latest news, to-do, events, new starters, IT help, status, values, offices, leadership, page heading, text). |
| Navigation |
Two menus: the sidebar and the quick links. |
The brief
This is the brief, as given to the agent.
Build a company intranet / employee portal on a fresh Raytha instance with the raytha CLI. No clicking around
the admin.
Look and feel
- Visually impressive, with a design of its own. No wide display fonts.
- Responsive. It has to look good on a phone as well as a desktop.
Content and pages
- A sign-in page for employees.
- Announcements, policies and handbook, department and people directory, events, resources and documents, and IT
help articles.
- The portal is for employees only (Raytha login and user groups).
- No payment or registration forms.
Done means
raytha check passes with no broken routes.
- Screenshots of the result on desktop and mobile, and a walkthrough video.
- A kit in the examples repository that rebuilds the site on a fresh install.
How long it took
About 90 minutes of agent time, from an empty install to raytha check passing on every route, including the visual
design, the generated portraits and documents, the sign-in and user group rules and writing all 110 items.
Rebuild it yourself
The theme, schema, seed content, image generator, page definitions and menus are in the
raytha-examples repository,
with a build.sh that rebuilds the whole site into any Raytha 2.x instance and creates the employees and managers
groups. Point it at your site with RAYTHA_URL and RAYTHA_API_KEY and run it, then add your own users to the
groups.