diff options
| author | Fuwn <[email protected]> | 2026-02-07 01:42:57 -0800 |
|---|---|---|
| committer | Fuwn <[email protected]> | 2026-02-07 01:42:57 -0800 |
| commit | 5c5b1993edd890a80870ee05607ac5f088191d4e (patch) | |
| tree | a721b76bcd49ba10826c53efc87302c7a689512f /supabase/email-templates.html | |
| download | asa.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.html | 489 |
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> |