Sign in

Justin Duke

@jmduke.com
1.5K followers 143 following 1.2K posts

The Buttondown guy

PostsRepliesMedia
Justin Duke @jmduke.com · 26/09/2026
the buttondown team is meeting this week to talk about 2027! what are the things that, if we do them, you would go "oh FINALLY_"?
031
Justin Duke @jmduke.com · 05/09/2026
www.jmduke.com/posts/coffee...
000
Justin Duke @jmduke.com · 05/09/2026
when they're right they're right bsky.app/profile/tang...
130
Justin Duke @jmduke.com · 22/08/2026
Optimist: The cup is half full Pessimist: The cup is half empty Caro: His name was Emmett Doyle, and he was not a man who astonished easily, and he was not a man whose opinion anyone had ever requested. He had poured for aldermen and for the men who owned aldermen. He had poured, in 1934, for a go
090
Justin Duke @jmduke.com · 20/08/2026
forgot to mention but another underrated part of WHAS is david hyde pierce showing up like spiderman and absolutely crushing the vibe www.jmduke.com/posts/wet-ho...
020
Justin Duke @jmduke.com · 20/08/2026
www.jmduke.com/posts/a-mast... a film I will forever remember as the one that pushed me to listen to an episode of blank check
000
Justin Duke @jmduke.com · 09/08/2026
www.jmduke.com/posts/second...
Secondhand Time is an oral history of the regions comprising the former USSR, compiled almost entirely from firsthand narrative: actual people recounting their past. It is sprawling and nonlinear. There are obvious messages the author is trying to communicate — but unless I am in for a rude awakening, there is going to be no denouement that deeply recontextualizes or reshapes everything that came before.

You hear countless stories, repetitive and rhapsodic, from every possible walk of life, though almost all of these walks involve the scars and bruises left by war and revolution. The only unifying thread is sadness and bitterness — not nostalgia, though certainly some of these stories contain nostalgia, so much as the sense of a country weeping for all the pain it has gone through.
110
Justin Duke @jmduke.com · 06/08/2026
buttondown.com/blog/what-i-...
Buttondown is written in Django for a boring but revealing reason: it's what I knew at the time. Back in 2018, I was working for a company whose stack was Django and Vue, and I had been hired as someone with extensive amounts of Django experience (meaning: I knew what South was, for you fellow old-timers.)

One of my longstanding philosophies has been to limit innovation tokens. I didn't want to spend time context-switching between frameworks as I went from my day job to my side project. Over the intervening eight years, I've found myself ruing my choice of Vue as a front-end framework — but I can honestly say that, even if it wasn't a meticulously reasoned and considered choice, I have not for one second regretted using Django.
1100
Justin Duke @jmduke.com · 05/08/2026
www.jmduke.com/posts/patch-...
For Guildrun, the 3 major groups of players are the Climbers, the Endless Mode players, and the Red Rift players. The Climbers are players who are in the process of climbing through the difficulties to unlock and complete all of Guildrun's content, and are currently our largest group of players by a decent margin. Everyone starts out as a Climber, and for many of these players the quest to discover everything the game has to offer is the game. The experience that players have during their climb through the difficulties is incredibly important to us, and the feedback from Climbers helps make the game better for all Climbers, present and future. Since the primary goal for most Climbers is to progress up the game's difficulties, it's easy to understand why nerfs can feel like an obstacle standing between them and their goals, and why buffs feel like a helping hand.

