Skip to content
On this pageGetting In: Passkey Authentication
  1. Getting In: Passkey Authentication
  2. Admin Panel Sections at a Glance
  3. Content Management
  4. Site Settings
  5. Menu Builder
  6. What You Can't Customize Yet
  7. Extending via Plugins

Customizing the EmDash Admin Panel

Ben 4 min read

The EmDash admin panel ships ready to use. You open it at /_emdash/admin, log in with your passkey, and you have a full CMS interface without configuring anything. But there's a meaningful set of things you can customize, and knowing where they live saves you a lot of hunting. This is a tour of what's adjustable, what the defaults are, and what's still on the roadmap.

Getting In: Passkey Authentication

The first time you navigate to /_emdash/admin on a fresh site, you're walked through a setup wizard that creates your admin account using a passkey — no password required. After that, every login is a biometric prompt or security key tap. There's no password to manage, no session cookie to worry about, and no login page that bots can hammer.

Passkey authentication means the admin panel doesn't have a login page in the traditional sense. There's nothing for an attacker to brute-force, no credentials to phish, and no session to hijack.

Admin Panel Sections at a Glance

Here's a map of every section in the admin panel, what it does, and whether it's customizable today:

SectionWhat it doesCustomizable?
ContentCreate, edit, publish, and delete entries across all collectionsVia schema (fields, collections)
MediaUpload, organize, and attach images and filesStorage backend (R2, local, S3)
TaxonomiesManage categories and tags: create, edit, nest, reorderYes — add terms freely
MenusBuild and reorder navigation menus with a drag-and-drop UIYes — fully editable
WidgetsAssign widget blocks to named areas in your themeYes — areas defined in schema
UsersInvite and manage admin users, assign rolesYes — roles and invites
PluginsView installed plugins and their settings pagesVia plugin config
SettingsSite title, tagline, logo, favicon, timezone, and reading settingsYes — fully editable

Content Management

The content section is the heart of the admin panel. You'll see one entry in the sidebar navigation per collection defined in your schema. Click into a collection to see its entries, filter by status (draft, published, scheduled), and open any entry for editing. The Portable Text editor handles rich content including headings, lists, links, embedded blocks, and code.

Drafts and published versions are tracked separately. Editing a published entry creates a new draft; you publish when you're ready to push changes live. The revision history panel shows every published version with a timestamp, and you can restore any previous revision from there.

Site Settings

Under Settings, you'll find the fields your Astro templates pull from getSiteSettings(): site title, tagline, logo image, favicon, timezone, and reading settings like posts-per-page. These are global values that propagate through your templates anywhere you reference them. Changing the site title here updates every page title generated by EmDashHead automatically — no template edits needed.

Menu Builder

The menu builder lets you create and edit named navigation menus. You add items (links to internal pages, external URLs, or taxonomy terms), reorder them by dragging, and nest them to create dropdown structures. In your Astro templates, you pull a menu by name using getMenu("primary"). The menu names are defined in your seed schema — the admin panel lets editors populate and reorder them, but adding a new named menu area requires a schema update.

What You Can't Customize Yet

I want to be direct about the current limits. In EmDash v0.1, the admin panel theme and dashboard layout are not customizable. You can't rearrange the sidebar, change the color scheme, or add custom dashboard widgets. Plugin pages appear in a standardized layout. These are on the roadmap — plugins will eventually be able to contribute dashboard panels — but it's not there yet.

The admin is also English-only in v0.1. If you're running a multilingual site, your public-facing content can be in any language, but the admin interface itself is English. Localized admin UI is a future consideration.

Extending via Plugins

The most powerful way to customize the admin experience is through plugins. EmDash plugins can contribute custom admin pages — these appear as additional items in the admin sidebar under the plugin's namespace. A plugin can add a full settings page, a data visualization panel, a translation management interface, or anything else that makes sense for your workflow. Plugin admin pages are React components rendered in the same admin shell, so they look native to the admin panel.

If you need something the built-in admin doesn't provide, building a plugin is the right path. The plugin system is well-documented and the admin contribution API is stable in v0.1.

Build Your First EmDash Site