summaryrefslogtreecommitdiff
path: root/supabase/email-templates.html
diff options
context:
space:
mode:
authorFuwn <[email protected]>2026-02-07 01:42:57 -0800
committerFuwn <[email protected]>2026-02-07 01:42:57 -0800
commit5c5b1993edd890a80870ee05607ac5f088191d4e (patch)
treea721b76bcd49ba10826c53efc87302c7a689512f /supabase/email-templates.html
downloadasa.news-5c5b1993edd890a80870ee05607ac5f088191d4e.tar.xz
asa.news-5c5b1993edd890a80870ee05607ac5f088191d4e.zip
feat: asa.news RSS reader with developer tier, REST API, and webhooks
Full-stack RSS reader SaaS: Supabase + Next.js + Go worker. Includes three subscription tiers (free/pro/developer), API key auth, read-only REST API, webhook push notifications, Stripe billing with proration, and PWA support.
Diffstat (limited to 'supabase/email-templates.html')
-rw-r--r--supabase/email-templates.html489
1 files changed, 489 insertions, 0 deletions
diff --git a/supabase/email-templates.html b/supabase/email-templates.html
new file mode 100644
index 0000000..a713191
--- /dev/null
+++ b/supabase/email-templates.html
@@ -0,0 +1,489 @@
+<!--
+ asa.news — Supabase Auth Email Templates (13 total)
+ Copy each section into the corresponding template in:
+ Supabase Dashboard > Authentication > Email Templates (1-6)
+ Supabase Dashboard > Authentication > Threat Protection > Email Templates (7-13)
+
+ Auth template variables:
+ {{ .SiteURL }} — your site URL
+ {{ .ConfirmationURL }} — the action link
+ {{ .Token }} — OTP code (6 digits)
+ {{ .TokenHash }} — hashed token
+ {{ .RedirectTo }} — redirect URL after action
+ {{ .Email }} — user's email address
+
+ Security template variables:
+ {{ .Email }} — user's email address
+ {{ .OldEmail }} — previous email (email change)
+ {{ .NewEmail }} — new email (email change)
+ {{ .OldPhone }} — previous phone (phone change)
+ {{ .Phone }} — new phone (phone change)
+ {{ .Provider }} — identity provider name (link/unlink)
+ {{ .FactorType }} — MFA factor type (MFA add/remove)
+-->
+
+
+<!-- ============================================================ -->
+<!-- 1. CONFIRM SIGNUP -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">confirm your account</h2>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ tap the link below to verify your email address and activate your account.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px">
+ <a href="{{ .ConfirmationURL }}"
+ style="display:block;padding:12px 0;background-color:#1a1a1a;border:1px solid #363636;color:#ffffff;text-align:center;text-decoration:none;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace;font-size:13px">
+ confirm email
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:24px 32px 32px">
+ <p style="margin:0;font-size:12px;line-height:1.6;color:#666666">
+ if you didn't create an account, you can safely ignore this email.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- 2. INVITE USER -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">you've been invited</h2>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ you've been invited to join asa.news. tap the link below to accept and set up your account.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px">
+ <a href="{{ .ConfirmationURL }}"
+ style="display:block;padding:12px 0;background-color:#1a1a1a;border:1px solid #363636;color:#ffffff;text-align:center;text-decoration:none;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace;font-size:13px">
+ accept invitation
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:24px 32px 32px">
+ <p style="margin:0;font-size:12px;line-height:1.6;color:#666666">
+ if you weren't expecting this invitation, you can safely ignore this email.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- 3. MAGIC LINK -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">your sign-in link</h2>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ tap the link below to sign in to your account. this link expires in 10 minutes.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px">
+ <a href="{{ .ConfirmationURL }}"
+ style="display:block;padding:12px 0;background-color:#1a1a1a;border:1px solid #363636;color:#ffffff;text-align:center;text-decoration:none;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace;font-size:13px">
+ sign in
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:24px 32px 32px">
+ <p style="margin:0;font-size:12px;line-height:1.6;color:#666666">
+ if you didn't request this link, you can safely ignore this email.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- 4. CHANGE EMAIL ADDRESS -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">confirm email change</h2>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ tap the link below to confirm changing your email address.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px">
+ <a href="{{ .ConfirmationURL }}"
+ style="display:block;padding:12px 0;background-color:#1a1a1a;border:1px solid #363636;color:#ffffff;text-align:center;text-decoration:none;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace;font-size:13px">
+ confirm new email
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:24px 32px 32px">
+ <p style="margin:0;font-size:12px;line-height:1.6;color:#666666">
+ if you didn't request this change, please secure your account immediately.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- 5. RESET PASSWORD -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">reset your password</h2>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ tap the link below to reset your password. this link expires in 1 hour.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px">
+ <a href="{{ .ConfirmationURL }}"
+ style="display:block;padding:12px 0;background-color:#1a1a1a;border:1px solid #363636;color:#ffffff;text-align:center;text-decoration:none;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace;font-size:13px">
+ reset password
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:24px 32px 32px">
+ <p style="margin:0;font-size:12px;line-height:1.6;color:#666666">
+ if you didn't request a password reset, you can safely ignore this email.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- 6. REAUTHENTICATION -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">confirm your identity</h2>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ enter the code below to verify your identity for this sensitive action.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px" align="center">
+ <p style="margin:0;padding:16px 0;background-color:#1a1a1a;border:1px solid #363636;color:#ffffff;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace;font-size:28px;letter-spacing:0.5em;text-align:center">
+ {{ .Token }}
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:24px 32px 32px">
+ <p style="margin:0;font-size:12px;line-height:1.6;color:#666666">
+ this code expires in 10 minutes. if you didn't initiate this, please secure your account.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- -->
+<!-- SECURITY NOTIFICATION TEMPLATES (Threat Protection) -->
+<!-- Dashboard > Auth > Threat Protection > Email Templates -->
+<!-- -->
+<!-- ============================================================ -->
+
+
+<!-- ============================================================ -->
+<!-- 7. PASSWORD CHANGED -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">your password was changed</h2>
+ <p style="margin:0 0 8px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ the password for your account ({{ .Email }}) was recently changed.
+ </p>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ if this was you, no action is needed.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px 32px">
+ <p style="margin:0;padding:12px 16px;background-color:#1a1a1a;border:1px solid #363636;font-size:12px;line-height:1.6;color:#c08000">
+ if you didn't make this change, reset your password immediately and contact support.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- 8. EMAIL ADDRESS CHANGED -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">your email address was changed</h2>
+ <p style="margin:0 0 8px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ your account email was changed from {{ .OldEmail }} to {{ .Email }}.
+ </p>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ if this was you, no action is needed.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px 32px">
+ <p style="margin:0;padding:12px 16px;background-color:#1a1a1a;border:1px solid #363636;font-size:12px;line-height:1.6;color:#c08000">
+ if you didn't make this change, your account may be compromised. contact support immediately.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- 9. PHONE NUMBER CHANGED -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">your phone number was changed</h2>
+ <p style="margin:0 0 8px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ the phone number on your account ({{ .Email }}) was changed from {{ .OldPhone }} to {{ .Phone }}.
+ </p>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ if this was you, no action is needed.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px 32px">
+ <p style="margin:0;padding:12px 16px;background-color:#1a1a1a;border:1px solid #363636;font-size:12px;line-height:1.6;color:#c08000">
+ if you didn't make this change, your account may be compromised. contact support immediately.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- 10. IDENTITY LINKED -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">new identity linked</h2>
+ <p style="margin:0 0 8px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ a {{ .Provider }} identity was linked to your account ({{ .Email }}).
+ </p>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ if this was you, no action is needed.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px 32px">
+ <p style="margin:0;padding:12px 16px;background-color:#1a1a1a;border:1px solid #363636;font-size:12px;line-height:1.6;color:#c08000">
+ if you didn't link this identity, your account may be compromised. contact support immediately.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- 11. IDENTITY UNLINKED -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">identity unlinked</h2>
+ <p style="margin:0 0 8px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ a {{ .Provider }} identity was removed from your account ({{ .Email }}).
+ </p>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ if this was you, no action is needed.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px 32px">
+ <p style="margin:0;padding:12px 16px;background-color:#1a1a1a;border:1px solid #363636;font-size:12px;line-height:1.6;color:#c08000">
+ if you didn't remove this identity, your account may be compromised. contact support immediately.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- 12. MFA METHOD ADDED -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">two-factor authentication enabled</h2>
+ <p style="margin:0 0 8px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ a {{ .FactorType }} two-factor authentication method was added to your account ({{ .Email }}).
+ </p>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ your account is now more secure.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px 32px">
+ <p style="margin:0;padding:12px 16px;background-color:#1a1a1a;border:1px solid #363636;font-size:12px;line-height:1.6;color:#c08000">
+ if you didn't set this up, your account may be compromised. contact support immediately.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>
+
+
+<!-- ============================================================ -->
+<!-- 13. MFA METHOD REMOVED -->
+<!-- ============================================================ -->
+
+<table width="100%" cellpadding="0" cellspacing="0" style="background-color:#070707;padding:40px 0;font-family:'JetBrains Mono',Menlo,Monaco,'Courier New',monospace">
+ <tr>
+ <td align="center">
+ <table width="480" cellpadding="0" cellspacing="0" style="background-color:#0f0f0f;border:1px solid #363636">
+ <tr>
+ <td style="padding:32px 32px 0">
+ <p style="margin:0 0 24px;font-size:14px;color:#666666">asa.news</p>
+ <h2 style="margin:0 0 16px;font-size:16px;font-weight:400;color:#ffffff">two-factor authentication removed</h2>
+ <p style="margin:0 0 8px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ a {{ .FactorType }} two-factor authentication method was removed from your account ({{ .Email }}).
+ </p>
+ <p style="margin:0 0 24px;font-size:13px;line-height:1.6;color:#aaaaaa">
+ your account now has fewer authentication factors.
+ </p>
+ </td>
+ </tr>
+ <tr>
+ <td style="padding:0 32px 32px">
+ <p style="margin:0;padding:12px 16px;background-color:#1a1a1a;border:1px solid #363636;font-size:12px;line-height:1.6;color:#c08000">
+ if you didn't remove this factor, your account may be compromised. reset your password and contact support immediately.
+ </p>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+</table>