BREAKING: postgres + saas

This commit is contained in:
Vasily Zubarev
2025-04-03 13:07:54 +02:00
parent 54a892ddb0
commit f523b1f8ba
136 changed files with 3971 additions and 1563 deletions

36
app/landing/actions.ts Normal file
View File

@@ -0,0 +1,36 @@
"use server"
import { resend, sendNewsletterWelcomeEmail } from "@/lib/email"
export async function subscribeToNewsletterAction(email: string) {
try {
if (!email || !email.includes("@")) {
return { success: false, error: "Invalid email address" }
}
const existingContacts = await resend.contacts.list({
audienceId: process.env.RESEND_AUDIENCE_ID as string,
})
if (existingContacts.data) {
const existingContact = existingContacts.data.data.find((contact: any) => contact.email === email)
if (existingContact) {
return { success: false, error: "You are already subscribed to the newsletter" }
}
}
await resend.contacts.create({
email,
audienceId: process.env.RESEND_AUDIENCE_ID as string,
unsubscribed: false,
})
await sendNewsletterWelcomeEmail(email)
return { success: true }
} catch (error) {
console.error("Newsletter subscription error:", error)
return { error: "Failed to subscribe. Please try again later." }
}
}