rssed

a collection of dev rss feeds - blogroll

Add a new feed

+

167 feeds


Applied Cartography

Posts

Order, Tailwind, DRY πŸ”—

(Order in the CSS rule sense, not the metaphysical sense.) The time has come to begin exfiltrating some higher-traffic, higher-leverage parts of Butto [...]

Linear πŸ”—

I invited nickd to join our Linear instance yesterday, which reminded me that I had a slew of notes I wanted to publish on our own experience of migra [...]

buttondown.com/alternatives πŸ”—

Some kind words from Chris Krycho on Buttondown's Alternatives page: This is how I want all my tools to be. There is a ton of room in these markets fo [...]

Hypermodern Django πŸ”—

I've been on the hunt for a new way to dogfood Buttondown for the past month or so, and I've finally found it: Hypermodern Django. At this point, all [...]

Bluesky is good πŸ”—

Three months ago, I wrote Bluesky et al, in which I walked through the various platforms vying for the dubious title of "Twitter's successor" and land [...]

November, 2024 πŸ”—

Not a lot to share this month; it was a particularly busy time, between a mystery (and now solved, without fanfare or closure) cough and a dearth of t [...]

Letters to a Young Bartender πŸ”—

Every straight white male is forced, character-creation-screen-style, to choose one overtly consumptive hobby that in some small part defines their tw [...]

Hidden settings are for cowards πŸ”—

