Tom MacWright

macwright.com · Personal blog · on HN since 2011

Tom MacWright, a developer working on maps and web tools, writes about software, the modern web and working attitudes.

What HN saysCommenters call it their favorite software blog and praise how fast the site loads thanks to its minimal, brutalist-style design.
168HN people shared it
57linked it in comments
264stories submitted
6.8Kstory points
4 months agolast shared
2011people per year2026

Most-shared posts

  1. 1
    Lon Lat Lon Lat
    7 people · 339 points · first shared 2020 · 222 comments on HN
  2. 2
    (About) Hacker News
    7 people · 2 points · first shared 2023 · discussion on HN
  3. 3
    Homepage
    7 people · first shared 2021
  4. 4
    Vendor by Default (2021)
    5 people · 48 points · first shared 2021 · 12 comments on HN
  5. 5
    Work hard and take everything seriously
    5 people · 10 points · first shared 2024 · 2 comments on HN
  6. 6
    A clean start for the web (2020)
    4 people · 421 points · first shared 2020 · 195 comments on HN
  7. 7
    Second-guessing the modern web (2020)
    4 people · 318 points · first shared 2020 · 296 comments on HN
  8. 8
    Everything is fine with JavaScript
    4 people · 40 points · first shared 2016 · 13 comments on HN
  9. 9
    More than you ever wanted to know about GeoJSON
    4 people · 13 points · first shared 2015 · discussion on HN
  10. 10
    It's better to be naive than jaded
    4 people · 7 points · first shared 2020 · 1 comments on HN
  11. 11
    Playing with ActivityPub
    4 people · 4 points · first shared 2022 · discussion on HN
  12. 12
    Homepage
    4 people · first shared 2018
  13. 13
    IPFS, Again
    3 people · 573 points · first shared 2019 · 220 comments on HN
  14. 14
    Rust is a hard way to make a web API
    3 people · 331 points · first shared 2021 · 422 comments on HN
  15. 15
    Macwright.com redirects HN readers away
    3 people · 111 points · first shared 2022 · 70 comments on HN

What HN people wrote when they linked it

