Skip to content

Admin panel

An admin panel for the people who run your product

Seed ships an operator area on its own host. Your team finds a person, sees their sign-in methods, sessions and groups, and helps them: ends a session, sends a password-reset link, refunds a payment. Every action asks first and lands in the audit log.

45 seconds · No sound · Sample data

Read what the video shows

Modules

Eight modules, one per job

Each module is one entry in the admin's icon rail. Add your own by copying one: the steps are in docs/admin-modules.md.

Dashboard

The product at a glance over the last 30 days: people, sign-ups, who is active, groups and notes.

Users

Everyone with an account. Open a person to block them, end a session or send a password-reset link.

Groups

Every group, its owner and its members. Manage members and invitations, or hand a group to another member.

Billing

Who pays, what they pay and what you earn. Refund a payment, give time at no charge or cancel a subscription.

Newsletter

Who gets the newsletter and what it sent. Export the list as CSV.

Audit log

Every sign-in, account change, group change and operator action, newest first. Export it as CSV.

System

The health of the database, the cache, the job queue and the backup. Run a failed job again.

API tokens

Every API token, whose it is and when it was last used.

Roles

Nobody acts on an equal or higher role

Operators work in tiers. A higher role can do everything a lower one can, and no one can act on a person whose role is equal to or higher than their own.

Operator
Day-to-day support: find people, end sessions, send password-reset links, manage groups.
Supervisor
Also refunds payments, cancels a subscription at once and hands a group to another member.
Administrator
Also gives roles, any role below their own.
  • Signing in to the admin asks for the second factor of every operator who has turned one on.
  • Anyone below operator gets "page not found", as if the admin did not exist.
  • Every action asks first and is written to the audit log.
  • The admin reads counts and account facts, never the content of a person's notes.
Not built yet
  • Translations: the admin app is English only (issue #275)
  • Signing in as a person to see what they see
Read the admin app's code

What the video shows

The video has no sound.

  1. A title card: "Seed's admin panel, built for support work."
  2. On Users, the operator types "novak" into the search. The list narrows to one person, Priya Novak, and the video zooms in on the field and the result.
  3. Priya Novak's page opens. Its Sessions tab lists her two signed-in devices: Firefox on Windows and Safari on iPhone.
  4. The operator chooses "End all". A dialog asks them to confirm; they confirm, and the list empties.
  5. The audit log's newest row reads "Sessions ended", about Priya Novak, done by the operator.
  6. Groups lists every group with its owner. The operator opens one, Product team, and sees its members.
  7. Newsletter shows 40 subscribers, none pending and 20 who joined in the last 30 days, zoomed in on those numbers.
  8. From the account menu, the operator switches the theme from dark to light.
  9. An end card: "Free and MIT-licensed. The code is on GitHub."

The people and groups in the video are made-up sample data.

Download the video (MP4, 3 MB)

Read the code, then make it yours

The admin app lives in the same repository as the product, runs on its own host, and is free under the MIT licence. It is not part of the public demo, because operators there would see real sign-ups.