Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
72 changes: 70 additions & 2 deletions index.html
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!DOCTYPE html>
<!doctype html>
<html lang="en" class="dark:bg-gray-900">
<head>
<meta charset="UTF-8" />
Expand Down Expand Up @@ -908,6 +908,71 @@
</div>
</article>
<!-- End of Account Verification Template -->
<!-- Account & Billing Update Template -->
<article class="wrapper flex flex-col h-full">
<div
class="relative dark:border rounded-lg dark:border-white/[0.1] overflow-hidden transition duration-200 dark:bg-gray-800 bg-[#f4f4f4] w-full aspect-[4/5]"
>
<img
alt="Account Billing Update Thumbnail"
loading="lazy"
class="blur-0 rounded-md w-full h-full object-contain"
style="color: transparent"
src="/account-billing-update-preview.png"
/>
</div>
<div class="flex items-center justify-between mt-4 mb-2">
<h2
class="text-xl font-bold dark:text-neutral-100 text-neutral-700 animate-fade-down animate-delay-[1200ms]"
>
Account & Billing Update Emailer
</h2>
<span
class="inline-flex items-center px-2.5 py-0.5 text-xs font-medium text-blue-700 bg-blue-100 dark:bg-blue-900/50 dark:text-blue-300 rounded-md"
>NEW</span
>
</div>
<p
class="mt-2 text-sm font-normal dark:text-neutral-300 text-neutral-500 animate-fade-down animate-delay-[1300ms]"
>
Flexible SaaS template for plan changes, billing updates, renewal
reminders, and payment notices in a single layout.
</p>

<div class="mt-auto pt-8 flex flex-col sm:flex-row gap-4">
<a
href="./templates/account-billing-update.html"
download="account-billing-update.html"
class="w-full"
>
<button
type="button"
class="text-white w-full inline-flex items-center justify-center gap-2 bg-gradient-to-r from-blue-500 via-blue-600 to-blue-700 hover:bg-gradient-to-br focus:ring-4 focus:outline-none focus:ring-blue-300 dark:focus:ring-blue-800 shadow-md shadow-blue-500/50 dark:shadow-md dark:shadow-blue-800/80 font-medium rounded-lg text-sm px-5 py-2.5 text-center me-2 mb-2"
>
Download
<img
src="/download.svg"
alt="Download"
class="h-4 w-4"
style="filter: brightness(0) invert(1)"
/>
</button>
</a>
<a
class="inline-flex items-center justify-center text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none disabled:opacity-50 border border-input bg-background dark:bg-gray-800 dark:border-gray-700 shadow-sm hover:bg-accent hover:text-accent-foreground dark:hover:bg-gray-700 text-foreground dark:text-white h-11 rounded-xl px-8 group relative gap-2 w-full whitespace-nowrap"
target="_blank"
rel="noopener noreferrer"
href="./templates/account-billing-update.html"
>Live Preview
<img
src="/external-link.svg"
alt="External Link"
class="h-4 w-4"
/>
</a>
</div>
</article>
<!-- End of Account & Billing Update Template -->
<!-- Welcome Onboarding Template -->
<article class="wrapper flex flex-col h-full">
<div
Expand Down Expand Up @@ -1067,7 +1132,10 @@
<p
class="mt-2 text-sm font-normal dark:text-neutral-300 text-neutral-500 animate-fade-down animate-delay-[1500ms]"
>
Reconnect with subscribers using this professionally designed re-engagement email template. Highlights new features, exclusive discounts, and personalized incentives to win back inactive users and boost retention rates.
Reconnect with subscribers using this professionally designed
re-engagement email template. Highlights new features, exclusive
discounts, and personalized incentives to win back inactive users
and boost retention rates.
</p>

<div class="mt-auto pt-8 flex flex-col sm:flex-row gap-4">
Expand Down
Binary file added public/account-billing-update-preview.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
17 changes: 11 additions & 6 deletions scripts/generate-seo.cjs
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,11 @@ const TEMPLATE_METADATA = {
image: "account-verification-preview.png",
title: "Account Verification HTML Email Template",
},
"account-billing-update.html": {
lastmod: "2026-02-07",
image: "account-billing-update-preview.png",
title: "Account & Billing Update Email Template",
},
"welcome-onboarding.html": {
lastmod: "2025-09-19",
image: "welcome-onboarding-preview.png",
Expand Down Expand Up @@ -136,8 +141,8 @@ function injectSeo(htmlPath) {
};
$("head").append(
`\n <script type="application/ld+json">${JSON.stringify(
jsonLd
)}</script>`
jsonLd,
)}</script>`,
);
}

Expand Down Expand Up @@ -183,15 +188,15 @@ function injectSeo(htmlPath) {
: `${canonicalUrl}${image}`;
}
$("head").append(
`\n <meta name="twitter:card" content="summary_large_image" />`
`\n <meta name="twitter:card" content="summary_large_image" />`,
);
$("head").append(`\n <meta name="twitter:title" content="${title}" />`);
$("head").append(
`\n <meta name="twitter:description" content="${desc}" />`
`\n <meta name="twitter:description" content="${desc}" />`,
);
if (image)
$("head").append(
`\n <meta name="twitter:image" content="${image}" />`
`\n <meta name="twitter:image" content="${image}" />`,
);
}

Expand Down Expand Up @@ -335,7 +340,7 @@ function run() {
fs.writeFileSync(path.join(DIST_DIR, "robots.txt"), robots, "utf8");

console.log(
"Enhanced SEO assets generated: sitemap.xml (with image metadata), robots.txt (with detailed rules), canonical tags, JSON-LD"
"Enhanced SEO assets generated: sitemap.xml (with image metadata), robots.txt (with detailed rules), canonical tags, JSON-LD",
);
}

Expand Down
Loading