Skip to content

Repository files navigation

📧 TempMail

Instant disposable email addresses on @linqmail.com. No signup. No data stored. Choose your session duration.

Next.js TypeScript Tailwind License

✨ Features

  • 🚀 One-Click Generation — Get a realistic temporary email on @linqmail.com instantly
  • 📬 Live Inbox — Auto-polls for new messages every 10 seconds
  • ⏱️ Choosable Duration — Select 5, 10, 15, or 30-minute sessions before generating
  • 📖 Message Viewer — Read full email content (HTML rendered safely, supports light/dark contrast)
  • 📋 Copy to Clipboard — One click to copy your temp address
  • 🔒 Privacy-First — No signup, no tracking, direct browser-to-API communication
  • ☀️ Light & Dark Theme — System preference + manual toggling support with brand #ff5a54 accent
  • More Tools link — Quick access to other tools on tools.dhirajarya.in

🛠️ Tech Stack

🚀 Getting Started

Prerequisites

  • Node.js 18+ or Bun 1.0+
  • No API keys needed — GrabMail is free and open

Installation

# Clone the repository
git clone https://github.com/dhirajaryaa/TempMail.git
cd tempmail

# Install dependencies
bun install

# Start development server
bun dev

Open http://localhost:3000 in your browser.

Build for Production

bun run build
bun start

📁 Project Structure

tempmail/
├── src/
│   ├── app/
│   │   ├── mail/             # Client-side dynamic /mail route
│   │   │   └── page.tsx
│   │   ├── globals.css
│   │   ├── layout.tsx
│   │   ├── page.tsx           # Purely static landing page
│   │   ├── robots.ts          # SEO Crawler robots config
│   │   └── sitemap.ts         # Dynamic sitemap generator
│   ├── components/
│   │   ├── active-session.tsx  # Dynamic mailbox lifecycle
│   │   ├── countdown-timer.tsx
│   │   ├── email-display.tsx
│   │   ├── error-boundary.tsx
│   │   ├── footer.tsx         # Static footer component
│   │   ├── generate-button.tsx
│   │   ├── header.tsx         # Reusable responsive header
│   │   ├── inbox.tsx
│   │   ├── message-viewer.tsx
│   │   ├── static-landing.tsx  # Static landing wrapper
│   │   └── theme-toggle.tsx   # Light/dark toggle button
│   └── lib/
│       ├── config.ts          # Dynamic site domain configuration
│       └── mail-api.ts        # GrabMail API service layer
├── PRD.md                     # Product Requirements Document
├── package.json
└── README.md

🔄 How It Works

User selects duration (5/10/15/30m) & clicks "Generate" on homepage (/)
                     │
                     ▼
             Route to /mail
                     │
                     ├── LocalStorage check (restores session if active)
                     └── Fetch grabmail.io/api/v1/mailbox  (pick username@linqmail.com)
                     │
                     ▼
             Active Session
                     │
                     ├── Poll grabmail.io/api/v1/mailbox every 10s directly from browser
                     ├── Click message → Fetch grabmail.io/api/v1/message/{id}
                     └── Timer counts down
                     │
                     ▼
             Session Expires / Delete Clicked
                     │
                     └── Purge storage and redirect back to homepage (/)

🎨 Design

  • Color Scheme: Zinc light/dark backgrounds with brand accent #ff5a54 (no gradients)
  • Typography: Geist Sans & Geist Mono (from Next.js)
  • Layout: Centered, responsive, mobile-friendly

📄 License

MIT License — see LICENSE for details.

🙏 Credits

About

TempMail is a privacy-first, instant disposable email service built with Next.js. Users can generate a random temporary email address with one click and receive emails for a maximum of 5 minutes. No signup, no data stored — pure ephemeral communication.

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages