A Himekuri is the Japanese tear-off calendar where every day gets its own page and you rip one off each morning. I've always loved the ritual of it, so I built one for the web.
It lives at himekuri.inmydna.com. Every day of 2027 gets its own page, and each one comes out of a little dot-matrix printer.
What a Page Holds
Every page is built like a little readout. There's the date and weekday, a header with the day's occasion or the moon phase and how full it is, a piece of pixel art, a strip for the week, and how far through the year you are.
The part I'm most into is the DNA. Each day of the year is turned into six letters of A, C, G and T, which split into two codons, and each codon maps to the amino acid it codes for. So every day of 2027 has its own little genetic sequence, which felt right for anything with INMYDNA on it.
Sundays, holidays and Hawaiʻi dates get a reef-colored accent so they stand out.
The Printer
A tear-off calendar online is just a page with a date on it. I wanted it to feel like something, so the page comes out of a dot-matrix printer.
You tap PRINT and the page feeds out of the slot line by line, with the print head running back and forth and the LED blinking. When it's done you drag the page down to tear it off at the perforation, and it lands on a desk under the printer with the last couple you tore.
The sound is all made in the browser. There are no audio files: the clatter, the paper feed and the tear are white noise and tones shaped on the fly with Web Audio. That's also why you have to tap PRINT to start it, since browsers only let sound play after you do something on the page.
No Peeking
This was the one rule I cared about. Half the fun of a tear-off calendar is not knowing what tomorrow's page looks like, so the website shouldn't give it away.
All 365 pages live on the server, not in the site's code. The page asks for a date, and the server only answers for today and the week before it, so you can go back and print the days you missed. Ask for anything further out and it just says "not yet," without even hinting how far the pages go.
Since 2027 hasn't started, right now the printer prints countdown pages instead. On New Year's Day it switches over to the real thing.
A Few Things I Learned Along the Way
A tear needs a hint
My first version had a working tear, but nobody would have found it. After a design critique, I printed TEAR HERE on the stub, and a page you leave hanging gives a couple of small tugs to show it's loose. Little cues like that do more than any instructions.
Time zones make "today" fuzzy
Your today and the server's today aren't always the same day. I'm in Hawaiʻi, a full day behind parts of Asia, so the server lets one day past its own date through to cover everyone who's already living in tomorrow.
Subdomains have their own rules
The printer lives on its own subdomain, and on launch day it couldn't reach its own pages. The subdomain's redirect rules were catching the request before it got to the server. The fix was to have the printer ask the main inmydna.com site for its pages instead, and that kind of thing only shows up on the live site.
Coming January 1
The printer is live now and counting down. Starting January 1, there's a new page to print every day, one day at a time like everyone else.