SELF-HOSTED · MIT LICENSED · NO ACCOUNT TO CREATE

Open-source cold email you run yourself.

Connect your own Gmail, Microsoft 365 or IMAP/SMTP mailboxes, warm them up, run multi-step campaigns, answer every reply in one inbox and track deals in a built-in CRM. A self-hosted alternative to Instantly that runs on your laptop or your own server, so your leads and replies never leave your database.

Free and MIT licensed. You pay only for your own server, if any, and your own mailboxes.

Don't want to read the docs yet? You need Docker and git:

git clone https://github.com/AnalyticDog13/rightnow-ai.git && cd rightnow-ai && cp .env.example .env

Then add three secrets to .env and run scripts/start.sh.

rightnow-ai dashboard showing today's sends against the daily allowance, replies and campaign status (sample data)
SENT TODAYSending
142 / 300

Sample. Each mailbox's allowance is reserved before every send.

Dana ReyesInterested
Re: Quick question about Harbor Ops
via maya@outreach-one.example · step 2, variant B

Sample data. The dashboard of a running install.

HOW IT WORKS

From mailbox to closed deal. Six steps, all in one app on your server.

This is the whole loop rightnow-ai runs for you. Each step is a page in the app.

[ 01 / 06 ]

Connect your mailboxes

Gmail, Microsoft 365 and any IMAP/SMTP host. Gmail and Google Workspace connect with your own Google OAuth client, Microsoft 365 and Outlook with your own Entra app, everything else with a host, username and app password. Logins are encrypted before they are stored.

Gmail, Microsoft 365 and IMAP/SMTP mailboxes side by side.

Email accounts page listing connected mailboxes with status and daily capacity (sample data)

[ 02 / 06 ]

Fix your DNS

SPF, DKIM and DMARC, checked for you. The Deliverability page checks each sending domain's records, MX and spam blacklists, and tells you what to fix. A missing or broken SPF record blocks launch.

The Deliverability page tells you which DNS record to fix.

Deliverability page with SPF, DKIM, DMARC, MX and blacklist checks per domain (sample data)

[ 03 / 06 ]

Warm up, or re-warm

Two to four weeks before real volume. Turn on warm-up per mailbox: your mailboxes send short, plainly labelled messages to each other and record whether they land in the inbox or in spam. A mailbox that sat idle for 30 days is re-warmed automatically.

Warm-up volume, inbox rate and health per mailbox.

Warm-up settings for one mailbox with a chart of where warm-up mail landed over 30 days (sample data)

[ 04 / 06 ]

Import your leads

CSV in, duplicates out. Map your CSV's columns to names, companies and custom fields. You confirm you have the right to contact the list and record a lawful basis before the import starts. Anyone on the blocklist is never emailed.

Leads with lists, tags and custom fields.

Leads table with names, companies, lists and status (sample data)

[ 05 / 06 ]

Build the campaign

Steps, delays, A/B variants and a schedule. Write step 1 and the follow-ups with merge fields like {{firstName}} and spintax like {{RANDOM | Hi | Hello}}. Set sending days and hours, the time zone, the daily limit and which mailboxes send. Send yourself a test, then launch.

Steps, delays, merge fields and A/B variants.

Campaign sequence editor with step 1 and its A/B variants (sample data)

[ 06 / 06 ]

Work the replies

One inbox, a CRM, analytics and automations. Replies from every mailbox land in one threaded inbox, labelled interested, out of office, unsubscribe and more. Interested leads become deals on a Kanban board, with revenue tracked back to the campaign that found them.

Every mailbox in one threaded inbox.

Unified inbox with a reply labelled Interested (sample data)

TRY IT · RUNS IN YOUR BROWSER

Follow one lead through a campaign. Pick what the lead does and watch the rules the app applies.

SAMPLE DATA
What does Dana do?
Campaign
Harbor Ops intro (sample)
Mailbox
maya@outreach-one.example
Lead
Dana Reyes · Harbor Ops · dana@harbor-ops.example
Schedule
Mon-Fri 09:00-17:00
  1. STEP 1 · DAY 0Quick question about Harbor OpsSent 09:41
  2. STEP 2 · DAY 3Re: Quick question about Harbor OpsSent 10:12
  3. STEP 3 · DAY 7Re: Quick question about Harbor OpsCancelled
  1. Step 1 sent: "Hi Dana," (variant A)
  2. Step 2 sent
  3. Reply received ("Sounds good, can you send times for next week?")
  4. Mailbox synced → reply matched to the thread
  5. Labelled by the rule classifier Interested
  6. Step 3 cancelled (stop on reply)
  7. Deal opened in CRM: stage Interested, campaign Harbor Ops intro
  8. Automation "When a lead replies interested" can move the stage or call a webhook (lead_interested).
Outcome: deal opened, 1 step cancelled
Dana ReyesHarbor Opsfrom Harbor Ops introInterested · value —

A simulation of rightnow-ai's rules with sample data. In the app these happen on your schedule, minutes or days apart.

UNIFIED INBOX · CRM

Every reply in one inbox. The good ones become deals.

rightnow-ai labels each reply with rules first (interested, out of office, unsubscribe, automated), and you can always correct it. Below is a working copy of the idea with sample threads. It is also a small open-source CRM: deals, stages, tasks and revenue, on your own server.

6 sample threads

SAMPLE DATA
  • Dana ReyesInterestedRe: Quick question about Harbor Opsvia maya@outreach-one.example · step 2 · B
  • Tomás OkaforOut of officeRe: Shipping auditsvia jon@outreach-two.example · step 1 · A
  • Priya NairNot interestedRe: Front desk follow-upsvia maya@outreach-one.example · step 3 · A
  • Sam WhitlockUnsubscribeRe: Studio bookingsvia ops@mail.outreach-three.example · step 2 · A
  • Lena FischerMeeting requestedRe: Lab schedulingvia jon@outreach-two.example · step 2 · B
  • Auto-notifyAutomatedAutomatic reply: Kestrel Freightvia maya@outreach-one.example · step 1 · B

Replied 0

Interested 1

Dana ReyesHarbor Opsfrom Harbor Ops introvalue —

Meeting Scheduled 1

Lena FischerBrightwater Labsfrom Harbor Ops introvalue —

Proposal Sent 0

Closed Won 0

Sample threads. In the app, replies arrive through each mailbox's sync and the labels come from rules you can correct; optional AI labelling is off by default.

rightnow-ai inbox on a phone (sample data)
Replies from your phone.

FEATURES

Everything a cold email platform needs. On your server, with no plan to upgrade to.

  • Email accounts

    Gmail API, Microsoft Graph and any IMAP/SMTP host. Per-mailbox daily limits, health and encrypted logins.

  • Warm-up and re-warm-up

    Gradual ramp-up between your own mailboxes, inbox-placement tracking, and automatic re-warming after a break.

  • Deliverability checks

    SPF, DKIM, DMARC, MX and blacklist checks, inbox placement tests, bounce monitoring and automatic slow-down.

  • Campaigns and sequences

    Unlimited steps and delays, A/B variants, spintax, merge fields with fallbacks, schedules per time zone and mailbox rotation.

  • Leads

    CSV import with column mapping and dedupe, lists, custom fields, tags, a blocklist and optional email verification.

  • Unified inbox

    Every mailbox threaded in one place, with reply labels, notes, reminders and rich-text replies from the original mailbox.

  • CRM

    A Kanban pipeline with deal values, tasks and activity history. Revenue is attributed to the campaign, step and mailbox.

  • Analytics

    Sends, replies, bounces, clicks, opportunities and revenue by campaign, step, variant and mailbox, with CSV export. Opens are marked as estimates.

  • Automations

    Event rules like "when a lead replies interested, move it to this stage", plus signed webhooks.

  • REST API

    Scoped API keys for accounts, campaigns, leads, inbox and analytics.

  • Optional AI drafting

    Bring your own OpenAI-compatible endpoint (including local models). Drafts wait for a human to approve them. Off by default.

  • Team and security

    Invites and roles, two-factor sign-in, an audit log, rate limits, GDPR export and erasure.

RELIABLE SENDING

Built not to burn your domain. Or send the same email twice.

Sending runs on a PostgreSQL-backed queue. These rules are enforced in code and covered by tests.

Leads Planner Send queue(PostgreSQL) Fresh sync?Quota left?In schedule? Yourmailboxes

Illustration of the send path. Not live data.

Limits that cannot be overshot

Each mailbox's daily allowance is reserved in the same database transaction that claims a send, so parallel workers cannot exceed it.

WARM-UP

Email warm-up, open source and honest about it. It builds reputation slowly and never fakes engagement.

Built-in warm-up uses only your own mailboxes. Every mailbox with warm-up on sends short, plainly labelled messages to the others, and some of them reply. Volume starts small and grows each day, and the app records whether each message landed in the inbox or in spam. That inbox rate feeds each mailbox's health score.

  • It never fakes opens, rescues mail from spam or marks messages important.
  • One mailbox can't warm up on its own. It needs others to talk to.
  • It works best with several mailboxes on different domains, mixed across Gmail and Outlook.
  • With only a few mailboxes it builds little reputation. Treat it mainly as an inbox-placement monitor.

