Skip to content

Goodspeed is in closed beta. Enter your email and we check your invite on the spot: invited accounts start free today, and everyone else joins the waitlist in one click. Get started

Skip to content
Goodspeed

Connect Resend to your Goodspeed app

Transactional email delivered from Supabase Edge Functions: welcome sequences, password resets, and notification digests. Goodspeed wires Resend into every app that needs it at generation time, so you start with a working integration, not a blank config and a documentation tab.

WHAT GETS WIRED IN

Built into every Resend build

Every app Goodspeed generates with Resend includes these wired integrations from the first build. No manual setup required.

ItemDescriptionStrength
Send-email functionAn Edge Function takes a recipient, a subject and an HTML body and hands it to Resend for delivery.Data
API key never bundledRESEND_API_KEY lives as a Supabase secret, so it is not in the app and not reachable from client code.Auth
A template per email typeWelcome, reset and digest bodies are generated in the function, using the app name and branding from its environment.Interface
Auth emails routed through itConfirm-signup and reset-password both use the send-email function instead of the default mailer.Auth

Source: the Goodspeed app foundation · transactional-email

REAL GENERATED CODE

A snippet from a Resend integration the pipeline ships

This pattern is lifted from the engineered plumbing that ships inside every Goodspeed app. The studio generates Resend integration code like this for every app that includes it, not a placeholder you have to fill in yourself.

  1. Edge Function email

    // supabase/functions/send-email/handler.ts
    import { Resend } from 'npm:resend';
    
    const resend = new Resend(Deno.env.get('RESEND_API_KEY'));
    
    Deno.serve(async (req) => {
      const { to, subject, html } = await req.json();
      const { error } = await resend.emails.send({
        from: 'Goodspeed <noreply@goodspeed.app>',
        to, subject, html,
      });
      if (error) return new Response(JSON.stringify(error), { status: 400 });
      return new Response(JSON.stringify({ ok: true }));
    });
GDaily Allergens

Today's log

Gluten
Tree nuts
Shellfish
Dairy
HomeScanLogProfile

START WITH RESEND

Your Resend integration, generated