Mailer is almost in the water 📬
It's been quiet on this page since August, and that's mostly my fault: I've been heads-down rebuilding Mailer, our mail merge, from the ground up. (Secure Vote has been busy too, and it's getting a post all of its own very soon.) Here's where things stand.
Mail merge is the oldest good trick in the office: write one email, point it at your spreadsheet, and every person gets their own — their name, their shift, their link. The earlier Mailer was ours alone, never something I could hand you. This one is a from-scratch rewrite, built to be open source so anyone can run it. And I really hope to call it alpha in the next week or so.
Here's what already works. Connect the account you send from — a Google account with an app password, or any SMTP server — and send yourself a test message to prove it. Bring your list as a CSV upload, a link to a Google Sheet, or a list kept right inside Mailer that you can add to, edit and prune row by row. It reads real-world spreadsheets kindly, too: a title row above the headers, odd quoting, a column nobody named. Mark the rows to skip for each mailing, and attach images, each one named the way you want your recipient to see it.
The part I'm proudest of landed this week: the merge language. It's small on purpose. {{ first_name }} drops in a column, and capitals and spaces don't matter, so {{ First Name }} finds the very same one. {{ first_name|default("friend") }} covers the empty cells. {% if volunteer %}…{% else %}…{% endif %} says one thing to your volunteers and another to everyone else. That's very nearly the whole lesson. A template can't run code, by design, so a stray brace never turns into anything worse than a friendly error message.
And the error messages are the point. Mailer tells you about every mistake, with its line and column, before anything goes out. It can check every row of your list in one go, so the forty-seventh person with a blank first name turns up now, not in your sent folder. You can preview the message as any real recipient and test-send it to any address you like — and the preview, the check and the test send all render through the very same path as the real send, so what you looked at is what they get. The on-screen preview pane is what I'm wiring up next.
Still to come before alpha: the send engine itself, built so a hiccup halfway down a list never sends anyone the same email twice, and a proper installer, logo and all.
Meanwhile, over in Chooser, a lot of the work went into making its emails easier to trust. Invitations now carry a plain, words-only button, and your personal key is printed as text you can use yourself: go to chooser.shatuga.com, tap the key icon beside Sign In, and pop it in — no clicking a link you're unsure of. The first time someone hears from Chooser, the email says so, and the sender reads as "your name via Shatuga Chooser." And before you email a group with people new to Chooser in it, Chooser now nudges you to give them a heads-up first, and even suggests the words.
New free accounts now start with 200 email credits, up from 50 — enough to invite most clubs, crews and departments without buying a thing.
Smaller splashes: polls have a new Range question, where people rate several things on one scale (1 to 5, or whatever you like), and the results show each item's average with a little strip of where the answers landed. The weekly time grids finally drag-paint on phones, and the rows are slimmer, so a whole nine-to-five fits on one screen. A Flow's presenter now opens on the same big scan-to-join slide polls got in August. And one fix said out loud: an email to a list of more than 100 people could fail entirely — one roster of 129 sent exactly zero. Chooser sends in batches now, so a hiccup only ever touches its own batch.
Shatuga.com got a fresh coat as well. The homepage follows one crew through their week, every product has its own page, and there are new pages for nonprofits, schools, anyone giving a talk and volunteers.
Next time: Secure Vote, which deserves the whole page. 🌊