Open source email, contacts, and calendar

Self-hosted webmail for all your accounts.

Gmail, Outlook, and any IMAP or JMAP account side by side, with your contacts and calendar. Run it on your own machine or on a server.

Take a look around

A little Gofer, right here.

Open a message, explore the calendar, find a contact, or look through settings. Try a different theme while you're here.

Style
Mode
Fictional data · Local preview · Nothing to connect Open larger

What it is

Mail first. Contacts too. And a calendar.

All of it sits in one SQLite database. Tested with over 100k emails across several accounts, no trouble so far. You do not need Postgres. Not for this.

Mail

Threads, attachments, drafts with autosave, signatures, scheduled send, and translation. Folders, stars, archive, spam controls, and advanced search filters to find things again.

Contacts

Local address books with vCard import and export, plus Google, Outlook, and CardDAV sync. Gofer Sync keeps contacts in step between your accounts.

Calendar

Google Calendar, Outlook, and CalDAV in month and week views. Create events and recurring series, invite guests, RSVP straight from an email, and add Meet or Teams links.

Three ways to run it

From your laptop to a whole organization.

Pick one mode with GOFER_AUTH_MODE. Each one holds as many mailboxes as you like. What changes is who signs in.

  1. open

    Just you, locally

    No login at all. Meant for your own machine, and only there.

  2. personal

    Just you, on a server

    One protected profile with all your mailboxes, behind a password, passkeys, or TOTP.

  3. managed

    Your team or organization

    Many users, separate administrators, invitations, MFA policies, and an admin panel.

Managed mode is being built to scale to thousands of users; that part is still in progress. Signed-in modes support passkeys, TOTP, and Google, Microsoft, or OpenID Connect sign-in. Stored credentials are encrypted, and remote content is blocked by default.

How accounts work

Talks to each provider in its own language.

Generic mail IMAP, JMAP, SMTP, CardDAV, CalDAV

Any standard mail server, plus contacts and calendars from compatible services.

Gmail Gmail, People, and Calendar APIs

Google's own APIs, instead of pretending Gmail is just another IMAP server.

Outlook Microsoft Graph

Graph for mail, contacts, calendars, categories, and Teams meetings.

Under the hood

The technical bits.

For the curious. The full dependency list is in go.mod.

Language
Go
Interface
Server-rendered with templ and HTMX, styled with Tailwind CSS and templUI. No SPA framework.
Database
SQLite through modernc.org/sqlite, pure Go with no CGO, and FTS5 for full-text search.
Mail formats
emersion's go-imap, go-smtp, go-message, go-vcard, and go-ical.
Sign-in
Argon2id passwords, TOTP, WebAuthn passkeys, and OAuth 2 / OpenID Connect.
Distribution
One static binary with the web assets embedded. Linux, macOS, and Windows.
License
MIT

Trying it

Run it yourself.

Download the archive for your system, unpack it, and run gofer. It's a single binary with everything inside: no runtime to install and no database server to set up.

Linux and macOS on x86-64 and ARM64. Windows on x86-64.

Linux

tar -xzf gofer-*-linux-amd64.tar.gz
cd gofer-*-linux-amd64
./gofer

On ARM64, use the linux-arm64 archive.

macOS

tar -xzf gofer-*-darwin-arm64.tar.gz
cd gofer-*-darwin-arm64
./gofer

On an Intel Mac, use the darwin-amd64 archive.

Windows

Expand-Archive gofer-*-windows-amd64.zip -DestinationPath .
cd gofer-*-windows-amd64
.\gofer.exe

In PowerShell. Or unzip it in Explorer and run gofer.exe.

Then open http://local.localhost:8090 in your browser.

On a server, pick personal or managed with GOFER_AUTH_MODE and put Gofer behind an HTTPS reverse proxy. The rest is in .env.example.

Building from source needs Go, templ, Tailwind CSS, and Task. Clone the repo and run task dev.

Heads up

Pre-1.0. Keep backups.

Gofer is in daily use, but it's still settling. Database migrations run on startup, so back up the data directory, configuration, and secrets together before upgrading. Gmail and Outlook still need your own OAuth app credentials for now, and some calendar actions depend on what the provider allows.