Inbox
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.
imapflowreads mail (Inbox/Sent) over IMAP,nodemailersends mail over SMTP, andtsdavreads 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-RAWIMAP 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.