Send newsletters that actually scale.

Built with FastAPI, Redis, Celery and AWS SES to deliver millions of emails reliably. Schedule campaigns, manage subscribers and automate newsletters from one platform.

The Pipeline

HowSkyMailworks.

From draft to inbox — this is the real pipeline behind every campaign, not a marketing diagram.

  1. 1

    Create a campaign

    Write a subject line and pick one of your HTML templates. The campaign starts as a draft.

  2. 2

    Fill in the details

    Set the template's variables and confirm the subscriber list it goes out to.

  3. 3

    Schedule it

    Pick a send time and timezone. The campaign's status flips from draft to scheduled.

  4. 4

    Celery Beat picks it up

    A scheduler task checks every minute for campaigns that are due, and queues them for sending.

  5. 5

    AWS SES delivers

    Emails go out in batches through Amazon SES, with automatic retries if a batch fails.

  6. 6

    Delivery is logged

    Every recipient's send attempt is recorded — sent, failed, or bounced — for that campaign.

What's Actually Inside

Realinfrastructure,notafeaturechecklist.

Every panel below is a real part of the product — scheduling, delivery tracking, subscriber management, templates, and the API behind all of it.

Campaign Scheduling

Schedule a campaign for a future time and timezone. A Celery Beat job checks every minute for what's due and queues it — database state drives the send, not a timer in your browser.

MonTueWed
09:00 AM·UTC
Scheduled

Delivery Tracking

Every send is logged per recipient via its AWS SES message ID — sent, failed, or bounced.

Sent
Failed
Bounced

Example campaign, not aggregate data

REST API

Every dashboard action is a FastAPI endpoint underneath — create, schedule, and cancel campaigns from your own backend.

POST /api/campaigns
{ "status": "draft" }

Embeddable Subscriber Widget

Drop a subscribe form on your own site. Origin is validated against your company's registered website before anyone joins.

you@company.com
Subscribe

Reusable Templates

HTML templates with named variables and file uploads for assets, with every edit kept as a version.

Hi {{first_name}},
Developer Experience

Builtontoolsyoualreadytrust.

No proprietary black box — a straightforward REST API sits on top of FastAPI, Postgres, Redis, Celery and AWS SES.

$ curl -X POST /api/campaigns \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "name": "March Product Update",
    "template_id": "b7e4-...",
    "constants_values": { "first_name": "Alex" },
    "scheduled_for": "2026-03-01T09:00:00Z"
  }'

201 Created
{
  "id": "c9f1-...",
  "status": "draft"
}
FastAPIPostgreSQLRedisCeleryAWS SESJWT Auth

Pick your plan

Start free, scale as you grow

Free

₹0/month
Up to 250 subscribers
HTML email templates
Email support
Delivery tracking
Get Started
Most Popular

Premium

500/month
Unlimited subscribers
Detailed delivery reports
Priority email support
Template versioning
API access
Get Started

Common questions.

Straight answers, including where SkyMail falls short today.

Amazon SES. Every campaign is sent in batches through SES, with automatic retries if a batch fails to send.

You schedule a campaign for a specific UTC time. A Celery Beat job checks every minute for campaigns that are due and queues them for sending — it's database state driving execution, not a timer sitting in your browser tab.

Yes. Every recipient's send attempt is logged as sent, failed, or bounced, tied to its AWS SES message ID, and a campaign's status shows the totals. There's no open or click tracking today — just delivery status.

Not yet. SkyMail currently supports one-time scheduled campaigns. Welcome emails, delay-based triggers, and multi-step automation aren't built — we'd rather say that plainly than pretend otherwise.

Yes — up to 1,000 subscribers on the free tier, no credit card required to start.

Yes. Templates support named variables filled in per campaign, file uploads for assets, and every edit is kept as a version.

Ready to send your first campaign?

Create a free account, schedule a send, and watch it go out through AWS SES.