Loading page...Загружаем страницу...正在加载页面...
AtlasRepo

What we learned building a paid inbox you can self-host (Go + Next.js + Postgres)

Description and use

Hotly is a self‑hosted paid inbox where each installation serves one creator. Payments go straight to the creator’s Stripe account, messages are priced by length, and media is stored privately in Garage.

Problem

Managing personal messages and payments for a creator’s inbox became unmanageable, requiring a self‑hosted solution that handles payments, messaging, and media securely.

Outcome

Hotly successfully handled 217 paid messages from 921 conversations for a single creator, proving the one‑person‑per‑install model and length‑based pricing work in practice.

Workflow

  • 1. Install Hotly via Docker Compose; 2. Configure Stripe, Firebase, and SendGrid (or skip for local dev); 3. Creator signs in with Google; 4. Fans pay via Stripe Checkout; 5. Server verifies payment and creates a session cookie; 6. Fans compose a note (priced by length); 7. Creator receives the note and replies; 8. Replies can include locked media stored in Garage; 9. Creator manages pricing and subscription tiers via the web UI.

Evidence

We built Hotly, an inbox where people pay to send someone a note, and that person replies when they have time.

Source

The obvious design is multi-tenant: one database, many creators, a creator_id on every row. We went the other way.

Source

Guests never sign up. They pay through Stripe Checkout, and once the webhook confirms the payment, the success page swaps the Checkout session for an HTTP-only session cookie.

Source

Notes are priced by length: $5 for 250 characters, $10 for 500 and $15 for 1,000 by default, all editable by the owner.

Source

We ran it with one creator, 536K followers on Instagram, who told the fans she already had. 217 people paid to write to her, across 921 conversations.

Source

  • Record date: 2026-10-21T12:56:13.136Z