diff --git a/package.json b/package.json index ad59394..f47109d 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "@lexical/markdown": "0.35.0", "@lexical/react": "0.35.0", "@payloadcms/db-vercel-postgres": "^3.75.0", + "@payloadcms/email-resend": "^3.85.1", "@payloadcms/next": "^3.75.0", "@payloadcms/richtext-lexical": "^3.75.0", "@payloadcms/storage-vercel-blob": "3.75.0", diff --git a/payload.config.ts b/payload.config.ts index bd5d52b..128bd47 100644 --- a/payload.config.ts +++ b/payload.config.ts @@ -3,6 +3,7 @@ import { lexicalEditor, BlocksFeature } from "@payloadcms/richtext-lexical"; import { MarkdownPasteFeature } from "./features/markdown-paste/feature.server"; import { codeBlock } from "./features/code-block"; import { vercelPostgresAdapter } from "@payloadcms/db-vercel-postgres"; +import { resendAdapter } from "@payloadcms/email-resend"; import { vercelBlobStorage } from "@payloadcms/storage-vercel-blob"; import path from "path"; import { fileURLToPath } from "url"; @@ -42,6 +43,11 @@ export default buildConfig({ connectionString: process.env.DATABASE_URI || "", }, }), + email: resendAdapter({ + defaultFromAddress: process.env.RESEND_FROM_ADDRESS || "onboarding@resend.dev", + defaultFromName: process.env.RESEND_FROM_NAME || "celeroncoder", + apiKey: process.env.RESEND_API_KEY || "", + }), plugins: [ vercelBlobStorage({ collections: { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 0e72834..9b19039 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -23,6 +23,9 @@ importers: '@payloadcms/db-vercel-postgres': specifier: ^3.75.0 version: 3.75.0(@types/pg@8.11.6)(payload@3.75.0(bufferutil@4.1.0)(graphql@16.12.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) + '@payloadcms/email-resend': + specifier: ^3.85.1 + version: 3.85.1(payload@3.75.0(bufferutil@4.1.0)(graphql@16.12.0)(typescript@5.9.3)(utf-8-validate@6.0.6)) '@payloadcms/next': specifier: ^3.75.0 version: 3.75.0(@types/react@19.2.7)(graphql@16.12.0)(monaco-editor@0.55.1)(next@16.1.1(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(sass@1.77.4))(payload@3.75.0(bufferutil@4.1.0)(graphql@16.12.0)(typescript@5.9.3)(utf-8-validate@6.0.6))(react-dom@19.2.3(react@19.2.3))(react@19.2.3)(typescript@5.9.3) @@ -1088,6 +1091,12 @@ packages: peerDependencies: payload: 3.75.0 + '@payloadcms/email-resend@3.85.1': + resolution: {integrity: sha512-yUXcCXb2tJ0ktAzfGlmgo7CLhUDgSwWoc6S+BAkmsDSW89TUYFWzByUT1M+eJpoxIDByQ8x/ghndOyqgVbWoEg==} + engines: {node: ^18.20.2 || >=20.9.0} + peerDependencies: + payload: 3.85.1 + '@payloadcms/graphql@3.75.0': resolution: {integrity: sha512-FJ5BSuSIlRUWGZS58hrGKHeXBjBIWadLxlH6X7eOeTRkWZ8hfYNE/QXNhGByannvsfneke/WKUIobm50RApo7w==} hasBin: true @@ -3732,6 +3741,10 @@ snapshots: - sql.js - sqlite3 + '@payloadcms/email-resend@3.85.1(payload@3.75.0(bufferutil@4.1.0)(graphql@16.12.0)(typescript@5.9.3)(utf-8-validate@6.0.6))': + dependencies: + payload: 3.75.0(bufferutil@4.1.0)(graphql@16.12.0)(typescript@5.9.3)(utf-8-validate@6.0.6) + '@payloadcms/graphql@3.75.0(graphql@16.12.0)(payload@3.75.0(bufferutil@4.1.0)(graphql@16.12.0)(typescript@5.9.3)(utf-8-validate@6.0.6))(typescript@5.9.3)': dependencies: graphql: 16.12.0