Want a bigger warm-up network? Connect the same mailboxes to an outside warm-up service, turn this app's warm-up off for them, and lower their daily campaign limit to leave room. Details on GitHub

Warm-up and deliverability settings showing warm-up volume and where warm-up mail landed (sample data)

Warm-up volume, inbox rate and health per mailbox.

How much can you send?

Plan it with the same defaults the app uses. Nothing here leaves your browser.

YOUR INPUTS × THE APP'S DEFAULTS

Right now: checking your clock…

90emails per sending day

3 Google Workspace mailboxes at 30 a day: 90 emails per sending day after a 2-week warm-up. 3,000 emails take about 34 sending days.

The defaults this planner uses, with their source
ConstantValueSource
Default provider capGoogle Workspace 1500, Gmail 400, Microsoft 365 5000, Outlook.com 250, SMTP 100accounts/factory.ts TIER_CAP
Highest daily limit per mailboxHalf the cap: 750, 200, 2500, 125, 50factory.ts maxDailyLimit
New mailbox daily limit30 (or the highest limit, if lower)accounts/open-account.ts
Slow ramp-up (off by default)2 + 2 per day since connectschema.prisma, quota.ts effectiveAllowance
Gap between sends540 s plus 0-300 s random (690 s on average)schema.prisma Campaign minGapSec, randomGapSec
Default scheduleMon-Fri 09:00-17:00campaigns/schema.ts officeHours
Warm-up (off until enabled)1 a day, +1 a day, up to 10; never above 50 or a tenth of the capdeliverability/warmup-settings.ts, warmup.ts

Defaults are read from the rightnow-ai source (factory.ts, quota.ts, warmup-settings.ts). The app also applies health and re-warm limits you can't see here.

SELF-HOST

Your mailboxes. Your server. Your leads. Running in four commands.

rightnow-ai is only self-hosted. There is no rightnow account and no rightnow server: you run the same Docker Compose stack on a laptop or a Linux VPS.

Best for
Trying it, small campaigns while you work
You need
Docker Desktop and git (Windows, macOS or Linux)
Sends when
Only while the machine is awake
Tracking
Not available on localhost (unsubscribe falls back to mailto)
Upkeep
scripts/backup.sh, scripts/upgrade.sh

Best for
Always-on sending, open and click tracking
You need
A Linux VPS with Docker Engine + Compose and git; 1 vCPU / 2 GB RAM is enough to start; a domain
Sends when
Around the clock, inside your schedules
Tracking
Opens, clicks and one-click unsubscribe over HTTPS
Upkeep
Same, plus a nightly backup cron and off-server copies
01 Clone
git clone https://github.com/AnalyticDog13/rightnow-ai.git
cd rightnow-ai
02 Configure
cp .env.example .env
# then set in .env:
MODE=local
APP_URL=http://localhost:3000
ENCRYPTION_KEY=<openssl rand -base64 32>
BETTER_AUTH_SECRET=<openssl rand -base64 32>
SETUP_TOKEN=<16+ random characters>
# Back up ENCRYPTION_KEY with your database.
03 Start · 04 Sign up
scripts/start.sh
# Windows (PowerShell): powershell -ExecutionPolicy Bypass -File scripts\start.ps1
# Open http://localhost:3000/sign-up and create the owner with your SETUP_TOKEN.

Back up ENCRYPTION_KEY with your database. Your mailbox logins are encrypted with it; a backup restored without the same key cannot read them.

Self-hosting means you are the sysadmin.

  • Updates: scripts/upgrade.sh backs up, pulls, rebuilds, migrates and restarts.
  • Backups: scripts/backup.sh writes a dump. Copy it off the server, with the key stored separately.
  • Mailbox apps: Gmail and Microsoft need your own OAuth app. Step-by-step guides are in the repo.
  • Uptime: a laptop sends only while it is awake. A VPS is the always-on option.
  • Support: it is an open-source project. Issues and pull requests on GitHub, no SLA.

DEPLOY IT YOURSELF

Deploy it yourself from GitHub. Fork it, configure it, start it.

  1. 01

    Fork or clone

    Fork the repo to keep your own changes, or clone it as is.

    bash
    git clone https://github.com/<you>/rightnow-ai.git

    Replace <you> with your GitHub name, or use AnalyticDog13 to clone the original.

  2. 02

    Fill in .env

    Copy the example file and set three secrets (and, on a VPS, your domain and a database password).

    bash
    cp .env.example .env
  3. 03

    Start it

    Build and start the stack, then create the owner account with your SETUP_TOKEN.

    bash
    scripts/start.sh

    Windows: powershell -ExecutionPolicy Bypass -File scripts\start.ps1. Then open http://localhost:3000/sign-up.

