Skip to content
HomeVideosBooksBlogs
AllTop postsTopics
Podcasts
HistoryListsWatch laterLiked videosFollowing

The videos, books, blogs and podcasts Hacker News keeps recommending, all in one place.

VideosBooksBlogsPodcastsAboutPrivacySettings

Data from Hacker News, HackerTube, HackerBooks, HackerBlogs and Open Library. Credits · Not affiliated with Y Combinator.

HomeVideosBooksBlogsPodcasts
Ctrl K

    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.

    Visit blogRSSHN submissions
    Web DevelopmentProgrammingWriting & Thinking
    What HN says

    Commenters call it their favorite software blog and praise how fast the site loads thanks to its minimal, brutalist-style design.

    Stats for nerds
    168HN people shared it
    264linked in comments
    6.8Kstory points
    Jul 2026last shared
    2020people per year2026

    Top posts on HN

    1. 1
      Second-Guessing the Modern Web
      2 people · 721 points · first shared 2020 · 453 comments on HN
    2. 2
      IPFS, Again
      3 people · 573 points · first shared 2019 · 220 comments on HN
    3. 3
      The Return of Fancy Tools
      2 people · 450 points · first shared 2021 · 216 comments on HN
    4. 4
      A clean start for the web (2020)
      4 people · 421 points · first shared 2020 · 195 comments on HN
    5. 5
      If Not SPAs, What?
      1 person · 364 points · first shared 2020 · 447 comments on HN
    6. 6
      Lon Lat Lon Lat
      7 people · 339 points · first shared 2020 · 222 comments on HN
    7. 7
      Rust is a hard way to make a web API
      3 people · 331 points · first shared 2021 · 422 comments on HN
    8. 8
      Second-guessing the modern web (2020)
      4 people · 318 points · first shared 2020 · 296 comments on HN
    9. 9
      Sharrows, the bicycle infrastructure that doesn’t work and nobody wants
      2 people · 301 points · first shared 2020 · 400 comments on HN
    10. 10
      You cannot have a digital copy of the DC Code
      1 person · 219 points · first shared 2013 · 107 comments on HN

    What HN people wrote when they linked it

    • lhnzMay 2021

      > 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…

    • cratermoonJan 2021

      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.

    • pellaSep 2024

      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."

    • bestinterestApr 2021

      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.

    • mtm7Jun 2020

      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.

    • whstlAug 2025

      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.

    Related

    Nolan Lawsonnolanlawson.com133 people

    Safari is the new IE

    Nolan Lawson
    Personal · last shared 2026
    Coding Horrorblog.codinghorror.com2.1k people

    Farewell Stack Exchange

    Coding Horror
    Personal · last shared 2026
    Jake Archibaldjakearchibald.com191 people

    I discovered a browser bug

    Jake Archibald
    Personal · last shared 2026
    Tom Daletomdale.net44 people

    Web frameworks are transforming from runtime libraries into optimizing compilers

    Tom Dale
    Personal · last shared 2019
    freeCodeCampmedium.com/free-code-camp45 people

    I replicated an $86M project using open-source libraries (2017)

    freeCodeCamp
    Company · last shared 2025
    Pluralisticpluralistic.net606 people

    The Framework is the most exciting laptop I've used

    Pluralistic
    Personal · last shared 2026
    Matt Webbinterconnected.org128 people

    I wish my web server were in the corner of my room

    Matt Webb
    Personal · last shared 2026
    Stuart Langridgekryogenix.org65 people

    Everyone has JavaScript, right?

    Stuart Langridge
    Personal · last shared 2026