Authors
Persona records for post bylines — separate from the workspace's actual members.
Authors are persona records you attach to posts as bylines. They are not Clog members and they are not linked to user accounts. A workspace can have any number of authors; each is a stand-alone profile with a name, slug, optional avatar, bio, credentials, social links, and a JSON-LD Person scaffold for SEO.
The distinction matters: your designer Ana might write three posts as Ana Reyes (an Author persona) while never being added to the workspace as a Member. Or a writer might be both — a Member who signs into Clog, and an Author whose byline appears on the post. Authors and Members are orthogonal.
You need authors:read to view authors and authors:write to create, edit, or delete them.
The Authors page
Open Authors from the workspace sidebar. Each row shows the avatar, display name, slug, post count, and an active/inactive status. Search by name or slug.
Click New author to open the create drawer, or click a row to edit.
Create or edit an author
The form is a drawer with these fields:
Identity
| Field | Notes |
|---|---|
| Display name | The byline shown on posts. e.g. Jane Doe. |
| Slug | Lowercase letters, digits, dashes. Unique within the workspace. Auto-derives from the display name. Used in /authors/<slug> on consumer sites. |
| Credentials | A short string shown next to the name. e.g. PhD, Senior Engineer at Acme. Optional. |
| Bio | A paragraph or two about the author. Optional. Markdown is fine. |
| Avatar | A media row from the workspace library. Click to pick or upload — see Media. |
| Same-as URLs | A list of social/professional profile URLs (Twitter/X, LinkedIn, personal site, GitHub, ORCID, ...). These ship to consumers in the Person JSON-LD payload so search engines can link the byline to the author's external presence. |
| Active | Off-by-default to inactive — useful when an author leaves but their old posts still need their byline. Inactive authors are filtered from the byline picker on the Post editor by default, but stay attached to their existing posts. |
Person (JSON-LD scaffold)
A second section in the drawer fills in Schema.org Person properties that ship out on the author's jsonLd payload (returned on every GET /external/authors/:slug response). All are optional:
| Field | Schema.org property | Example |
|---|---|---|
| Job title | jobTitle | Senior Engineer |
| Works for | worksFor | Acme Inc. |
| Knows about | knowsAbout | Distributed systems, Postgres, observability |
| Alumni of | alumniOf | Imperial College London |
| Awards | award | ACM Distinguished Researcher 2024 |
| Honorific prefix / suffix | honorificPrefix, honorificSuffix | Dr., PhD |
These fields show up in the assembled jsonLd graph as a Person node embedded inside a ProfilePage for the author's standalone page. Consumer sites can stamp it as-is.
SEO
Authors carry the same SEO meta group as posts and pages — title, description, canonical, focus keyword, robots, Open Graph, Twitter Card. Click the SEO tab in the drawer. Members with seo:write can edit these without authors:write.
Authors are not Members
Worth repeating because it trips people up:
- Members are people who sign into Clog. They have permissions; they make changes.
- Authors are bylines. They exist as a separate row. They have no login, no permissions, no email tied to them.
When a Member writes a post they pick an Author from the dropdown. If the Member writes under their own name, you'd typically create an Author with the same name and pick it. If the Member is a ghostwriter, they pick a different Author. If two Members co-author a post… v1 doesn't support multiple authors per post — pick one byline.
Deleting an author
The Delete action removes the author row.
Delete is blocked with a 409 error if any post is still attached to this author. The dashboard surfaces the error in the delete dialog. Options:
- Reassign the posts. Open each post and pick a different author, or use the bulk-edit flow.
- Soft-retire instead. Toggle the author to Inactive — they vanish from the byline picker on new posts but stay attached (and visible on the public site) for the posts they already authored. This is the usual answer.
There is no auto-reassignment in v1 — Clog deliberately doesn't pick a replacement byline for you.
Where they show up on the API
A post read response (GET /external/posts/:slug) carries the full author row embedded, including the avatar media (resolved to a public URL). Consumers render the byline + headshot in one round-trip — no follow-up /authors/:slug call needed.
If a consumer wants to render a standalone author page (/authors/<slug> on their site), GET /external/authors/:slug returns the author plus a jsonLd payload that wraps a ProfilePage and embeds the Person node from the Person fields above.