At Stripe, we had two abstractions for branching logic in production: flags, which were meant to be explicitly temporal (temporarily split-testing tra [...]

Fathom πŸ”—

I'd been meaning to jot down some thoughts on Fathom for a while, and did not have a particularly good reason to do so until the news broke that Paul [...]

Klarna: nineteen years, twenty billion kroner πŸ”—

I tend to ignore the entire genre of what we now refer to as BNPL businesses β€” Affirm, Afterpay (RIP), Klarna, et al β€” not for any particular sin I fe [...]

A good H1 πŸ”—

Buttondown was kindly featured in H1 Gallery last week, and Ryan asked me to opine a bit on how we arrived at our current iteration, which is the anod [...]

Shipping is capturing value πŸ”—

This great essay from Sean Goedecke went viral two weeks ago, drawing fury and fervor alike for a Moral Mazes-esque analysis of how engineers at large [...]

Applied Cartography Γ— Val Town πŸ”—

Had a blast live-coding some experimentations with Steve and Shovel yesterday using Val Town. (If you haven't used Val, well, watch the stream β€” think [...]

VC does not guarantee PMF πŸ”—

Two companies that I started following (with no small amount of envy) back in 2021: Hype (fka Pico) sold to an MMA-themed holdco earlier this year. Ra [...]

October, 2024 πŸ”—

Hello! Lots of writing in October (what early parenthood takes away in terms of deep flow, it gives back in terms of twenty-minute pockets of time and [...]

Bozos πŸ”—

Kevin Twohy has a list of heuristics for new projects/clients, and my favorite is simple: No Bozos. Simple policy. No exceptions. You know it when you [...]

Meta's two assets πŸ”—

(Epistemic disclaimer: there are few Extremely Big Tech Companies to whom I feel apathy more vividly than Meta. I had a Facebook account in high schoo [...]

Projects are things with steps πŸ”—

Lots of kind words poured in as a response to My approach to GTD and PKM, and one question was asked so frequently that I decided to write about it. W [...]

Notebook as marketing primitive πŸ”—

Earlier this week, I stumbled upon this brilliant marketing-slash-documentation idea from SingleStore β€” notebooks as a first-party page! There are a h [...]

My approach to GTD and PKM πŸ”—

One pernicious thing with writing about productivity and knowledge systems: you only change systems that aren’t working, and you tend to write about t [...]

Consider the data product πŸ”—

The advice might seem dated these days, but I think the stair step approach to bootstrapping is evergreen: It’s much easier to sell an add-on to an ex [...]

You should build this: πŸ”—

A prior iteration of this site had a page called "Project ideas" that listed a bunch of things that I'd like to build. This was a good idea and useful [...]

Migrating to Django 5 πŸ”—

The total LOC delta to migrate Buttondown from Django 4 to Django 5 was +143, -150. (I was incentivized to do so because our search right now is quite [...]

Applied Cartography Γ— People & Blogs πŸ”—

There are few pleasures greater than getting to be profiled for an interview series that you've been reading for months, and last week I got to do exa [...]

Talking to customers πŸ”—

You say that these numbers mean dial it down. I say they mean dial it up. You haven't gotten through. There are people you haven't persuaded yet. Thes [...]

Notes on Zed, revisited πŸ”—

A little over six months ago, I wrote Notes on Zed. My conclusion at that time was that Zed made a lot of great choices and felt really good to use, b [...]

Two weeks of parenthood πŸ”—

We've had Lucy for two weeks, which qualifies us as experts, which means it is time to write about parenthood. (In all seriousness, consider the below [...]

Applied Cartography Γ— Indie Rails πŸ”—

Chatted with Jess and Jeremy about a whole slew of things, from pricing strategy to terrifying and arcane differences between various Markdown parsers [...]

Always use an enum for your status field πŸ”—

When I was first starting my career at Amazon β€” even more bright-eyed and rosy-cheeked than I am now β€” I was thrilled by the concept of an "architectu [...]

Why your marketing site should be separate πŸ”—

In Notes on buttondown.com and How Buttondown uses HAProxy, I outlined the slightly kludgy way we serve buttondown.com both as a marketing site (publi [...]

MD5-based uniqueness constraints in Django πŸ”—

Yesterday, I was trying to set a unique constraint for comments in Buttondown to prevent accidental double-commenting, and I ran into a problem that I [...]

Notes on 'Founder Mode' / Lieutenancy πŸ”—

In Paul Graham’s latest essay, he writes: The theme of Brian's talk was that the conventional wisdom about how to run larger companies is mistaken. As [...]

Keeping a technical edge πŸ”—

Someone emailed me in response to Two years as an independent technologist, in which I wrote: I miss of being at a large company, which is dealing wit [...]

How Buttondown uses HAProxy πŸ”—

There are few technical decisions I regret more with Buttondown than the decision to combine the author-facing app, the subscriber-facing app, and the [...]

Notes on buttondown.com πŸ”—

We spent $85,000 for buttondown.com in April; this was the biggest capital expenditure I've ever made, and though it was coming from cash flow generat [...]

Using Cursor to port Django tests to pytest πŸ”—

When it comes to AI tooling, I am equal parts optimist and cynic. I have no moral qualm with using these tools (Supermaven is a pretty heavy part of m [...]

Improving Django's default pagination performance πŸ”—

Buttondown's API calls are very fast, and one of the reasons why is that we've removed every single possible database query that we can. The most rece [...]

Peak Newsletter πŸ”—

A handful of folks sent me this quip from Nate Silver a few days ago: Slightly against interest to admit this (I don't want more competition lol) but [...]

Incumbency πŸ”—

Andrew Rea with an interesting and increasingly familiar take about how AI will disrupt software-focused private equity: Distribution and brand moats [...]

Content debt πŸ”—

There’s a nascent trend of releasing ostensibly-private material (changelogs, public wikis, handbooks, etc.) to the public as a bit of a marketing pus [...]

Against Against Innovation Tokens πŸ”—

Glyph (whose writing and contributions to the Python ecosystem I am deeply grateful for) wrote Against Innovation Tokens yesterday: In 2015, Dan McKin [...]

Pytest: test for print statements πŸ”—

Inspired by Adam Johnson's test for pending migrations, and of course in conversation with my own love of weird tests, I offer a similar concept: a te [...]

Typesafe routes in Vue πŸ”—

I watched Gary Bernhardt's talk on static routing back a few years ago and β€” I'm not sure if I would call it formative, but it stuck in my craw as a p [...]

Notes from May πŸ”—

Lots of writing this month: Why you should use Rails A reminder that things take time How shadcn/ui's previews work Why I hate that 1.01% meme A lovel [...]

The taste of beer πŸ”—

Unlike stories, real life, when it has passed, inclines toward obscurity, not clarity. There’s a relatively famous line from Bezos, circulated first a [...]

Why can't you just...? πŸ”—

Buried in a snarky thread about why Google Calendar doesn’t support calendar syncing is a long, detailed explanation of why shipping this sort of thin [...]

Git one-liner: get the earliest commit from X hours ago πŸ”—

I wanted to get a commit that was temporally some distance back as part of my experimentation with git cliff. This took some time to do, but here's wh [...]

Notes on ActivityPub πŸ”—

By far the single most-fruitful tactic has been "just look at raw GET responses from Mastodon and see what things are shaped like." I know that "Activ [...]

Auth.js + Square πŸ”—

Internal tools and small, well-scoped projects are a great avenue to tinker with technologies on the periphery of your understanding, and a Third Sout [...]

Au revoir, Invoke πŸ”—

It's not quite interesting or noteworthy enough to warrant a full-on essay, but yesterday we unshipped the last remaining Invoke commands and ported t [...]

Grace notes πŸ”—

I'm not loving Unreasonable Hospitality, but it did supply me with a phrase that I've been looking for: Eventually, that gesture became one of our ste [...]

44% πŸ”—

If you spend enough time digesting hackneyed business or self-improvement advice, you've probably seen someone wax poetic about the following image: [...]

How shadcn/ui examples work πŸ”—

I’m increasingly convinced that for developer-first tools, a really good docs experience is a durable, non-trivial advantage. Part of this thesis is t [...]

Things take time πŸ”—

Things take time. Nintendo fairly famously was born in 1889, and the modern incarnation β€” Yamamuchi Nintendo & Co., LTD β€” was established nearly fifty [...]

Use Rails πŸ”—

I have a good number of people ask me what software stack they should use. I always have a two-part answer: Use what you're familiar with. If there's [...]

Notes from April πŸ”—

Welcome to spring, bona fide and humid. Lots of writing this month: I wrote about spending the past two years as an independent technologist. On the m [...]

Finding null JSON values in Postgres πŸ”—

Postgres' JSONB functionality is fast and useful but when I find myself dropping down from the Django ORM into SQL to do weird things, the syntax stri [...]

You need to be frictionlog-maxxing πŸ”—

Lots of people have spent the past few days discussing the perceived increase in difficulty in getting an entry-level programming job relative to the [...]

You gotta be able to taste the kool-aid πŸ”—

Cognition, a six-month-old startup in the AI coding space just raised $175m at a $2b valuation: Despite the skepticism surrounding Devin’s launch, the [...]

Stripe Sessions 2024 πŸ”—

Stripe held the keynote for Sessions, their annual WWDC/re:invent-esque conference, this morning. I wanted to jot down some thoughts while they’re sti [...]

Weird test: internal link checking πŸ”—

I wrote last month about using weird tests. Here's another example: checking for broken internal links in our upcoming docsite redesign! const extract [...]

Tailwind black magic: swallowing all pointer events πŸ”—

I wrote two days ago about a real and useful application of Tailwind black magic; here's another. Buttondown has a dropzone component lets folks drag- [...]

Tailwind black magic: styling paragraphs within tables πŸ”—

The new version of the Buttondown docs site is all in on Keystatic, Markdoc, and Tailwind's typography plugin β€” which makes it really easy to author b [...]

Why should a company? πŸ”—

For a long time, my goal with Buttondown was largely around failure avoidance: "I want to get my first paying customer so I know it's not a fake produ [...]

Are monopolies bad, actually? πŸ”—

One of the more interesting theses advanced by Zero to One [1] is that monopolies are good to the extent that they afford companies the agency and com [...]

Is cool enough? πŸ”—

Via HN I ran into not one but two extremely neat and pleasant-looking libraries for URL manipulation. They look like great libraries, and a prior vers [...]

PSA: mess around with Keystatic πŸ”—

We've been using Keystatic in Buttondown for around six months now: we migrated most of the content on the marketing site (which is backed by Next) fr [...]

Globals in Histoire πŸ”—

Histoire, like so many other tools in the Vue ecosystem, is a bit of a neglected younger sibling to Storybook β€” a little bit uglier, with worse docume [...]

Notes on Zed πŸ”—

I was late to the VS Code zeitgeist, and as penitence I try to go out of my way to try new editors whenever I see them β€” which is why this morning I i [...]

PSA: mess around with Kolo πŸ”—

I had bookmarked Kolo many months ago to try out and finally got a chance to integrate it with Buttondown β€” a process that I expected to take a couple [...]

Vibes and years πŸ”—

XH asks: How do indie developers/small teams keep track of and prioritize long-term roadmaps? I've been basically work off my gut + Feeling of the Day [...]

You should use Helpscout πŸ”—

Was digging through old issues of the personal site and found this draft snippet: I was evaluating HelpScout as a potential first step in a series of [...]

11ty πŸ”—

.njk as the default templating language is an odd choice, and I find myself stubbing my toe on it a good amount. Maybe that's a me thing! It is extrem [...]

Buttondown Analytics 3.0 πŸ”—

Working on a new analytics engine β€” a scant eleven months after the previous 'new analytics engine'. Calling this 3.0 is a bit of a misnomer: most of [...]

Gosling’s Old Rum πŸ”—

Virginia has draconian liquor laws, which means I have to get interesting bottles shipped from [REDACTED], a site on which I am very prone to judging [...]

Migrating someone who's on Stripe Connect Express πŸ”—

Most Stripe accounts on Substack are β€œStandard Connect”, which essentially means that: the author has full agency over their account and is the mercha [...]

Mass renaming files in fish on macOS πŸ”—

One of many two-liners to come as I migrate things from the old site onto Obsidian: brew install rename rename "s/.mdx/.md/" **.md [...]

Postgres batch enqueuing in ten lines of Django πŸ”—

It hasn't failed me yet: BATCH_SIZE = 100 def batch_proess(queryset) -> None: count = queryset.count() if count == 0: time.sleep(10) [...]