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

    LogRocket Blog

    blog.logrocket.com · Company blog · on HN since 2017

    Engineering blog from LogRocket, a frontend monitoring company, with tutorials on JavaScript, Rust, Node.js, and TypeScript.

    Visit blogHN submissions
    Web DevelopmentProgramming
    What HN says

    HN commenters link it as an introduction to topics like TypeScript enums, async Rust, and Rust GUI libraries; one notes the company's tracking product.

    Stats for nerds
    242HN people shared it
    371linked in comments
    3.1Kstory points
    Jan 2026last shared
    2017people per year2026

    Top posts on HN

    1. 1
      The easiest way to keep your web apps accessible: Just use text
      1 person · 393 points · first shared 2018 · 260 comments on HN
    2. 2
      Things you can’t do in Rust (and what to do instead)
      2 people · 308 points · first shared 2021 · 279 comments on HN
    3. 3
      Problems with TypeScript
      1 person · 196 points · first shared 2020 · 222 comments on HN
    4. 4
      Frustrations with React Hooks
      1 person · 171 points · first shared 2019 · 134 comments on HN
    5. 5
      A guide to threads in Node.js
      2 people · 165 points · first shared 2019 · 55 comments on HN
    6. 6
      How to deploy a React app for free
      2 people · 157 points · first shared 2020 · 66 comments on HN
    7. 7
      The history and legacy of jQuery
      4 people · 131 points · first shared 2019 · 107 comments on HN
    8. 8
      New ES2019 JavaScript features
      1 person · 92 points · first shared 2019 · 49 comments on HN
    9. 9
      You Shouldn’t Use GraphQL
      1 person · 86 points · first shared 2021 · 48 comments on HN
    10. 10
      Preact : a smaller, faster React alternative
      2 people · 76 points · first shared 2017 · 48 comments on HN

    What HN people wrote when they linked it

    • leolosoSep 2020

      You mean a filter to transform the query from A (say, with syntactic sugar syntax) to B (with final syntax)?

      I'm actually doing something similar in GraphQL by PoP, on a couple of levels: queries are decoupled into requested and executable, where they can differ in syntax, directives attached to them, and others. I wrote a bit about this strategy here:

      https://blog.logrocket.com/adding-directives-schema-code-first-graphql-servers/

      In addition, GraphQL by PoP does not understand the GraphQL syntax. It understands another syntax, that I've called PQL:

      https://graphql-by-pop.com/docs/extended/pql.html.

      PQL is a superset of the GraphQL query, so GraphQL by PoP transforms from GraphQL to PQL syntax and then executes it. For instance, this GraphQL query:

      ```

      query {

      posts {

      excerpt

      titleES: title @translate(from:"en",to:"en")

      }

      }

      ```

      is converted to this:

      ```

      posts.excerpt|title@titleES<translate(from:en,to:es)>

      ```

      Check it out here:

      https://newapi.getpop.org/api/graphql/?query=posts.excerpt|title@titleES%3Ctranslate(from:en,to:es)%3E

      This works great. Only issue is when there's some error when retrieving the data, and I need to return an error message with the path to the problem in the query. In that case, the path corresponds to the transformed PQL query, not the original GraphQL query. (It would be possible to have a mapping for them, token by token, but I haven't coded it)

      ---

      Btw, connected to PQL, GraphQL by PoP can support the embeddable…

    • qohenJun 2020

      For docker images in general: the best way is to do multi-stage builds [0][1]. You will need to (re)write your Docker files to use this.

      A quick-and-dirty way that doesn't require rewriting is just to use the experimental --squash flag[1] (i.e. add: --experimental --squash) when running docker (you can also turn on --experimental permanently by putting
      { "experimental": true } into docker's /etc/docker/daemon.json file. And, on a Mac, you can open the Docker app and there's a checkbox to turn on experimental features and then you can just use --squash in the terminal).

      Anecdotally, I had a 4.67GB docker file that --squash reduced to a little over 1GB. However, a rewrite of the docker file to do a multi-stage build took that 4.67GB file down to just under 0.5GB.

      P.S. Pro-tip: if you want to speed up your docker builds, if you're using 18.06 or higher, you can use use buildkit [2]. Again, anecdotally, on a 6-core Macbook from 2019 I think I got a 30% speedup or so -- your mileage may vary (a colleague with an 8-core machine I think got a 50% speedup -- it's been a while, so these percentages may be a bit off, but you get the idea).

      It was also an experimental feature early on, so you needed to have experimental features turned on (as described above with --squash). With later versions you don't need to do that -- check your version's documentation.

      Anyway, you can either set an environment variable to use it i.e. export DOCKER_BUILDKIT=1 or you can set this permanently…

    • bryanrasmussenMay 2022

      I'm not talking about fizzbuzz or algorithm problems, I'm talking about programming assignments, the first one I ever had was something like the following:

      Please use the HN API to build a tree view of HN comments that allow you to see what the top posts are on a day where you can drill down to see comments on the posts and the top commenters, use client side vanilla JavaScript code to get data, allow persistence of data to local storage so that if the computer goes offline you will be able to still read content. Separation of concerns, nice code structure, and a nice presentation will impress us.

      Suggested time: 4 hours.

      Others, here is a partially completed project set up, some mock data, a link to a technical specification of a data format you are probably unfamiliar with that you need to also use a graphQL endpoint to query and build a table view of Apartment listings with pictures of the apartment, the location, the zip code, the phone number of country, rental price. Users should be able to login and see the latest apartment listings, it should be possible to sort by latest updated listing and by rental price. Sorting should persist between pages. Tech stack to use React, Sass, Webpack, a nodejs static server.

      time: 4 hours.

      This one was interesting because it is the only one I have ever had where I managed it in EXACTLY 4 hours (except for ones that were more like use what language you like to do this algorithm)

      I even made a cool SVG log in component based on…

    • andrew_Jan 2022

      lukeed has several extremely popular npm packages/libs which share a lot in common:

      - their twitter following is used to boost newly released packages

      - they were released as alternatives to existing packages/libs with the flashy promise of being smaller, less complicated, faster

      - negative feedback is rebuffed as "an attack"

      - they're all very green

      - they lack features and stability of the more mature packages they aim to supplant

      - once released and popular, they cease getting frequent updates

      Now, yes this is a generalization. It doesn't apply to all of their packages, and not at the same point in time. But there is a pattern there. Some quick diving into the author's Github account, and their more popular repos shows the pattern. It's also clear that this was a choice made by a Svelte contributor to use their own package for "official" support in Svelte Kit.

      When it comes to polka itself, I just don't get why a maturing framework like Svelte would choose something whose only real advantage lies in micro-benchmarking porn [1]. Speculation aside, I'm surprised the Svelte team didn't look at that choice through a lens of higher scrutiny. Koa would have been an infinitely better choice in my personal opinion, and there are several community-driven setups [2][3] for it.

      [1] https://github.com/lukeed/polka#benchmarks

      [2] https://github.com/kaladivo/svelte-kit-koa-boilerplate

      [3] https://blog.logrocket.com/sapper-svelte-tutorial-2021/

    • DougBTXFeb 2024

      The broader idea of “pass a value between functions without naming it in the caller” crops up in a few other places outside FP.

      In Rust there is the “builder pattern”[0] where the builder isn’t mentioned directly:

      ByValueBuilder::new() .with_favorite_number(42) .with_favorite_programming_language("Rust") .build() In OO land they are called “fluent interfaces”[1], commonly used when building SQL queries while only mentioning the final query at the end:

      query = translations .Where(t => t.Key.Contains("a")) .OrderBy(t => t.Value.Length) .Select(t => t.Value.ToUpper()); Especially in the query builder example, since it is essentially building up an AST, the type of the top-level object can change in each call, but since it isn’t named it also doesn’t need to be typed, so there’s no issue with variable shadowing etc.

      [0] https://blog.logrocket.com/build-rust-api-builder-pattern/ [1] https://en.m.wikipedia.org/wiki/Fluent_interface

    • truth_seekerAug 2025

      Magic-RegExp aims to create a compiled away, type-safe, readable RegEx alternative that makes the process a lot easier. https://blog.logrocket.com/understanding-magic-regexp-regexp...

      example from blog:

      import { createRegExp, exactly, wordChar, oneOrMore, anyOf, } from "magic-regexp";

      const regExp = createRegExp(

      exactly("http") .and(exactly("s").optionally()) .and("://") .optionally() .and(exactly("www.").optionally()) .and(oneOrMore(wordChar)) .and(exactly(".")) .and(anyOf("com", "org", "io")), ["g", "m", "i"] );

      console.log(regExp);

      /(https?:\/\/)?(www\.)?\w+\.(com|org|io)/gmi

    Related

    Next.js Blognextjs.org271 people

    Next.js 12

    Next.js Blog
    Company · last shared 2026
    Rust Blogblog.rust-lang.org533 people

    Announcing Rust 1.0

    Rust Blog
    Company · last shared 2026
    Slack Engineeringslack.engineering281 people

    Taking PHP Seriously

    Slack Engineering
    Company · last shared 2026
    React Bloglegacy.reactjs.org35 people

    Archeology of React (2016)

    React Blog
    Company · last shared 2025
    Shuttle Blogshuttle.rs34 people

    Infrastructure From Code

    Shuttle Blog
    Company · last shared 2024
    ESLint Blogeslint.org112 people

    Postmortem for Malicious Packages Published on July 12th, 2018

    ESLint Blog
    Company · last shared 2026
    GitHub Bloggithub.blog1.8k people

    YouTube-dl's repository has been restored

    GitHub Blog
    Company · last shared 2026
    Atlassian Developer Blogdeveloper.atlassian.com115 people

    A better pull request

    Atlassian Developer Blog
    Company · last shared 2026