Repository navigation
emdash-better-auth — email/password + social login (Better Auth) for public-facing EmDash sites #2927
Replies: 2 comments
|
Update — v0.9.3: everything I listed as "future" above now ships. When I posted this it was email/password + Google/GitHub, and I listed 2FA, username login, organizations and Stripe billing as things the Better Auth adapter could unlock later. They're all in now:
Still one line of config ( Open edge I'd still like core feedback on: true content paywalling (#1467) and per-collection authZ (#824) need a read/query seam, which I proposed in #3079. Identity + billing are handled today; content gating is the part that needs core. npm: https://www.npmjs.com/package/emdash-better-auth · repo: https://github.com/theweekendprojects/emdash-better-auth · live demo: https://theweekendprojects.com/auth/sign-up |







Uh oh!
There was an error while loading. Please reload this page.
Sharing an open-source (MIT) auth plugin I built for EmDash: emdash-better-auth.
The problem it solves
EmDash's built-in auth is passkey-first and admin-oriented — perfect for logging into the CMS. But if you want to use EmDash as the backend for a public-facing app or membership site, there's no batteries-included email/password registration flow for your end users: signup page, email verification, password reset, "this person is a real user." You had to build all of that yourself.
This plugin fills that gap in one line of config.
What it does
userstable, so accounts are first-class, RBAC-governed users. No migrations, no second user store.email:deliverprovider such asemdash-smtp.)plugins:manage), with env-var fallback.Why Better Auth (the bigger picture)
The thing I'm most excited about isn't the feature list — it's the foundation. Because sign-ups flow through a Better Auth adapter onto EmDash's user model, this is really a bridge between EmDash and the Better Auth ecosystem. Today it ships email/password + Google/GitHub, but the same adapter opens the door to Better Auth's plugins — more social providers (Apple, Discord, Microsoft, X…), two-factor, username login, organizations/teams, even Stripe billing — as future additions rather than rewrites.
Try it
pnpm add emdash-better-auth— npmQuickstart, requirements, and the security notes are in the README.
One thing building this surfaced: EmDash stores plugin
secret-typed settings in the DB unencrypted (the field is only masked in the UI). I'm planning to open an Ideas discussion proposing encrypted-at-rest storage for plugin secrets — for now the plugin documents the tradeoff and lets you keep the signing key as a Worker secret.This is my first EmDash plugin — feedback, issues, and PRs very welcome. 🙏
All reactions