Acasuso.
← All work

One portal for clients, agents and content

Built the Stratas portal: one admin workspace for customers, users, the CRM, AI agents, fleet usage, analytics, a bilingual blog, AI Opportunity Reports and brand assets, and the place clients sign in to reach the agents they subscribe to.

My contribution

Shaped the concept and information architecture, designed the data model and the invite and access flows, and implemented every admin module and the client-facing side. Deployed the portal and refined it through daily use.

Portal admin home: customers and users, products and services, content and assets in one workspace.Open full-size image ↗
Portal admin home: customers and users, products and services, content and assets in one workspace.

Situation

A consultancy that sells custom AI agents ends up running a small software company. Every client needs an account, the right agents switched on and a way to see what they bought. The team needs a CRM, usage and fee numbers per agent, and one place to keep reports, posts and brand files.

Before the portal, that lived in spreadsheets, separate dashboards and inboxes. The client experience depended on which founder remembered what, and a client who never finished signing up never saw the product they had paid for.

Task

Give clients one place to reach what they pay for, and give the team one place to manage clients, agents and content, without building a heavyweight platform that would take longer to maintain than the products it serves.

Action

Architecture

One workspace, three areas. Customers and users, products and services, content and assets. Each tile opens a module and shows its live count, so the admin home doubles as a status board.

Access granted before signup. Customers get invite codes, and users can be created before they sign up with their agent access already set. The most common onboarding stall, a client who never finishes signing up, disappears because access is ready on day one.

Agents as first-class records. Each agent carries its model, prompts, description and URL, and is assigned to customers from the same screen. The fleet view shows usage and fees per agent and every deployment across customers.

Content where the company already works. A bilingual blog editor, AI Opportunity Reports with autosaved drafts, and a brand asset library (logos, header cards, icons; PNG, SVG and PDF up to 25 MB) live in the same admin, behind the same sign-in.

Built inside the company site. The portal runs in the stratas.no codebase (React, Express, Postgres via Drizzle, session auth with hashed passwords, transactional email through Resend, uploads to object storage), so the public site, the blog and the client area share one deployment and one design system.

Implementation

  • Customers: accounts, invite codes and agent assignment per client.
  • Users: pre-created accounts with agent access managed before signup.
  • CRM: the pipeline of prospects and future customers.
  • Agents and Fleet: model, prompts, description and URL per agent; usage, fees and deployments across customers.
  • Analytics: signups, logins and agent activity across the operating model.
  • Blog, AI Reports and Brand Assets: bilingual posts, report drafts with autosave, and the asset library.

Verification

  • Daily use by the team is the first check: every customer, agent and report change goes through the portal.
  • Sign-in, invite codes and pre-created users are exercised with every new client onboarding.

Result

Agents: each agent with its model, prompts, description and URL, assigned to clients from here. Client agent names blurred.Open full-size image ↗
Agents: each agent with its model, prompts, description and URL, assigned to clients from here. Client agent names blurred.
  • The operating system of the company. At the time of writing: 6 customers, 17 agents, 33 bilingual blog posts, 6 AI Opportunity Reports and 29 brand assets, all managed from one admin.
  • Clients sign in once to reach their subscribed agents and reports.
  • No onboarding stalls from unfinished signups, because access exists before the account does.

Skills evidenced

  1. Product and information architecture for a B2B portal: one admin in three areas, with counts that make the home screen a status board.
  2. Access design: invite codes and pre-created users with agent access set before signup.
  3. Full-stack delivery inside an existing codebase: React, Express, Postgres via Drizzle, session auth, email and file uploads.
  4. Content operations for a bilingual company: blog, reports and brand assets behind one sign-in.

Portable lessons

  1. Grant access before the account exists. It removes the most common reason a paying client never sees the product.
  2. Put the counts on the home screen. A tile that says "17 agents" or "6 reports" turns navigation into a status check.
  3. Keep the client area in the company site when the team is small. One deployment and one design system beat a separate platform to maintain.

Want to discuss the decisions behind it?

Over fifteen years of consulting and growth, and hands-on AI delivery from discovery to daily operations. I can share my CV and talk through how I connect business outcomes with systems that run.

Available for a chat. In person in Stavanger, or remotely worldwide.