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

    Brad Frost

    bradfrost.com · Personal blog · on HN since 2014

    Brad Frost, a web designer and consultant, writes about front-end design, design systems, and his Atomic Design method.

    Visit blogRSSHN submissions
    Web DevelopmentDesign & UX
    What HN says

    Commenters praise Atomic Design for making component-based UI work simpler, and cite his post on the word 'just' and learning React.

    Stats for nerds
    91HN people shared it
    86linked in comments
    4.4Kstory points
    Apr 2026last shared
    2015people per year2026

    Top posts on HN

    1. 1
      Don’t Get Clever with Login Forms
      4 people · 1.1K points · first shared 2019 · 506 comments on HN
    2. 2
      Facebook, You Needy Sonofabitch
      3 people · 1.1K points · first shared 2017 · 387 comments on HN
    3. 3
      Google, You Creepy Sonofabitch
      1 person · 457 points · first shared 2018 · 383 comments on HN
    4. 4
      Ditching the MacBook Pro for a MacBook Air
      1 person · 368 points · first shared 2018 · 568 comments on HN
    5. 5
      My struggle to learn React
      3 people · 230 points · first shared 2018 · 210 comments on HN
    6. 6
      React is the new jQuery
      1 person · 225 points · first shared 2018 · 197 comments on HN
    7. 7
      Front-end design, React, and a bridge over the great divide
      2 people · 206 points · first shared 2019 · 133 comments on HN
    8. 8
      You probably don’t need input type=“number”
      2 people · 149 points · first shared 2019 · 116 comments on HN
    9. 9
      Surviving the New MacBook Pro
      2 people · 126 points · first shared 2017 · 116 comments on HN
    10. 10
      Big ol’ ball o’ JavaScript
      1 person · 95 points · first shared 2019 · 133 comments on HN

    What HN people wrote when they linked it

    • evunveotJul 2015

      I'm surprised how much the personal standards I've built up working solo for many years align with these.

      Regarding "Presentation-Specific vs Layout-Specific Styles," the way I've come to organize things is roughly "outside-in" i.e.: position, margin, border, width/height, padding, font/line-height, text styles. I also always put "display" and "box-sizing" first, if they're present, since they change the effect of several things that follow.

      I disagree with "Prefer nested selectors ... only if both .foo and .foo .bar need styling." I prefer nested selectors always, mostly because it's annoying to have to go back and nest something later when you realize the container needs rules, too. Also I sense that there's something beneficial about the nesting of the (in my case) scss matching the nesting of the HTML, but that might just be aesthetics.

      Also disagree with "Settle for a few (2-3) breakpoints and use those only," at least for the types of designs I have to work with nowadays. The prevailing style seems to consist of a series of striking, highly independent sections with their own internal layout (think the landing page of a typical, new open source project or startup, with a hero unit or carousel, a list of features in some number of columns, testimonials in some [other] number of columns, etc.). If you make each of those sections adhere to the same handful of breakpoints, either you carefully limit your design or you risk ending up with strange looking layouts in…

    • DoreenMicheleOct 2020

      I have a long history of doing "community development" type work both online and off. And that includes being lead mod for an organization trying to make the transition to registered non-profit and volunteer work of various sorts over the years and so forth.

      It's actually hard to communicate what I do. I'm sort of like the "mortar" person described in this article about trying to convey your job title: https://bradfrost.com/blog/post/job-title-its-complicated/

      I do a variety of things and I know something about design and I know something about economic development and I know something about community building (the social fabric part of that) of various sorts and so forth. It's not you, it's partly that community development work tends to suffer from this problem that outsiders have no idea what "planning" (or "development") is and so forth and it's partly that I'm kind of a Jill of All Trades and I never quite know how to tell people what I do.

      Thank you for that suggestion in your second paragraph. I have no idea how to do that, but that's terrific feedback and a great idea.

      I'm currently short of sleep, but will try to make those changes at some point (hopefully soon-ish). That looks like a huge improvement to what I did and I will think some more on what I did there and how that got misinterpreted by you and how I can make it better.

    • yellowappleJun 2019

      I love how this article cites Brad Frost's "Don't Get Clever with Login Forms"[1], yet at the same time advocates specifically for doing one of the "don'ts" listed in that cited article ("don't split login across multiple pages").

      Reading through Twilio's article, I still don't see a satisfactory explanation why they did it this way instead of just presenting both fields plus a list of buttons for other authentication methods (like what they even acknowledged to be the norm, citing examples like Pinterest and Twitch). If you're trying to dynamically choose the authentication method by looking up some preference associated with the user's email address, then you are exhibiting the textbook definition of overthinking the problem.

      If users want to login with Google/Facebook/Twitter/Microsoft/etc. credentials, provide a button for it and call it a day. Those login methods will automatically (in all likelihood) provide an email address for your app to tie to its internal "user" representation (though you might have to explicitly request that particular permission in the OAuth or SAML or whatever flow).

      [1]: http://bradfrost.com/blog/post/dont-get-clever-with-login-forms/

    • tylerchildsFeb 2021

      > Is someone forcing you to use it against your will?

      I mean, kind of?

      My problem with GraphQL isn't necessarily GraphQL itself, but with the sprawl of things creeping further and further into client-side code.

      As companies are finding GraphQL to "unlock greater developer productivity", it's becoming more and more expected to have this in our toolkit as "front-end people".

      There's been a few blog posts recently that I relate to. I feel like I'm at a point in my career where I could "knuckle-down and get good" but I don't actually want to get good at more and more endless technologies. I'd rather be able to define my niche specialization and thrive within that space.

      [1]: https://bradfrost.com/blog/post/front-of-the-front-end-and-back-of-the-front-end-web-development/

      [2]: https://www.trysmudford.com/blog/i-think-im-a-design-engineer/

      [3]: https://notes.baldurbjarnason.com/2021/02/20/the-layers-of.html

    • typetrailJul 2019

      Are you referring to posts like this?: http://bradfrost.com/blog/post/my-struggle-to-learn-react/

      "There’s a giant, great JavaScript community out there, but I feel like a lot of times there’s an implied (or sometimes explicit) 'OBVIOUSLY' or 'just' that comes with a lot of the territory. For instance, I was confused why there are different ways to create components in React, and several people tersely responded 'it’s common knowledge that you use functions for simple components and use classes for managing state.' I had no idea! I didn’t see an explanation of that stuff in the docs. If that’s what the convention is, that’s totally fine. Just don’t assume everyone has that info downloaded.",

      The assessment is pretty harsh on the guy, I think in Brad's case he's one of the more publicly documented instances of someone putting in the right kinds of effort.

    • muzaniAug 2022

      With Android it's actually difficult as most boilerplates go obsolete in 2-3 years.

      But basically copying functionality that takes a while to build.

      1. Design system [1] that's integrated with Compose. Meaning blocks are built as part of other blocks.

      2. Networking and caching - these can take half a day to assemble and debug.

      3. Test integration. Easily days or weeks to do on Android, because dumb stuff like some misaligned libraries.

      4. Dependency injection, also harder to set up the larger code gets.

      [1] https://bradfrost.com/blog/post/atomic-web-design/

    Related

    Daring Fireballdaringfireball.net1.8k people

    Facebook is an attack on the open web

    Daring Fireball
    Personal · last shared 2026
    Dan Abramovmedium.com/@dan_abramov101 people

    A response to “An experienced JavaScript dev’s account of learning React”

    Dan Abramov
    Personal · last shared 2025
    Coding Horrorblog.codinghorror.com2.1k people

    Farewell Stack Exchange

    Coding Horror
    Personal · last shared 2026
    Facebook Engineeringcode.facebook.com552 people

    Relicensing React, Jest, Flow, and Immutable.js

    Facebook Engineering
    Company · last shared 2021
    Ignore the Codeignorethecode.net112 people

    Oberon (2009)

    Ignore the Code
    Personal · last shared 2026
    GNOME Blogsblogs.gnome.org490 people

    AirPods fast connect security vulnerability

    GNOME Blogs
    Company · last shared 2026
    Overreactedoverreacted.io186 people

    Goodbye, Clean Code

    Overreacted
    Personal · last shared 2026
    A Smart Bearblog.asmartbear.com407 people

    Avoid blundering: 80% of a winning strategy

    A Smart Bear
    Personal · last shared 2026