Why there is no "Deploy to Vercel" button

rightnow-ai needs a PostgreSQL database and a background worker that runs all the time to sync mailboxes, warm up and send on schedule. Vercel runs short-lived functions and static files, so it cannot host the app. Use Docker Compose on your own machine or a VPS. This page is the only part deployed to Vercel: it is plain HTML in the repo's site/ folder.

API keys settings page with scopes per key (sample data)

Once it runs, everything in the app is also available over a REST API with scoped keys.

COMPARE

An open-source alternative to Instantly. And to Smartlead and lemlist, if you'd rather host it yourself.

Questionrightnow-aiHosted cold-email tools (Instantly, Smartlead, lemlist)
Who runs itYou, on your laptop or serverThe vendor, as a SaaS
Source codePublic, MIT licenseNot public
Where leads and replies liveYour own PostgreSQL databaseThe vendor's systems
Cost modelFree software. You pay for your server (if any), mailboxes and domainsSubscription; see each vendor's pricing page
MailboxesYour own Gmail, Microsoft 365 and IMAP/SMTPTypically your own mailboxes; some vendors also sell mailboxes
Warm-up networkYour own mailboxes onlyVendor-run shared networks are common
Lead databaseNone. Bring your own listsSome vendors include one
Setup workDocker, DNS, and your own Google/Microsoft OAuth appSign up and connect

Based on each product's public website as of October 2026. Check the vendors' own pages for current details.

Use it responsibly.

You are responsible for how you use this software. Before you email anyone you need a lawful basis to do so (for example CAN-SPAM in the US, GDPR and PECR in the EU and UK, CASL in Canada, as they apply to you and your recipients). Send only as your own, honestly identified sender.

Every campaign email carries a List-Unsubscribe header and an unsubscribe link or opt-out line, and unsubscribes are always honored: the address is suppressed and the lead's sequences stop. Your mailbox providers' terms also apply and can restrict cold email. Nothing here is legal advice.

rightnow-ai is an independent open-source project. It is not affiliated with or endorsed by Instantly, Smartlead, lemlist or any other email-outreach vendor. Product names are trademarks of their owners.

FAQ

Questions about rightnow-ai.

Is rightnow-ai really free?

Yes. It is MIT-licensed open-source software with no paid edition, no plans and no account to create. You pay only for what you run it on (nothing extra on your own computer, or a small VPS) and for your own mailboxes and domains.

Is there a hosted version or an online demo?

No. rightnow-ai is only self-hosted and the maintainer runs no servers. To try it without real mail, set MAIL_PROVIDER_FAKE=1 in .env: every provider is replaced by a fake in-process mailbox and the whole pipeline runs without sending anything.

What do I need to run it?

Docker Desktop (or Docker Engine with Compose) and git. For always-on sending, a Linux VPS with 1 vCPU and 2 GB RAM is enough to start, plus a domain for HTTPS.

Can I deploy it on Vercel or Netlify?

Not the app. It needs PostgreSQL and a background worker that runs all the time, so it runs with Docker Compose on your machine or a VPS. Only this marketing page is a static site.

Which mailboxes can I connect?

Gmail and Google Workspace (through your own Google OAuth client), Microsoft 365 and Outlook (through your own Microsoft Entra app), and any other provider over IMAP/SMTP with an app password where required.

How does warm-up work? Does it guarantee the inbox?

Warm-up sends labelled messages between your own mailboxes, ramps volume up daily and records inbox versus spam placement. Nothing can guarantee inbox placement, and rightnow-ai never fakes opens or rescues mail from spam. For a larger network you can use an outside warm-up service alongside it.

Is it a full Instantly alternative?

It covers mailboxes, warm-up, campaigns, a unified inbox, a CRM, analytics, automations and an API. It does not include a lead database, done-for-you mailboxes, a shared warm-up network or autonomous AI agents.

Where is my data stored?

In your own PostgreSQL database. Mailbox logins and tokens are encrypted at rest with AES-256-GCM using your ENCRYPTION_KEY. There is no rightnow account and no rightnow server for your data to go to.

What happens if my laptop sleeps mid-campaign?

Nothing sends while it sleeps. On wake, each mailbox syncs first, so replies and unsubscribes that came in are seen before anything is sent; missed sends go out inside their schedule window, never as a burst. A send whose outcome is unknown is held, not resent.

Can I use it for my team?

Yes. Invite teammates with roles, protect sign-in with two-factor authentication, and review the audit log. One workspace per install today.

Clone it. Run it. It's yours.

MIT licensed, self-hosted, no account to create.