Rebrand product as Manyangles and add Authentik

This commit is contained in:
2026-09-08 09:17:25 -04:00
parent 27e2f196eb
commit f5702caaea
37 changed files with 630 additions and 237 deletions
+9 -9
View File
@@ -26,7 +26,7 @@ function chrome(bodyHtml: string) {
<body style="margin:0;padding:24px 12px;background:#f6f1ea">
<div style="max-width:560px;margin:0 auto;color:#2c2416;background:#fff;font-family:Georgia,serif">
<div style="padding:20px 24px;border:1px solid #e8dfd2;border-top:6px solid ${PRIMARY}">
<strong style="font-size:22px;letter-spacing:.04em">Vellum</strong>
<strong style="font-size:22px;letter-spacing:.04em">Manyangles</strong>
</div>
<div style="padding:32px;border:1px solid #e8dfd2;border-top:0">
${bodyHtml}
@@ -74,7 +74,7 @@ async function sendEmail(input: {
const from =
process.env.EMAIL_FROM ??
process.env.RESEND_FROM ??
"Vellum <photos@vellum.test>";
"Manyangles <photos@manyangles.test>";
const readiness = getEmailReadiness();
if (process.env.NODE_ENV === "production" && !readiness.configured) {
throw new Error(
@@ -125,11 +125,11 @@ export async function sendAccountVerificationEmail(message: {
}) {
return sendEmail({
to: message.to,
subject: "Verify your Vellum account",
subject: "Verify your Manyangles account",
html: chrome(`
<h1 style="margin:0 0 20px;font-size:28px">Verify your email</h1>
<p>Hi ${escapeHtml(message.name)},</p>
<p>Confirm this address to finish creating your Vellum host account.</p>
<p>Confirm this address to finish creating your Manyangles host account.</p>
<p style="margin:24px 0">
<a href="${escapeHtml(message.verificationUrl)}"
style="display:inline-block;padding:13px 20px;border-radius:6px;background:${PRIMARY};color:#fff;text-decoration:none;font-weight:700">
@@ -137,7 +137,7 @@ export async function sendAccountVerificationEmail(message: {
</a>
</p>
`),
text: `Verify your Vellum email: ${message.verificationUrl}`,
text: `Verify your Manyangles email: ${message.verificationUrl}`,
referenceId: `account-verification-${referenceHash(message.verificationUrl)}`,
});
}
@@ -149,7 +149,7 @@ export async function sendPasswordResetEmail(message: {
}) {
return sendEmail({
to: message.to,
subject: "Reset your Vellum password",
subject: "Reset your Manyangles password",
html: chrome(`
<h1 style="margin:0 0 20px;font-size:28px">Reset your password</h1>
<p>Hi ${escapeHtml(message.name)},</p>
@@ -164,7 +164,7 @@ export async function sendPasswordResetEmail(message: {
If you did not request this, you can ignore this message.
</p>
`),
text: `Reset your Vellum password: ${message.resetUrl}\n\nThis link expires in one hour.`,
text: `Reset your Manyangles password: ${message.resetUrl}\n\nThis link expires in one hour.`,
referenceId: `password-reset-${referenceHash(message.resetUrl)}`,
});
}
@@ -176,7 +176,7 @@ export async function sendStaffInviteEmail(message: {
}) {
return sendEmail({
to: message.to,
subject: "You're invited to help with a Vellum event",
subject: "You're invited to help with a Manyangles event",
html: chrome(`
<h1 style="margin:0 0 20px;font-size:28px">You're invited</h1>
<p>${escapeHtml(message.inviterName)} invited you to help manage photos for an event.</p>
@@ -187,7 +187,7 @@ export async function sendStaffInviteEmail(message: {
</a>
</p>
`),
text: `${message.inviterName} invited you to help with a Vellum event: ${message.inviteUrl}`,
text: `${message.inviterName} invited you to help with a Manyangles event: ${message.inviteUrl}`,
referenceId: `staff-invite-${referenceHash(message.inviteUrl)}`,
});
}