Feature request: open signup + public subscriber profiles #1315
marcusbellamyshaw-cell
started this conversation in
Ideas
Replies: 1 comment 1 reply
|
I am quite wary about this even though we do have the surbscriber type, because it opens up a much larger attack surface than currently where there is no untrusted access to admin. I would be open to ideas though, possibly an entirely separate type of account, not shared with |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Why this matters
The primary driver is comments. Comments are one of the most reliable engagement loops in publishing — readers who comment are significantly more likely to return, share content, and build a habit around the site. For a local history publication, they also generate user-contributed context (corrections, personal memories, local knowledge) that improves the content itself.
Emdash already has everything needed on the backend: the comment submission API, moderation queue, rate limiting, spam protection, and admin tooling are all fully built and production-ready. The authenticated user path in the comment endpoint is already wired — when a logged-in subscriber comments, their name and email are filled automatically from their account. The
CommentsandCommentFormcomponents fromemdash/uiare already live on post pages. The gap is almost entirely in the signup flow and two small config/API additions to the core. There is no new data model to design, no comment storage to build, no moderation system to write, and no comment UI to build.The account/profile layer exists mainly to give comments a human face: a name, an avatar, a profile page that makes returning commenters feel like part of the community rather than anonymous form submitters. Without it you can still use anonymous commenting, but named accounts tied to real people produce higher-quality discussion and stronger retention.
What already works (no changes needed)
POST /_emdash/api/comments/:collection/:contentIdwith rate limiting, honeypot, moderation queue, and authenticated-user detectionCommentsandCommentFormfromemdash/uiare already available and wired into post pagesThree core gaps (changes to Emdash itself)
1. Open signup
Self-signup (
/_emdash/api/auth/signup/request) is gated by theallowed_domainstable. There is no "allow any email" mode — you have to enumerate every email provider.Request: Add an
open: trueoption toselfSignupinauthConfigSchemathat bypasses domain gating. Whenopen: true, any email is accepted and assigneddefaultRole.2. Magic link as primary signup path
New users must go through email-verify → passkey registration. The magic link flow only works for existing users. For a general-public audience, passkey registration during signup is too much friction.
Request: Make magic link work as a zero-friction signup path:
This means a reader can sign up by entering their email — one click in their inbox and they are in.
3. Profile edit API for subscribers
POST /_emdash/api/auth/meonly supportsdismissWelcome. There is no endpoint for a subscriber to update their ownname,avatar_url, ordatablob.Request: Add
PATCH /_emdash/api/auth/meaccepting{ name?, avatarUrl?, bio? }, gated toauth:manage_own_credentials(SUBSCRIBER level). Bio can live inuser.data.bio.Site-level work (not core changes)
Once the three items above land, the remaining work is standard Astro pages and components:
/accountand/account/editpages/profile/[username]public profile pageSuggested implementation order
PATCH /api/auth/meAll reactions