Second factor
Authenticator app is enrolled.
Scan the QR code or open the link on your phone, then enter the 6-digit code.
Authenticator linkor
magj.dev admin
Verifying access…
When MFA is enabled, you will set up or verify an authenticator app and passkey on the next step.
Authoring First
Open the draft and stay there.
Compose short-form posts (notes, quotes, code, photos) or open the reference editor for long-form work. Operations stay here.
References
—
Drafts in flight
—
Users
—
Resume
Pick up where you left off
Open a reference draft once and it will appear here.
Operations
Keep the old tools close
Recent drafts
Open the active work directly
Recent reference drafts will appear here.
Metrics
Total users
—
Active this month
—
Translations (month)
—
Summaries (month)
—
Cache entries
—
Input tokens (month)
—
Output tokens (month)
—
Token usage by feature
—
Reports
Draft previews from the latest deploy. Open a card to preview.
Loading…
Blog
Start with the body. Save draft stores a working copy; publish promotes it to the live post. Metadata lives in the dock below and can be generated after the article has substance.
Body First
Write the post while the screen stays focused on the article.
Title, summary, cover, and publishing metadata stay out of the way until you need them.
AI assist
Calls the server-side AI gateway. Use it for rewrite or editing instructions without leaving the draft.
References
Write the body first, then use the dock for summary, dates, and ordering. Save draft stores a working copy; publish writes the live reference.
Reference Writer
Keep the knowledge page front and center.
Nested paths are created in the popup flow. Summary, order, and date live in the dock underneath.
AI assist
Send rewrite or editing instructions through the server-side AI gateway.
Zip import
Zip must contain .md paths that map under src/content/references/. The pipeline runs normalize → LLM revise → ensemble judge → publish.
Billing
Live subscriber usage for the current meter month. Refreshes automatically while this tab is open.
Data plane
Subscribers
—
Active this period
—
Metered API calls
—
Input tokens
—
Output tokens
—
| Subscriber | Status | Verified | Translation | TL;DR | Quick read | Visits | In tok | Out tok | Charges (USD) |
|---|---|---|---|---|---|---|---|---|---|
| Open this tab to load billing. | |||||||||
Users
| User ID | Phone hash | Last login | Translations | TL;DR | Quick read | Visits | Input tok | Output tok | Custom limits | |
|---|---|---|---|---|---|---|---|---|---|---|
| Loading… | ||||||||||
Translations
UI strings
Post metadata
Cache
| Slug | Type | Key | Cached at | |
|---|---|---|---|---|
| Loading… | ||||
Live
Manage published short-form posts. For photo posts, useCompose. Public feed lives at/posts.
New note
Open this tab to load notes.
Snippets
Publish code snippets with markdown notes. They go live immediately on /snippets.
New snippet
Open this tab to load snippets.
Config
LLM Judge
Evaluate content against a rubric using the AI gateway.
Image Policy
Global guardrails prepended to every image generation call.
Prompt Templates
Versioned image generation prompts.
Open blog draft
Browse saved drafts and live posts, or jump straight into a new body-first draft.
No blog files match this search.
New blog draft
Set the title once, tweak the slug if needed, then start writing in the main editor.
Pathsrc/content/blog/
Open reference
Browse nested reference pages, or start a new one with a parent path and generated slug.
No references match this search.
New reference page
Choose a parent folder, confirm the slug, then write in the main editor.
Pathsrc/content/references/
Insert image
Click an image to insert it.
Loading…
Custom limits
Leave blank to use default. Set 0 to block feature.