It does not require a lot of rhetorical justification to understand how this might apply to traditional software. Software tends to grow more complex and featureful over time, which rewards edge case users who have already onboarded at the expense of new users; conversely, redesigns or radical simplifications of an interface might be a net positive for new users without any muscle memory whatsoever, but are often experienced as a net negative to experienced users who log in to find that all of their cheese has been moved.
020
Justin Duke @jmduke.com · 04/08/2026
two tools i am grateful for lately: op and mprocs www.jmduke.com/posts/two-to...
jmduke.com
op, mprocs
Two small tooling changes that have been really nice for us at Buttondown: 1Password CLI A long-standing annoyance has been dealing with secrets and coordina...
110
Justin Duke @jmduke.com · 04/08/2026
people liked this one! now time to add it to my own site bsky.app/profile/butt...
191
Justin Duke @jmduke.com · 02/08/2026
www.jmduke.com/posts/best-o...
I hesitate to succumb to instinct and laud both them and the middle-brow public that appreciated and rewarded the idea of intellectualism. The histrionic fondness with which we might remember their patrician accents could very well be said, thirty or forty years from now, of people discovering blogs and pining for the days when public intellectuals would so candidly and openly write on Wordpress or whatever. Additionally, I don't buy at face value the film's thesis that these debates were the birth of American punditry. In no small part because I think television itself was the birth of American punditry — an organism that simply required some time to incubate.

