{"id":"01a08362-0d75-75b7-9e55-39d6d5cb79c5","slug":"quickinbox","name":"Quickinbox","oneLiner":"Email on your own domain with a web client, multiple users, a REST API, a CLI and an OAuth MCP server","logoUrl":"https://quickmail.divinprince.com/favicon.svg","primaryCategory":{"slug":"email","name":"Email"},"services":[{"slug":"workers","name":"Cloudflare Workers","shortName":"Workers"},{"slug":"static-assets","name":"Workers Static Assets","shortName":"Static Assets"},{"slug":"d1","name":"Cloudflare D1","shortName":"D1"},{"slug":"r2","name":"Cloudflare R2","shortName":"R2"},{"slug":"email-workers","name":"Email Workers","shortName":"Email Workers"}],"deploy":"one_click","hasOneClick":true,"licenseName":"MIT","licenseClass":"open_source","freeTierStatus":"likely_sufficient","isTested":false,"lastTestedAt":null,"stars":412,"isArchived":false,"publishedAt":"2026-10-02T16:57:42.997Z","contentUpdatedAt":"2026-10-05T13:27:54.652Z","latestCommitAt":"2026-10-07T00:19:30Z","screenshot":{"url":"/media/apps/01a08362-0d75-75b7-9e55-39d6d5cb79c5/01a10252-88d7-7596-bf95-86567de3545d.png","alt":"Quickinbox inbox for a custom domain with five conversations, folders and the domain list"},"sourceHealth":"changed","shortDescription":"Quickinbox is a self-hosted mail app for addresses such as you@yourdomain.com. It runs on Workers, D1 and R2, and each deploy sends and receives through either Resend or Cloudflare Email Service.","longDescription":"The mail provider pushes each inbound message straight into the Quickinbox Worker. Replies group into threads with quoted history collapsed, and received HTML renders in a sandboxed iframe. On the Resend track, the app tracks delivered, bounced and complained status for sent mail. With a TypeSafe API key, optional inbox tabs sort mail into Primary, Social, Promotions, Updates and Forums, plus a spam mailbox.\n\nOne instance serves multiple domains and users, with per-user addresses, an admin catch-all and a view for unrouted mail. A browser can hold up to five signed-in accounts. New mail can trigger desktop or Telegram notifications, and each user can mint scoped API keys for the REST API. Every instance is also a remote MCP server with OAuth 2.1, so Claude, Cursor or ChatGPT can list, search, read and send mail after you approve access. The quickinbox CLI also runs a local stdio MCP server. The UI ships in English, French, Simplified Chinese and Spanish.\n\nThe SvelteKit app runs as a Worker with static assets and stores users and messages in D1 and attachments in R2. EMAIL_PROVIDER selects the provider. The default, resend, uses the Resend API and a webhook for inbound mail; cloudflare uses the send_email binding and the Worker's email() handler.\n\nThe Deploy to Cloudflare button applies the D1 migrations and has an optional TYPESAFE_API_KEY field. The local bun run setup wizard instead creates the D1 database and R2 bucket, writes the config and onboards the domain. The first account, created at /setup, is the admin, and later users claim addresses at /onboarding.","useCases":["Run personal or small-team email on a custom domain","Send and read mail from scripts through the REST API or CLI","Let AI assistants triage and reply to mail over MCP after OAuth consent","Give several users their own addresses, with an admin catch-all"],"targetAudience":"Developers and small teams who want email on their own domain with API and AI-agent access, hosted on Cloudflare.","knownLimitations":"The same domain's apex MX must not point at both providers. The Cloudflare Email track needs a zone on Cloudflare DNS and records accepted sends only as sent. Inbound mail does not run under vite dev. Rotating VAPID keys forces users to re-enable notifications. The project started in July 2026 and has two releases.","editorialNote":null,"ownershipDisclosure":null,"homepageUrl":"https://quickmail.divinprince.com","demoUrl":null,"docsUrl":"https://quickmail.divinprince.com/docs/deploy","repository":{"provider":"github","owner":"divinprince","name":"quickinbox","url":"https://github.com/divinprince/quickinbox","defaultBranch":"main","stars":412,"forks":63,"openIssues":4,"licenseSpdx":"MIT","isArchived":false,"latestRelease":"v1.1.0","latestReleaseAt":"2026-09-17T18:34:12Z","latestCommitAt":"2026-10-07T00:19:30Z","metadataFetchedAt":"2026-10-07T03:50:48.842Z"},"secondaryCategories":[],"servicesDetailed":[{"slug":"workers","name":"Cloudflare Workers","shortName":"Workers","detectionKind":"explicit","note":null},{"slug":"static-assets","name":"Workers Static Assets","shortName":"Static Assets","detectionKind":"explicit","note":null},{"slug":"d1","name":"Cloudflare D1","shortName":"D1","detectionKind":"explicit","note":null},{"slug":"r2","name":"Cloudflare R2","shortName":"R2","detectionKind":"explicit","note":null},{"slug":"email-workers","name":"Email Workers","shortName":"Email Workers","detectionKind":"explicit","note":null}],"connectors":[],"externalRequirements":[{"slug":"resend","name":"Resend","requirementKind":"optional","purpose":"Default mail provider: sends mail and delivers inbound mail through a webhook","selfHostedAlternative":null,"hasSelfHostedAlternative":true,"evidenceUrl":null},{"slug":"telegram-bot-api","name":"Telegram Bot API","requirementKind":"optional","purpose":"Sends new-mail notifications","selfHostedAlternative":null,"hasSelfHostedAlternative":false,"evidenceUrl":null},{"slug":"typesafe","name":"TypeSafe","requirementKind":"optional","purpose":"Sorts mail into inbox tabs","selfHostedAlternative":null,"hasSelfHostedAlternative":false,"evidenceUrl":null}],"deployMethods":[{"id":"01a08365-0694-7729-b128-cc7c0b1c60d3","methodType":"one_click","url":"https://deploy.workers.cloudflare.com/?url=https://github.com/DivinPrince/quickinbox","command":null,"docsUrl":null,"branch":"main","isOneClick":true,"isPrimary":true,"requiredPlan":null,"notes":null},{"id":"01a08365-0733-7729-bd2b-6743024f8d7b","methodType":"cli","url":null,"command":"bun install\nbun run setup","docsUrl":null,"branch":"main","isOneClick":false,"isPrimary":false,"requiredPlan":null,"notes":"The wizard also deploys the Worker and can create the Resend webhook, then prints the steps that remain."}],"deployRequirements":[],"bindings":[{"bindingType":"d1_databases","bindingName":"DB","resourceName":"quickmail"},{"bindingType":"r2_buckets","bindingName":"ATTACHMENTS","resourceName":"quickmail-attachments"},{"bindingType":"send_email","bindingName":"EMAIL","resourceName":null}],"envVars":[],"screenshots":[{"id":"01a10252-89e9-7036-84cc-d49f4e1d6db6","url":"/media/apps/01a08362-0d75-75b7-9e55-39d6d5cb79c5/01a10252-88d7-7596-bf95-86567de3545d.png","width":3840,"height":2160,"altText":"Quickinbox inbox for a custom domain with five conversations, folders and the domain list","isPrimary":true,"sourceType":"homepage"},{"id":"01a106ca-475e-75fc-8519-f5b3bbda3a74","url":"/media/apps/01a08362-0d75-75b7-9e55-39d6d5cb79c5/01a106ca-45ec-756c-abd0-cf0c35fc6b76.png","width":1440,"height":900,"altText":"Quickinbox homepage with Deploy to Cloudflare and View on GitHub buttons above a preview of the mail client","isPrimary":false,"sourceType":"upload"},{"id":"01a10252-8cca-7832-8545-0f588fadcdf0","url":"/media/apps/01a08362-0d75-75b7-9e55-39d6d5cb79c5/01a10252-8b71-768c-8d23-388b6fe78143.png","width":3840,"height":2160,"altText":"Quickinbox thread view with a collapsed earlier message and a reply marked Delivered","isPrimary":false,"sourceType":"homepage"},{"id":"01a10252-8ecf-718e-90f2-b23d61bd51ba","url":"/media/apps/01a08362-0d75-75b7-9e55-39d6d5cb79c5/01a10252-8d83-7cfa-a039-50966ad91c93.png","width":3840,"height":2160,"altText":"Quickinbox admin page with a verified domain, its catch-all address and the new user form","isPrimary":false,"sourceType":"homepage"}],"licenseUrl":"https://github.com/divinprince/quickinbox/blob/5b892700292a013e71c25b15fb3f3e0f7a5c396c/LICENSE","freeTierNote":"The README prices the Resend track as Resend's free tier plus Cloudflare. Workers, D1 and R2 all have free allowances on Workers Free. The Cloudflare Email Service track needs Workers Paid, since sending to arbitrary recipients is not available on Free.","freeTierSourceUrl":"https://developers.cloudflare.com/email-service/platform/pricing/","freeTierCheckedAt":null,"setupComplexity":"medium","setupComplexityNote":"Set up one provider after deploying. Resend needs a verified domain, RESEND_API_KEY, a webhook to /api/webhooks/resend and RESEND_WEBHOOK_SECRET. Cloudflare Email needs Email Sending, an Email Routing catch-all to the Worker, EMAIL_PROVIDER=cloudflare and the domain in CLOUDFLARE_MAIL_DOMAINS.","verification":{"status":"untested","testedAt":null,"versionRef":null,"deploymentMethod":null,"coreUseCase":null,"publicNote":null,"resources":[],"steps":[],"screenshots":[],"staleReason":null},"alternatives":[{"slug":"gmail","name":"Gmail"},{"slug":"zoho-mail","name":"Zoho Mail"}],"sources":[{"sourceType":"repository","url":"https://github.com/DivinPrince/quickinbox","lastSeenAt":"2026-10-07T12:17:23.547Z"},{"sourceType":"homepage","url":"https://quickmail.divinprince.com","lastSeenAt":"2026-10-07T03:55:53.330Z"},{"sourceType":"docs","url":"https://quickmail.divinprince.com/docs/deploy","lastSeenAt":"2026-10-07T03:55:53.330Z"}],"lastSourceRefreshAt":"2026-10-07T03:50:48.842Z","lastReviewedAt":"2026-10-02T16:57:42.997Z","seoTitle":"Quickinbox: webmail for your domain on Cloudflare Workers","seoDescription":"Quickinbox is an open-source webmail app for your own domain that runs on Cloudflare Workers, D1 and R2 and sends through Resend or Cloudflare Email.","changeEvents":[{"id":"01a0fd8c-dfd1-7b93-b6ed-e3bd657cff8b","kind":"listed","summary":"Quickinbox listed","createdAt":"2026-10-02T16:57:42.997Z","app":{"slug":"quickinbox","name":"Quickinbox"}}]}