Sign In

We're the bridge between marketing ambition and financial wisdom. Born from the frustration of seeing e-commerce companies chase growth at any cost, we built a platform that turns complex customer data into simple profit signals.

Ready to turn your marketing budget into pure rocket fuel? 🚀

Drop us a line at hello@headw.ai and let's explore how we can boost your ROI. (We promise the demo will be worth your time!)

© Copyright 2026 Headwai. All Rights Reserved.

    Legal
    • Privacy Policy

    Features Overview

    Send emails and notifications to your users.

    Note: This is mock/placeholder content for demonstration purposes.

    The application includes email functionality for transactional messages and user notifications.

    Email Configuration

    Supabase Email (Default)

    By default, emails are sent through Supabase:

    • Authentication emails (sign-up, password reset, magic links)
    • Email verification
    • Email change confirmation

    Custom SMTP

    For transactional emails, configure your own SMTP provider:

    # .env
    SMTP_HOST=smtp.example.com
    SMTP_PORT=587
    SMTP_USER=your-username
    SMTP_PASSWORD=your-password
    SMTP_FROM_EMAIL=noreply@yourdomain.com
    SMTP_FROM_NAME=Your App Name
    

    Sending Emails

    Using the Email Service

    import { sendEmail } from '~/lib/email/send-email';
    
    await sendEmail({
      to: 'user@example.com',
      subject: 'Welcome to Our App',
      html: '<h1>Welcome!</h1><p>Thanks for signing up.</p>',
    });
    

    Using Email Templates

    Create reusable email templates:

    // lib/email/templates/welcome-email.tsx
    import { EmailTemplate } from '~/lib/email/email-template';
    
    interface WelcomeEmailProps {
      name: string;
      loginUrl: string;
    }
    
    export function WelcomeEmail({ name, loginUrl }: WelcomeEmailProps) {
      return (
        <EmailTemplate>
          <h1>Welcome, {name}!</h1>
          <p>We're excited to have you on board.</p>
          <a href={loginUrl}>Get Started</a>
        </EmailTemplate>
      );
    }
    
    // Send the email
    import { render } from '@react-email/render';
    import { WelcomeEmail } from '~/lib/email/templates/welcome-email';
    
    const html = render(
      <WelcomeEmail name="John" loginUrl="https://app.com/login" />
    );
    
    await sendEmail({
      to: 'john@example.com',
      subject: 'Welcome to Our App',
      html,
    });
    

    Email Types

    Transactional Emails

    Emails triggered by user actions:

    • Welcome emails
    • Order confirmations
    • Password resets
    • Account notifications
    • Billing updates

    Marketing Emails

    Promotional and engagement emails:

    • Product updates
    • Feature announcements
    • Newsletters
    • Onboarding sequences

    Email Providers

    Recommended Providers

    Resend - Developer-friendly email API

    npm install resend
    
    import { Resend } from 'resend';
    
    const resend = new Resend(process.env.RESEND_API_KEY);
    
    await resend.emails.send({
      from: 'noreply@yourdomain.com',
      to: 'user@example.com',
      subject: 'Welcome',
      html: emailHtml,
    });
    

    SendGrid - Comprehensive email platform

    npm install @sendgrid/mail
    
    import sgMail from '@sendgrid/mail';
    
    sgMail.setApiKey(process.env.SENDGRID_API_KEY);
    
    await sgMail.send({
      to: 'user@example.com',
      from: 'noreply@yourdomain.com',
      subject: 'Welcome',
      html: emailHtml,
    });
    

    Postmark - Fast transactional email

    npm install postmark
    

    In-App Notifications

    Notification System

    Send in-app notifications to users:

    import { createNotification } from '~/lib/notifications';
    
    await createNotification({
      userId: user.id,
      title: 'New Message',
      message: 'You have a new message from John',
      type: 'info',
      link: '/messages/123',
    });
    

    Notification Types

    type NotificationType = 'info' | 'success' | 'warning' | 'error';
    
    await createNotification({
      userId: user.id,
      title: 'Payment Successful',
      message: 'Your subscription has been renewed',
      type: 'success',
    });
    

    Fetching Notifications

    import { getUserNotifications } from '~/lib/notifications';
    
    const notifications = await getUserNotifications(userId, {
      limit: 10,
      unreadOnly: true,
    });
    

    Marking as Read

    import { markNotificationAsRead } from '~/lib/notifications';
    
    await markNotificationAsRead(notificationId);
    

    Real-time Notifications

    Use Supabase Realtime for instant notifications:

    'use client';
    
    import { useEffect } from 'react';
    import { useSupabase } from '@kit/supabase/hooks/use-supabase';
    
    export function NotificationListener() {
      const supabase = useSupabase();
    
      useEffect(() => {
        const channel = supabase
          .channel('notifications')
          .on(
            'postgres_changes',
            {
              event: 'INSERT',
              schema: 'public',
              table: 'notifications',
              filter: `user_id=eq.${userId}`,
            },
            (payload) => {
              // Show toast notification
              toast.info(payload.new.title);
            }
          )
          .subscribe();
    
        return () => {
          supabase.removeChannel(channel);
        };
      }, [supabase]);
    
      return null;
    }
    

    Email Templates Best Practices

    1. Keep it simple - Plain text and minimal HTML
    2. Mobile responsive - Most emails are read on mobile
    3. Clear CTAs - Make action buttons prominent
    4. Personalize - Use user's name and relevant data
    5. Test rendering - Check across email clients
    6. Include plain text - Always provide text alternative
    7. Unsubscribe link - Required for marketing emails

    Testing Emails

    Local Development

    In development, emails are caught by InBucket:

    http://localhost:54324
    

    Preview Emails

    Use React Email to preview templates:

    npm run email:dev
    

    Visit http://localhost:3001 to see email previews.

    Deliverability Tips

    1. Authenticate your domain - Set up SPF, DKIM, DMARC
    2. Warm up your domain - Start with low volumes
    3. Monitor bounce rates - Keep below 5%
    4. Avoid spam triggers - Don't use all caps, excessive punctuation
    5. Provide value - Only send relevant, useful emails
    6. Easy unsubscribe - Make it one-click simple