But these two guys are fascinating, and the debates are riveting, and this documentary gets to carry that respective sunlight. The film takes an unflinching look at who these people were and what drove them. How clearly you can see that these two men led twinned lives, to a certain extent: both ultimately failed ambitions, both incredibly intelligent, and — in what seems so deeply interesting, perhaps more so than the denoument of their careers after the debates — both horribly, horribly despondent toward the end of their lives.
020
Justin Duke @jmduke.com · 02/08/2026
maledictology: www.jmduke.com/posts/cursed...
120
Justin Duke @jmduke.com · 07/02/2026
Rope! www.jmduke.com/posts/Rope%2...
130
Justin Duke @jmduke.com · 06/02/2026
If I haven't somehow messed up the XSLT, I have officially joined the cool kids club by styling my RSS: www.jmduke.com/feed.xml
jmduke.com
270
Justin Duke @jmduke.com · 05/02/2026
i would encourage you to watch THE DOUBLE, a film whose quality is aggressively out of proportion with its reputation www.jmduke.com/posts/the-do...
150
Justin Duke @jmduke.com · 04/02/2026
The Black Hawk War, or, How to Demolish an Entire Civilization and Still Feel Good About Yourself in the Morning, or, We Apologize for the Inconvenience but You're Going to Have to Leave Now, or, 'I Have Fought the Big Knives and Will Continue to Fight Them Until They Are Off Our Lands!'
020
Justin Duke @jmduke.com · 02/02/2026
The thing about The Killer is that that it's a farce. www.jmduke.com/posts/the-ki...
130
Justin Duke @jmduke.com · 31/01/2026
www.jmduke.com/posts/ocean-... on today's episode of i love films
040
Justin Duke @jmduke.com · 28/01/2026
www.jmduke.com/posts/the-pi...
110
Justin Duke @jmduke.com · 28/01/2026
new bio bsky.app/profile/book...
0100
Justin Duke @jmduke.com · 12/01/2026
www.jmduke.com/posts/levels...
020
Justin Duke @jmduke.com · 29/12/2025
sitemaptorss: www.jmduke.com/posts/sitema...
040
Justin Duke @jmduke.com · 27/12/2025
on the off chance that you are debugging the same thing I am: 1password's chrome extension now ships a version of Prism.js that conflicts with other syntax highlighters. Not Great! www.1password.community/discussions/...
1password.community
[BUG] Beta and Nightly extension degrade page's original functionallity | 1Password Community
I was looking https://shiki.style/guide/install , an NPM package which provides syntax highlighting and showing detail hovering on keywords. It is expected...
230
Justin Duke @jmduke.com · 22/12/2025
on the first day of code freeze 🎶 disposables.app
disposables.app
Disposables.app
An open-source database of disposable email domains
050
Justin Duke @jmduke.com · 21/12/2025
Notes on SLEUTH (1972): www.jmduke.com/posts/sleuth...
000
Justin Duke @jmduke.com · 21/12/2025
number of words written into our support tool (I am in last place amongst the team)
140
Justin Duke @jmduke.com · 20/12/2025
a not-insignificant reason we invest in social media analytics/automations is because literally every single other tool we've tried is not particularly good for our use case bsky.app/profile/butt...
091
Justin Duke @jmduke.com · 20/12/2025
Wrote about Paris, Texas. www.jmduke.com/posts/paris-...
110
Justin Duke @jmduke.com · 18/12/2025
CONCLAVE (2024). www.jmduke.com/posts/concla...
040
Justin Duke @jmduke.com · 18/12/2025
blogroll.org This site by Manuel Moreale is not just lovely in the abstract, it might be the _calmest_ and most pleasant design I've seen in quite some time.
blogroll.org
Ye Olde Blogroll - Because blogs are the soul of the web
You are viewing a humanly curated list fine personal & independent blogs and sites that are updated regularly. No algorithms ever!
1111
Justin Duke @jmduke.com · 17/12/2025
Playing around with my media section on the new personal site has been fun. Here's a variant (live right now but likely not for long) where its sorted by luminosity:
180
Justin Duke @jmduke.com · 04/12/2025
the industry is abound with "don't roll your own X" and analytics in particular is one of the things I like reaching to as a counterexample. finally wrote about it! bsky.app/profile/butt...
0182
Justin Duke @jmduke.com · 03/12/2025
reviews are rolling in
020
Justin Duke @jmduke.com · 01/12/2025
doing two things a little different for this end-of-year, buttondown wise. one is an airbnb-style buildout of all the stuff we shipped. the other is a "raise-the-garage-door"-style series of posts about next year: bsky.app/profile/jmdu...
030
Justin Duke @jmduke.com · 25/11/2025
one of my goals this year has been to open source more of buttondown's internal sawdust. a little bit under the wire, but this is the first of a few end-of-year goodies bsky.app/profile/butt...
0153
Justin Duke @jmduke.com · 21/11/2025
the SEO spammers are evolving
020
Justin Duke @jmduke.com · 17/11/2025
There are many very cogent arguments against LLMs, but I do think that some people end up arguing that all productivity-increasing technology is immoral because the benefits do not solely accrue to labor bsky.app/profile/tant...
150
Justin Duke @jmduke.com · 16/11/2025
Really proud of how often people write in about this little affordance for showing CSS selectors in the preview pane. Built it for myself because I was getting annoyed whilst dogfooding (which is why you should dogfood constantly.)
2140
Justin Duke @jmduke.com · 15/11/2025
It took an embarrassing amount of dithering but I finally settled on a Starship format that I like.
2130
Justin Duke @jmduke.com · 13/11/2025
Zach Lowe doing his first and probably only live show in Minneapolis is both incredibly on brand and deeply powerful
000
Justin Duke @jmduke.com · 13/11/2025
somehow this didn't make the cut but @kierongillen.bsky.social also was patient enough to put up with me asking questions about the difference between docx and odt on a support thread recently bsky.app/profile/butt...
021
Justin Duke @jmduke.com · 12/11/2025
one of my favorite @buttondown.com ships this year buttondown.com/blog/inbox
buttondown.com
Notification inbox
Notification inbox
071
Justin Duke @jmduke.com · 09/11/2025
New post: October 2025.
buttondown.com
October 2025
020
Justin Duke @jmduke.com · 09/11/2025
New post: October, 2025.
jmduke.com
October, 2025
010
Justin Duke @jmduke.com · 07/11/2025
we have been deep in the skunkworks about this, so to speak, but a fun fact is that the above screenshots are a ten-line CSS theme applied atop our "real" new theme, which I've taken to call "Operation CSS Zen Garden" bsky.app/profile/did:...
180
Justin Duke @jmduke.com · 04/11/2025
Some WIP from today.
070
Justin Duke @jmduke.com · 03/11/2025
New post: Eucharist.
jmduke.com
Eucharist
050
Justin Duke @jmduke.com · 02/11/2025
New post: Picnic.
jmduke.com
Picnic
000
Justin Duke @jmduke.com · 01/11/2025
huge discovery for "everything should be gofmt" boosters like myself bsky.app/profile/davi...
150