Newslettr

Your install is running.

Nothing has been published on Shragafeivel yet, so this page is standing in for the feed. Here is the path from an empty install to your first digest email.

  1. Point this domain at a channel set

    Domain settings map each host onto its topics, theme, and title. Load yours with newslettr-tool load-domains; until a host matches, the reader falls back to the default domain.

    go run ./cmd/newslettr-tool load-domains -config path/to/domains.json
  2. Create an administrator

    newslettr-seed creates a development administrator and a few starter topics, idempotently. Then sign in on the Admin server — port 2203 by default — and change that password.

    go run ./cmd/newslettr-seed
  3. Create your channels

    Topics partition everything: posts, subscriptions, and digests are all per-topic. Create them in Admin under Topics, or create an author-owned channel in the Publisher, which can be public or restricted to named readers.

  4. Put something in

    The Publisher — port 2202 by default — is where posts (written in AML color markup), links, photos, and quotes are written. Automated sources fill the rest in: subscribe an iCalendar feed, or register git repositories in Admin to turn commit history into feed entries.

    Nothing you create here is announced. Every source is staged until a digest goes out.

  5. Compile a digest and send it

    The digest email is the unit of output. The Publisher's newsletter page shows a plan per topic — what is staged, when the last issue went, whether the topic is due (one digest every 19 days). Compiling gathers the topic's content into one email body to preview and send. The cadence is advisory; sending is always a deliberate act.

  6. Invite subscribers

    Every channel has a public subscription page you can share. Readers sign up per topic and manage everything from one place.

Before you go live

  • NEWSLETTR_DATABASE_URL — without it the server runs on an in-memory store and everything disappears on restart.
  • NEWSLETTR_SESSION_SECRET and NEWSLETTR_CSRF_SECRET — the development defaults are not secrets. Setting NEWSLETTR_ENV=production makes the server refuse to start without them.
  • NEWSLETTR_SMTP_HOST — until a mail transport is wired, sending a digest marks it sent without emailing anyone.