Key Concepts

Five nouns explain almost every screen in WordPuppi: account, site, content type, theme blueprint, and member. This page tells you which is which, and which of them own the others.

Accounts and seats

An account owns sites and pays the bill. Every user gets a personal account automatically on first sign-in, so you never have to create one to get started. You can also create additional accounts, and you can belong to accounts other people own.

Membership has exactly two roles:

  • owner, who can add and remove members
  • member, who can see the account and work in its sites

Accounts are scoped hard: an account that you are not a member of returns 404, not 403, so you cannot even confirm it exists.

The Team page under Account manages this: current members, pending invitations, and seat checkout. If you belong to more than one account, the sites list grows an account filter and each site card shows which account owns it.

Sites

A site is one published website: its content, its settings, its theme, its media, its forms, its platform connections.

  • The slug is set at creation and is immutable afterwards. It shows up in admin URLs, in API paths, in the media path /media/{site_slug}/..., and it is the default Cloudflare Pages project name.
  • Each site has its own content database. The default is the built-in managed SQLite database; you can instead point a site at your own PostgreSQL or MySQL connection, and migrate an existing site’s content across.
  • Sites belong to an account, and the sites list merges every site from every account you belong to into one list.

Deleting a site removes its content permanently, including posts, pages, and media.

Content types

Content lives in per-site tables with a wpp_ prefix. The API hides the prefix: /api/v1/sites/{slug}/content/posts reads wpp_posts.

Every site is bootstrapped with system types, including wpp_posts, wpp_pages, wpp_tags, wpp_post_tags, wpp_media, and wpp_members, plus the tables that back barks, the distribution queue, subscription tiers, and fediverse state.

On top of those you can define custom content types: a name, a slug, an optional icon, an optional singleton flag, and a list of fields. Fields come in fifteen types (text, long text, rich text, number, boolean, date, datetime, enum, JSON, image, file, relation, URL, email, slug). Creating a type creates its table; adding a field adds a column.

See Posts, Pages, and Content Types for the day to day of authoring.

Themes and blueprints

A theme is a directory of Tera templates plus static assets. WordPuppi ships stock themes, which are read only and shown on the Theme page, and a site picks one.

A blueprint is an editable copy of a theme. Blueprints live in three scopes:

  • Account, shared with every seat on the account
  • Site, owned by this one site
  • User, yours, visible on every account you belong to

At build time the precedence is short: the applied blueprint (the starred one) wins, otherwise the stock theme named in settings. A page can also have a template of its own inside the theme; see Page and Template Designer. Full detail in Themes and Blueprints.

Baxter

Baxter is the AI co-editor built into the admin. It is a chat panel per site that can write and edit content, adjust the theme, schedule barks, and build a whole site from a brief, using the same tools as the MCP server. It is free for its first 15 tool actions, then runs on a provider key you add. See Baxter AI.

Two different things called “members”

This trips people up, so it is worth being blunt.

Account members are people who log into WordPuppi with you. They occupy seats, they are managed on Account, Team, and they are capped and billable.

Site members are your audience. They are rows in the site’s own wpp_members table, managed on the site’s Members page, they can be assigned subscription tiers, and they are who a newsletter would go to. They never log into the admin.

API keys

API keys are minted per user, not per site, and each key grants full access to your account. They are shown once at creation and only as a masked preview after that. You can revoke a key (keeping the audit row) or delete it outright. See API and MCP.

AI provider keys are a separate thing. They belong to Baxter and machine translation, live under Account, AI Provider Keys, and pay for model usage with the provider you chose. See Baxter AI.

Where you can use WordPuppi

The same account and sites work in three places.

The web admin

The admin at app.wordpuppi.com does everything described in these pages.

The desktop app

WordPuppi Desktop is a native macOS app that wraps the same admin, so every screen works the same way. It adds native touches around it: a picker for which server you are signed in to, a resizable terminal dock that opens your own login shell, saving and opening posts as Markdown files, and links that open in your default browser.

It updates itself. The app checks for a new version in the background, from the WordPuppi Desktop releases page on GitHub first and from updates.wordpuppi.com if that is unreachable, downloads it, and then shows a Restart to Update button at the top right of the window. Press it when it suits you, or dismiss the notice. Because the desktop app carries its own copy of the admin, a change to the web admin reaches the desktop when you install the next desktop version.

The mobile app

The iOS and Android app is a control panel for the site you have selected. Its bottom bar has five tabs:

TabWhat it holds
ContentPosts, Pages, Media, Forms, and your custom types. Hold the tab to jump between them.
BarkThe delivery queue, Distribution history, and New bark
BaxterThe same per site chat as the web, with the model picker
SiteThe site dashboard with deploy status, Theme, Settings, Platforms, Cloudflare hosting, Search performance, database and detach screens, and Preview links. Hold the tab for Deploy, Search, or Preview.
AccountTeam and access, plan and billing, API keys, AI keys, Connections & sharing, notifications, and Create with Baxter

A Platforms button above the tab bar is a shortcut to the site’s platforms, or to Connections & sharing while you are in the Account tab. The mobile app mirrors what the web admin can do rather than the whole of it: the Bark tab, for instance, is a queue and history, not the calendar.

Esc