A minimal email utility to send emails using your Resend API key.
Send emails from your browser. No code, no accounts, no storage.
- Browser-Based UI: No installation. Open in any modern browser and start sending.
- CORS Proxy: Node.js backend handles API communication (Resend API doesn't accept browser requests directly).
- API Key Privacy: Your Resend API key is sent directly to Resend's API in request headers. Never stored, logged, or persisted on our servers.
- Open Source: Full source code visible. Self-host or audit the security yourself.
- Deploy Anywhere: Railway (easiest), Vercel, Netlify, or any server running Node.js.
Landing Page: https://resendpad.up.railway.app/landing.html
Email Editor: https://resendpad.up.railway.app/index.html
# Terminal 1: Start the API proxy
node api-proxy.js
# Terminal 2: Open the app in browser
# Landing page: http://localhost:3001/landing.html
# Email editor: http://localhost:3001/index.html
# Or open index.html directly (auto-detects localhost:3001)- Paste your API key into the form (stored only in browser memory)
- Load your verified domains from Resend with "Load Domains" button (or enter From email manually)
- Enter recipient email and subject
- Compose your email using the Quill rich text editor with formatting toolbar
- Click Send – your email is delivered via Resend immediately
- Use Reset to clear all fields and start fresh (focus returns to editor for easy typing)
- Rich Text Editor: Format emails with bold, italic, underline, headings, lists, links, code blocks, and clean formatting using Quill.js
- Domain Loader: Fetch verified sender domains directly from your Resend account with one click
- Reply Threading: Reply to existing email threads with proper Message-ID and References headers (Gmail/Outlook compatible)
- Reset Function: Clear all form fields and editor content with Reset button that properly returns focus to editor
- Batch Sending: Reuse form values – just change the recipient email for each send
- Clear Error Messages: Know exactly why a send failed (invalid domain, auth errors, etc.)
- Mobile Friendly: Works on desktop, tablet, and mobile browsers
- SEO Landing Page: Dedicated page at
/landing.htmlto drive organic search traffic - No Account Required: BYOK (Bring Your Own Key) – just paste your Resend API key
- Email-Optimized HTML: Automatically adds inline styles to fix spacing issues in Gmail/Outlook
New in v2.0: Reply to emails and keep them in the same conversation thread.
How it works:
- Open the original email in Gmail
- Click ⋮ (three dots) → Show original
- Copy all text (Ctrl+A, Ctrl+C or Cmd+A, Cmd+C)
- In Resend Pad, click "+ Show" under "Reply to Thread"
- Paste into the text area and click "Extract & Auto-Fill"
- The form automatically fills:
- To field (sender's email)
- Subject (with "Re: " prefix)
- Threading headers (Message-ID, References)
- Type your reply and send!
Your reply will appear in the same conversation thread for both you and the recipient.
Works with:
- ✅ Gmail
- ✅ Outlook / Office 365
- ✅ Apple Mail
- ✅ Thunderbird
- ✅ Most email clients that support RFC 2822 threading
- Your API key never leaves your control – Sent directly to Resend's API in the Authorization header. We don't store, log, or persist it.
- No email content is logged – Email subject and body are forwarded to Resend and discarded. No database, no history, no backups.
- No user accounts or tracking – No sign-up, no login, no email collection, no analytics, no cookies.
- Transparent & auditable – Full source code on GitHub. Self-host if you want complete control.
- Stateless design – The proxy doesn't store anything. Restart the server and everything is cleared.
- A modern web browser (Chrome, Firefox, Safari, Edge)
- A Resend account with an API key
- At least one verified domain in Resend (or manually entered verified domain)
- Go to resend.com
- Sign up or log in
- Go to Settings → API Keys
- Create a new API key with "Full Access" permissions
- Copy and paste into Resend Pad
Note: "Sending Only" keys cannot list domains, but can send emails if you manually enter the From address.
- In Resend dashboard, go to Domains
- Add a new domain and verify ownership (DNS records)
- Once verified, you can use that domain in Resend Pad
# Already deployed and live at:
# https://resendpad.up.railway.app
# To redeploy after changes:
railway upHow it works:
- Railway runs
node api-proxy.json the default PORT - Frontend files served from root
/:index.html(email editor)landing.html(SEO landing page)sitemap.xmlandrobots.txt(SEO metadata)
- API calls proxied through
/api/*endpoints - Auto-detects production domain and routes accordingly
New to Railway? Deploy to Railway with referral – both of us get $5 credit.
# 1. Clone repo
git clone https://github.com/rozetyp/resend-email.git
cd resend-email
# 2. Deploy with your provider
# Vercel/Netlify: Connect repo, auto-deploys
# Own server: npm install && node api-proxy.js
# 3. App auto-detects environment
# - Local: uses http://localhost:3001
# - Production: uses your deployed domain# Just open index.html in your browser
# API calls will attempt localhost:3001
# Start proxy with: node api-proxy.jsFrontend:
- HTML5 + Vanilla JavaScript (no frameworks)
- Tailwind CSS (CDN) for styling
- Quill.js for rich text editing (replaced Pell for better reliability)
- SEO-optimized landing page with comprehensive meta tags
- Favicon (inline SVG)
- Google Site Verification for Search Console
Backend:
- Node.js + native HTTP server
- Proxies requests to Resend API
- Serves static files (index.html, landing.html, sitemap.xml, robots.txt)
- Handles CORS automatically
- Auto-detects environment (localhost vs. production)
Browser Your Server (api-proxy.js) Resend API
│ │ │
├─ POST /api/send ────────────>│ │
│ (with Bearer token) ├─ POST /emails ──────────────>│
│ │ (with your API key) │
│ │<─ 200 OK ────────────────────┤
│<─ 200 OK ─────────────────────┤ │
│ │ │
Why a proxy?
- Resend API doesn't support CORS from browsers
- Proxy handles CORS transparently
- API key is passed through, never stored or logged
- Request status logged only (no email content, recipients, or subjects)
This tool:
- ❌ Does NOT collect your personal data
- ❌ Does NOT log email content (only request status)
- ❌ Does NOT use analytics or trackers
- ✅ IS 100% open source
- ✅ CAN be self-hosted for complete privacy
API Key Safety:
- Your key is sent in HTTP headers only
- Never logged to disk in production
- Lost when container restarts (no persistence)
- You can rotate keys anytime in Resend dashboard
Open source. Use freely.
Issues? Questions?
- Open an issue on GitHub
- Check the source code in
index.htmlandapi-proxy.js