Inbox

Loading...

Use this app with your own Gmail account without touching the server's .env. Enter your Gmail address and an app password below. This is stored only in this browser tab's session storage β€” it is never sent anywhere except directly to this app's own API, and is cleared the moment you close the tab or click "Clear". Nothing is written to a database or file on the server.

About this project

App Password Mail Dashboard is a self-hosted, Gmail-styled inbox that runs entirely on a Google App Password β€” a 16-character code Google issues once 2-Step Verification is enabled on an account. No OAuth consent screen, no Google Cloud project, no refresh tokens.

How it's built

  • Backend: Node.js + Express. imapflow reads mail (Inbox/Sent) over IMAP, nodemailer sends mail over SMTP, and tsdav reads Contacts over CardDAV β€” all authenticated with the same app password.
  • Frontend: A single static page (Bootstrap 5) that talks to the backend over a small JSON API β€” no build step, no framework.
  • Search: Uses Gmail's X-GM-RAW IMAP extension so search behaves like Gmail's own search box, not a plain-text scan.
  • Pagination: Mail is fetched 50 at a time, the same way Gmail's own inbox pages results.

How it works

Credentials come from one of two places: the server's own .env file (for a private, self-hosted instance), or the Profile Setup page (for a public deployment, where each visitor can temporarily use their own Gmail account for the session β€” nothing typed there is stored on the server).

Open source

This project is open source and welcomes contributions β€” new modules (Sent search filters, Drafts, labels), bug fixes, UI polish, or documentation. See the GitHub repo and its CONTRIBUTING.md to get started β€” issues and pull requests are both welcome.

Who made this

Built by Ashwani Tiwari.