All BlueprintsMedia

Newsletter with scheduled sends

A newsletter one person writes and nine thousand people read. An issue is written now and set to go at a minute of the writer's choosing, every subscriber gets one copy however many lists they are on, anybody who has left hears nothing further, and a restart in the middle of a send does not turn into a second copy for the four thousand who already had it.

L3–L5Level range
8Sprints
42Tasks
Backend and frontendBuilt as

What you’ll build.

By the last sprint

A newsletter that sends itself. Readers subscribe, confirm the address is theirs, and unsubscribe in one click with no password. A writer schedules an issue, and at the minute they chose it goes out with nobody at the keyboard: one copy each however many lists they are on, no duplicates if the send is interrupted halfway, and never again to an address that has stopped accepting mail.

What you’ll learn.

Each sprint is built around one skill. You show you have it in a pull request your team reviews, then explain it in a walkthrough.

Authentication

You can register and sign in a user, keep a request authenticated without asking for the password again, and explain where the credential lives in the browser and why there rather than somewhere else.

Email verification

You can issue a verification link, activate the account when it is followed, and explain what the link contains and why it cannot simply be a user id.

Notifications people do not mute

You can notify a user when an event concerns them, show an unread count that survives a refresh, and honour a preference that says stop.

Publishing at nine on Friday

You can schedule a piece of content, have it appear on time without a human present, and show it was truly invisible until then.

Background jobs

You can hand work to a worker, tell the user it is in progress, and show the result when it lands — and say what happens to that work if the process dies halfway.

Going live

Somebody who has never met you can open a URL and use the product — and you can say what is different about the copy running there, where its secrets come from, and what you do when a release turns out to be wrong.

The roadmap. 8 sprints, 42 tasks.

Every sprint has a goal and a set of tasks. Open a sprint to see the tasks you will pick up.

Sprint 01

A desk of your own

The newsletter has a name and a page, one person owns it, and an issue is written and not sent.

5 tasks
  1. A writer signs in and is still signed in tomorrow
  2. Nobody can give themselves a writing account
  3. Somebody trying passwords in bulk gets nowhere
  4. The newsletter has a name and a page of its own
  5. A writer can write an issue over several evenings
Sprint 02

The list

A stranger puts their address on a list, and nothing is ever sent to an address nobody has proved they can read.

6 tasks
  1. A stranger can put their address on the list
  2. Asking to join is not joining
  3. One address, one place on the list
  4. Mail is slow, and the page says so
  5. More than one list, and one person on several
  6. The writer can see who is on the list
Sprint 03

Leaving

One click in any message takes somebody off the list for good, with no password and no sign-in.

5 tasks
  1. One click, no password, and they are off the list
  2. A link in a message from a year ago still works
  3. One reader's link cannot take anybody else off
  4. Leaving one list is not leaving all of them
  5. Somebody who left cannot be put back by the writer
Sprint 04

Nine thousand, once each

A writer sends an issue and every subscriber receives exactly one copy, whatever lists they are on.

6 tasks
  1. One copy per person, not one per subscription
  2. Every copy has a state of its own
  3. Somebody who leaves mid-send does not receive it
  4. Every copy carries the reader's way out
  5. A test send that reaches nobody on the list
  6. The writer can close the laptop while it sends
Sprint 05

Nine on Tuesday

An issue is set to go at a minute the writer chose, holds until then, and goes out as they last left it.

5 tasks
  1. A writer sets an issue to go at a time they choose
  2. A time that has already gone is not a schedule
  3. What goes out is what the writer last meant
  4. A scheduled issue can be moved or called off
  5. Nine means nine on the writer's clock, in October as in June
Sprint 06

Nobody at the keyboard

Scheduled issues go out on their own, exactly one runner sends each copy, and a send interrupted halfway finishes itself.

5 tasks
  1. Scheduled issues go out with nobody in the building
  2. Two runners cannot both send the same issue
  3. A send interrupted at four thousand does not start again at one
  4. A copy that fails is tried again, and arrives once
  5. Somewhere says what the last run did
Sprint 07

Addresses that stopped working

An address that has stopped accepting mail stops being written to, and the writer can see what a send actually did.

5 tasks
  1. An address refused for good is never written to again
  2. A refusal that might be temporary is not treated as permanent
  3. Somebody who reports it as spam is treated as having left
  4. Nothing reaches a suppressed address by any route
  5. The writer sees what an issue actually did
Sprint 08

Out where people are

It is on the internet at its own address, and it keeps sending while the laptop is shut.

5 tasks
  1. A stranger reaches the sign-up form with your laptop shut
  2. Settings and secrets live where it runs
  3. Nine on Tuesday happens with nobody awake
  4. What it sends is accepted rather than filtered
  5. A release in the middle of a send does not send it twice

Read before you build. The best engineers do.

Senior engineers read the docs before they touch the code. Every Blueprint comes with short documents on the product and its world, the kind a team hands a new hire. Read them well and you ask sharper questions and walk into every review prepared.

What you are building

The product, who it is for, and what finished means.

One issue, nine thousand copies

Why sending to a list is a different problem from sending a message.

Build newsletter with scheduled sends.

Start your free week. Adaeze runs your kickoff, and Lars reviews every pull request.