jwilber · 2024-01-25
Very polished project. The founder is now helping build Val town, which seems pretty awesome, too: https://www.val.town/ (Also his blog is a great read: https://macwright.com/)
ivanech · 2021-05-27
https://macwright.com/ - my favorite blog about software-related topics https://vebaccount.substack.com/ - great stuff on economics through a heterodox lens
mtm7 · 2020-06-02
I love a good font (and try to use one on my own blog), but part of me gets really giddy when I discover a site with very little styling. It's like I've found some secret oasis that's going to have a high signal-to-noise ratio, or at least some more "raw" writing than you'd find on ${popularNewsWebsite}. Some sites that come to mind: - https://danluu.com/ - https://100r.co/site/home.html - https://meagher.co/ - https://macwright.org/ Where Times really shines is printed material. I find it (and Garamond) extremely easy to read. For longform screen reading, I usually prefer Georgia, Freight Text, Source Serif, and Tiempos. San Francisco is a nice sans-serif font for this, too.
bestinterest · 2021-04-09
I'm not sure its FUD, your main page takes 63.5KB + 38.7KB for the gatsby reactified framework? + an extra 39.8KB in some js bundle and another 51.7KB in some other js bundle. Also you end up thrashing 5MB of browser storage when I hovered a link check out Application -> Storage in Chrome. Maybe I'm crazy but your page should not need that much, your site is making 20 requests to resources (thankfully you have http2) and the longest request took about 7s on a slow 3g connection. For comparison here is Tom MacWright's page https://macwright.com/ which does 2 requests at 14kB total taking 2.3s on a slow 3g connection. I will give you the prefetch trick is superslick in the Gatsby framework for blogs but no reason to have a whole React framework around it. Just use https://instant.page/ I say all this and I do love the component nature of React and SPA's (I love Svelte the most at the moment) but it does really not feel like the right tool for 99% of personal blogs.
ykl · 2026-03-09
One I like is Tom Macwright’s blog [1], which somewhat famously loads insanely fast thanks to having a sort of the web equivalent of a brutalist design while still looking nice [2]. [1] https://macwright.com/ [2] https://macwright.com/2016/05/03/the-featherweight-website
whstl · 2025-08-28
I love the explanation in the linked site: > Writing on the internet can be a two-way thing, a learning experience guided by iteration and feedback. I’ve learned some bad habits from Hacker News. I added Caveats sections to articles to make sure that nobody would take my points too broadly. I edited away asides and comments that were fun but would make articles less focused. I came to expect pedantic, judgmental feedback on everything I wrote, regardless of what it was. https://macwright.com/2022/09/15/hacker-news Which is true. Pedantism is the lowest form of pseudo-intelligence.
jauntywundrkind · 2025-02-11
It was amazing days in DC with Tom MacWright building the initial tools to make this so. It'd be so amazing for all governments to do this, to make the law (& how it changes over time) readily available. You'll have to copy paste this, since Tom blocks HN: https://macwright.com/2013/04/16/dc-code-hackathon
simantel · 2024-07-01
Michael Lynch, from TinyPilot: https://mtlynch.io/ Tom MacWright, now working on Val Town: https://macwright.com/
mtmail · 2024-05-15
I followed the journey of Placemark which might be similar to your software. Lots of browser javascript, interaction, multiple users. https://macwright.com/2024/01/19/placemark-oss It took him a very long time to be happy enough to launch partly because potential customers asked for features. And the initial release had be fast. We were a potential customer and I tested the beta software (we never purchased). Check his blog archive, the code is also open source now.
simonw · 2023-07-26
I love that binder idea. I've been meaning for years to put together a proper "projects" portfolio for my own site. I really like what Tom MacWright has for that https://macwright.com/projects/
ontouchstart · 2021-02-07
I didn’t know that Tom left observablehq. https://macwright.com/work/ I used observablehq (https://news.ycombinator.com/item?id=25275849) for a nonprofit project in 2019. It was a enjoyable experience. Glad to see he has some downtime and wish him the best.
sawaali · 2020-11-20
My favorite is always missing: https://macwright.com/2014/07/09/mplus.html
tmcw · 2020-04-11
https://macwright.org/ ‘published since 2011.’ Topics change gradually. Mostly things I do, read, and like.
melling · 2020-02-16
With Data Science and Machine Learning, my interest in math has greatly increased too. There’s definitely more of a need. I’m working my way through this book: https://www.amazon.com/Data-Science-Scratch-Principles-Python/dp/14920… by rewriting the examples in Swift: https://github.com/melling/data-science-from-scratch-swift I do like the author’s idea of creating his Simple Statistics library: https://macwright.org/2012/06/26/simple-statistics.html You definitely learn much more by building something, even if it’s less than perfect.
pella · 2024-09-22
recommended: Tom MacWright "Polite Technology" "This is a book about the social interactions and situations that are the underpinnings of the open source world. It's about how humans collaboratively create software." https://macwright.com/sites/polite.technology/preview "Maintaining open source software Let's talk about everything except for software development. Sometimes the image of a software developer is a person typing, alone, all day long. In most cases, programming consumes less than half your actual work time, even if that's your job description. Some of that is hated busy-work, some of it is social interaction that keeps you sane, some of it is akin to emotional labor. Technology changes and every project is unique but there are common components to this work, like interacting with people, supporting and critiquing the work of others, and explaining your craft. Let's find the parts in common and pick ways of expressing them that are both productive and kind."
lhnz · 2021-05-16
> The point is that there is a difference between having > two APIs that both still work and having one stable API. This is the direct effect of high levels of backwards compatability. You can't change APIs; you have to create new APIs and then deprecate previous APIs. That's the only way of avoiding a breaking change (other than never changing something and endlessly layering leaky abstractions on top of it). > Having multiple integrations with different APIs or > different libraries to do the same job is a form of > technical debt, and sometimes it can become quite > expensive. I disagree. If you don't need to do any work to something it has zero cost. Write tests to its behavior and it can be a blackbox to your team until you truly need to deal with it. > A lot of modern build processes don't just target > vanilla ES5 any more. They'll target something like > the most recent two versions of the evergreen browsers > and any specific minimum versions of other browsers > they need for their particular market. This isn't mainstream yet. Until very recently the majority of companies were targetting IE 11. A lot of companies changed this in 2020 (Microsoft, Atlassian, etc), and additionally due to Node finally supporting ESM and the release of Snowpack and Vite, many open-source developers are finally targetting something greater than ES5. But you're wrong to imply that it's the norm. > There are also some modern JS APIs that you can't completely…
cratermoon · 2021-01-16
I appreciate your question and thought it deserved some thought time, in contrast to my initial off-the-cuff comment. I had difficulty putting it into words, but today I was reading another article posted here on HN and it cut to the heart of the problem: https://macwright.com/2021/01/15/rust.html "GraphQL basically lets your frontend application define queries, instead of the backend. You give it a range of things it could query, and the application - React or something else - sends arbitrary queries to the backend. This makes things hard for the backend. Any sort of SQL-level optimization is impossible - your server is writing dynamic SQL, so you rely on the intelligence of your GraphQL server, which is not always high. Juniper, for example: n+1 queries by default. The workaround - a dataloader - is rough and independently maintained. So at the end of the day, you’re going to have a blisteringly-fast application layer that’s spending all of its time inefficiently querying your database." This is the data coupling problem, allowing the front end to see and arbitrarily query the data model. Yes, you can put a great deal of effort into optimizing the GraphQL server, but then you've just introduced middleware again, and at that point it's hard to see what the GraphQL protocol has over REST.
cjlm · 2020-10-30
baxuz · 2025-09-16
> It's winning because at the core it's just JavaScript function composition. Except it's not. It has a bunch of footguns and implicit behaviours that make no sense unless you're well-versed in the internals of React. See: https://macwright.com/2024/09/19/the-extra-rules-of-hooks https://www.schiener.io/2024-03-03/react-closures And JSX by itself is already a DSL, which drastically changes how it works based on the pragma used. JSX for SolidJS, Preact, Inferno or any other framework has completely different internals.
acemarke · 2024-12-05
Yes, React uses semver. React 19 has been in development for over 2+ years - React 18.2 (the last meaningful minor release) came out in June 2022, so the release pace has been slow enough people have complained that it's _too_ slow: - https://macwright.com/2024/01/03/miffed-about-react (looks like the author may have an HN-specific redirect, so you might need to copy-paste that URL)
vintagedave · 2024-11-24
This redirects to google.com, which I initially thought was the point of the title: a joke. But it seems to redirect only coming from HN. The actual link is https://macwright.com/2024/11/20/not-using-copilot
bakkoting · 2024-10-30
> I would guess worst case QuickJS probably can compile to WASM That's actually exactly what Figma is doing for their plugins. [1] Seems to be working ok, though not without some pain [2]. [1] https://www.figma.com/blog/an-update-on-plugin-security/ [2] https://macwright.com/2024/03/29/figma-plugins
wonger_ · 2024-09-01
https://macwright.com/2022/09/15/hacker-news He redirects HN readers - just copy the URL into a new tab.
humbugtheman · 2024-01-31
hey author here! glad you like it. i didnt intend the article to be "anti command line" or "anti anything". rather "pro empathy" :) the "luxury of simplicity" is a quote from tom macwright's blog post: https://macwright.com/2023/12/31/luxury-of-simplicity
ncts · 2024-01-19
Well: https://macwright.com/2022/09/15/hacker-news. Still, it can be easily bypassed by an extension that cleans referrer (which is more or less good for privacy I guess?)
mthoms · 2023-11-15
Am I the only one who sees this kind of thing as childish and petty? I mean... get over yourself. Edit: After reading the reasoning at https://macwright.com/2022/09/15/hacker-news I'm a little more sympathetic, but there's got to be a better way to handle this.
michaelcampbell · 2023-11-14
Tom M seems to not like HN, so this makes sense. https://macwright.com/2022/09/15/hacker-news

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close