Kiln docs
v1.1.0
Get help
● Set up · /admin

The operator console
every setting, page and check.

The operator console is at /admin. It is the MIKODES Admin Kit, included in packages/admin-kit. You set up the whole product here without editing files. Every change is recorded in the audit log, and every settings change is kept as a version you can roll back.

Owner · Manager · ViewerAudit logWrite-only keys2FA

01Console accounts and team

  • The first account is the owner, created with the one-time setup code (see Installation).
  • Team: invite more people as owner, manager or viewer. Viewers can look; managers can change settings and the product pages; only owners can change API keys and builder accounts (invite staff, reset links, disable).
  • Two-factor sign-in (an authenticator app, with recovery codes) for each account. An owner can require it for the whole team.
  • Sign-in protection: repeated wrong passwords lock the account for a while.
  • Audit log: who changed what and when. Secrets are never shown in it.
  • History: every settings save is a version; compare versions and roll back. Settings can be exported and imported as a file (secrets are never exported).

02Settings sections

Brand

FieldWhat it does
Product nameThe builder's name everywhere: sign-in page, header, e-mails, review page, favicon letter. Empty: "Kiln".
TaglineShown on the builder's sign-in page.
Accent colourRe-colours the builder's buttons and highlights, the review page and the favicon.
LogoReplaces the name in the builder's header.
Support email, WebsiteStored with the brand.
Builder title in the browser tabEmpty uses the product name.

Terms of service URL and Privacy policy URL are linked on the builder's sign-in page. Kiln does not write these documents for you. The Disclaimer field is stored but not shown by the builder in this version.

Access

FieldWhat it does
Announcement bannerA line of text shown at the top of the builder for every signed-in user.
Anyone can sign upOff (default): only invited people get an account (agency mode). On: anyone can create an account and gets a workspace on the free plan.
Credits a new self-serve workspace getsCredits given to each new sign-up workspace. Default 0.

AI

Provider, Endpoint URL (OpenAI-compatible) (ai.baseUrl, only for the provider Any OpenAI-compatible endpoint), Model id, Effort (Claude), Workspaces may bring their own AI key, Images for generated sites, Image model (OpenAI). All explained in AI.

Console AI section: provider, endpoint URL, model id, effort and image source

Credits

The price in credits of each AI action: plan a site, write one page (also the price of an AI blog post draft), rewrite one section, translate one page, one AI chat request on a page (credits.chat, default 2), generate one AI image. 0 makes an action free. Failed AI calls are refunded automatically.

Console Credits section with the credit price of each AI action

Hosting

FieldWhat it does
Public URL of this serverRequired. The https address of the builder. Forms, review links, invite links and Stripe use it.
Domain for published sitesSites go live at <site>.<this domain>. Empty: only /s/<site>/. See Hosting.
Badge on sites of plans that keep it, Badge linkA small link in the footer of published sites, e.g. "Made with YourBrand". Empty text: no badge.
Allow analytics code in site settingsLets workspace owners add their own <head> code (for example a verification tag) to their published site. Only enable it for clients you trust: the code runs on their site. Google Analytics, Tag Manager, Plausible and the Meta Pixel do not need it: they have their own fields in the editor's Page tab.
Cloudflare account id, Worker name prefixSee Publishing to Cloudflare.
Console Hosting section: public URL, domain for published sites, badge and Cloudflare account id

Client billing

Sell plans and credit packs, Name on receipts, and Customers can enter promotion codes at checkout (billing.promotionCodes, off by default): when on, Stripe Checkout shows a promotion code field for plans and credit packs. You create the coupons and promotion codes in your Stripe dashboard. See Client billing.

E-mail

FieldWhat it does
SenderA sender on a domain verified in Resend, e.g. Studio <hello@your-agency.example>.
E-mail workspace owners about new form messagesOn by default.

E-mails are sent with your Resend key (Integrations): workspace invites, staff invites, password resets, review decisions and form messages. Without a key and sender nothing is e-mailed, and invite links are shown on screen to copy instead.

Who pays

E-mail is sent through your own Resend account. Resend has a free tier with a daily and monthly limit; above it you pay Resend. See Costs.

Integrations

API keys: Anthropic, OpenAI, OpenRouter, the OpenAI-compatible endpoint (integrations.customApiKey, or CUSTOM_AI_API_KEY in .env; leave it empty for a local Ollama), Pexels, Cloudflare API token, Stripe secret key, Stripe webhook signing secret, Resend. Keys are write-only: they are stored encrypted, can be replaced or tested, but never shown again. Each key except the webhook secret and the OpenAI-compatible endpoint key has a Test button. A key set in .env shows as locked.

Notifications

Webhook URL and Webhook signing secret: the console sends its alerts (for example a failing blocker check) to this URL, signed with the secret in the x-mikodes-signature header. The Send alerts to e-mail field is stored; alert delivery in this version goes to the webhook.

03Product pages

These pages show Kiln's own data inside the console. In a demo console every change is refused.

PageWhat you can do
WorkspacesEvery workspace with its plan, credits, subscription status, sites and members. Create a workspace, change its plan, add or remove credits with a reason (shown in the workspace's credit history).
SitesEvery site in every workspace: status, version, publish date, Cloudflare address, number of form messages, and the hosting address.
UsersEvery builder account. Invite agency staff (e-mail), create a password Reset link (valid 24 hours), Disable or enable an account (signs it out), Make staff / Remove staff. Owners only.
PlansCreate and edit plans and their limits. See Client billing.
Credit packsCreate and edit credit packs.
AI usageThe latest 1,000 AI calls (workspace, action, provider, model, tokens, duration, result, error) and per-model totals for 30 days.
Console Workspaces page with the example workspace, its plan, credits and sitesConsole Sites page listing example sites with status and built-in hosting addressConsole Plans page with plan limits and the New plan form

04Status checks

The status screen runs these checks and links each to the section that fixes it:

CheckSeverityGreen when
AI key workswarningA key is set for the selected provider (and a model id for OpenAI or OpenRouter), or, for an OpenAI-compatible endpoint, the endpoint URL is set. Without one, sites are built as drafts.
Public URL is httpsblockerThe public URL is set and starts with https://.
Sites domain is setinfoAlways green; says where sites are served.
Cloudflare publishing is readyinfoNot used, or both the token and the 32-character account id are set and the token works.
Stripe keys are completewarningBilling off, or both the secret key and the webhook secret are set.
E-mail can be sentwarningA Resend key and a sender are set.
Plans are consistentwarningThere is an active free plan and every active paid plan has a Stripe price id.
Console Status page with failing and passing checks and a Fix button for each

05Revenue and statistics

  • Revenue: only payments Stripe confirmed, split into Plan subscriptions and Credit packs, each with its Stripe reference. See Client billing.
  • Statistics: workspaces, builder accounts, paying workspaces, sites, published sites, form messages, AI calls, failed AI calls and credits spent (credits removed by hand do not count), with a comparison to the previous period where it makes sense.
Console overview: tiles for revenue, workspaces, builder accounts, sites, AI calls, and the Needs you list

06Customization without code

What the console changes without code (name, logo, colours, badge, sign-up, AI, credit prices, plans, domains, legal links), and what needs a code change and a rebuild, is on its own page: Customization.