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
    K

    Keith Cirkel

    keithcirkel.co.uk · Personal blog · on HN since 2011

    Keith Cirkel is a JavaScript developer who writes on npm scripts as a build tool, CSS, color, and web components.

    Visit blogRSSHN submissions
    Web DevelopmentProgrammingDesign & UX
    What HN says

    Commenters praise his npm-as-build-tool post for replacing Grunt and Gulp, and his deep-dive article on color use.

    Stats for nerds
    59HN people shared it
    35linked in comments
    539story points
    Mar 2026last shared
    2014people per year2026

    Top posts on HN

    1. 1
      Why we should stop using Grunt and Gulp
      6 people · 169 points · first shared 2014 · 106 comments on HN
    2. 2
      CSS Classes Considered Harmful
      5 people · 116 points · first shared 2022 · 119 comments on HN
    3. 3
      Metaprogramming in ES6: Symbols and why they're awesome
      1 person · 104 points · first shared 2015 · 43 comments on HN
    4. 4
      The ups and downs of the HTTP header
      1 person · 58 points · first shared 2013 · 33 comments on HN
    5. 5
      How to Use NPM as a Build Tool
      17 people · 38 points · first shared 2014 · 3 comments on HN
    6. 6
      I don't have time to learn React – Keith Cirkel
      3 people · 11 points · first shared 2024 · 3 comments on HN
    7. 7
      Too Much Color
      6 people · 10 points · first shared 2026 · 1 comments on HN
    8. 8
      What's My ΔE(OK) JND?
      6 people · 6 points · first shared 2026 · 1 comments on HN
    9. 9
      I-HTML, an inline-HTML import element
      3 people · 4 points · first shared 2024 · Discussion on HN
    10. 10
      How to Use NPM as a Build Tool (2014)
      2 people · 3 points · first shared 2017 · Discussion on HN

    What HN people wrote when they linked it

    • edraferiDec 2014

      The author addresses this issue directly in his follow up post [1]. He describes two ways to get watch functionality when using NPM as a build tool.

      First, "most tools facilitate this option themselves - and usually are much more in tune with the intricacies of the files that should be listened for. For example Mocha has the -w option, as does Stylus, Node-Sass, Jade, Karma, and others." These options are simply invoked when the tool is called from NPM.

      Second, "not all tools support this, and even when they do - you might want to compose multiple compile targets into one task which watches for changes and runs the whole set. There are tools that watch files and execute commands when files change, for example watch, onchange, dirwatch, or even nodemon."

      [1] http://blog.keithcirkel.co.uk/how-to-use-npm-as-a-build-tool/

    • e12eJul 2020

      A little npm actually goes quite a long way:

      https://www.keithcirkel.co.uk/how-to-use-npm-as-a-build-tool/

      https://github.com/keithamus/npm-scripts-example

      Although you should probably prefer yarn these days (concepts should mostly transfer over).

      As for tranformations/transpiling/minifying... You could use webpack - it is popular, but quite complex. I've found this a decent introduction to understand how it works:

      https://www.freecodecamp.org/news/creating-a-production-ready-webpack-4-config-from-scratch/

      The good part about going that route, is that is quite explicit... You might get away with throwing out explicit in favour of convention - by using parcel instead:

      https://github.com/parcel-bundler/parcel

      (looks like gh readme is currently best entry point for 2.0 docs).

    • chatmastaSep 2024

      You can achieve some hacky form of operator overloading by implementing the “well-known” Symbol.toPrimitive, and exploiting the fact that the addition operator coerces its operands to either a Number or String.

      It won’t be perfect but maybe you can do something useful with it. Symbols in general are a really powerful tool that almost enable meta-programming in JS. I searched “Symbol” in your repository and didn’t see any results, so if you aren’t familiar with them, I recommend taking the time to read up on how you can use them.

      See: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol/toPrimitive#modifying_primitive_values_converted_from_an_object

      And this 2015 blog: https://www.keithcirkel.co.uk/metaprogramming-in-es6-symbols/

    • kalaksiMar 2026

      https://www.keithcirkel.co.uk/whats-my-jnd/?r=AG4mKP____6_

      "This shouldn't be possible. I'm not saying that you cheated, but not not saying that."

      0.0011. The quote seems a bit hyperbolic. There were maybe 2-3 that I didn't see and missed. 1-2 that I didn't hit perfectly but close enough. Display probably affects results (but didn't change any settings for this). I have a Dell IPS. I also moved my head around a bit, felt natural while trying to discern the colors.

      I do have a good vision (including color). Reminds me of the other color-game where you order some colored boxes to form a spectrum.

      Edit: just tried hard mode and got 0.0084. Missed maybe 3 that I couldn't see. Usually some magenta or blue colored. Grey and red / brown seem to be the easiest.

    • fulldecent2Feb 2020

      Here is my list of solo developer blogs. Usually they are on topic. This does not include personal blogs I follow that happen to be developers.

      @mdo (Bootstrop) - http://markdotto.com/

      Keith Cirkel - https://www.keithcirkel.co.uk/

      Coding – Corbin's Treehouse - https://www.corbinstreehouse.com/blog

      Aaditya Purani – Ethical Hacker - https://aadityapurani.com/

      Ben Balter - http://ben.balter.com/

      fulldecent - https://privacylog.blogspot.com

      Orange - http://blog.orange.tw/

      Cocoa with Love - http://www.cocoawithlove.com/

      Mark Otto - http://markdotto.com/

      Moxie Marlinspike's Blog - http://www.thoughtcrime.org/blog/

      hueniverse - http://hueniverse.com/

    • edvaldJun 2018

      I'm a pretty heavy TS user and I was pondering the same thing. I've not been able to find a motive for allowing numbers as interface keys, but Symbols actually do make sense since, turns out (I'm always learning something new), you can use them as object keys in ES6: https://www.keithcirkel.co.uk/metaprogramming-in-es6-symbols/

      That post outlines a few use cases which are admittedly outside of everyday JS/TS usage but I can see them as quite powerful when, for example, building frameworks and libraries that expose an API. I'd offer real-world examples of my own but I'm still working it out for myself .)

    Related

    Nicolas Fränkelblog.frankel.ch54 people

    Teeing, a hidden gem in the Java API

    Nicolas Fränkel
    Personal · last shared 2026
    Lee Robinsonleerob.io46 people

    How Stripe Designs Websites (2017)

    Lee Robinson
    Personal · last shared 2026
    Jeremy Keithadactio.com165 people

    Browsers

    Jeremy Keith
    Personal · last shared 2026
    Pony Fooponyfoo.com54 people

    The Controversial State of JavaScript Tooling

    Pony Foo
    Personal · last shared 2022
    Isaac Schlueterblog.izs.me88 people

    A member of our community is missing, help find him

    Isaac Schlueter
    Personal · last shared 2026
    Lea Veroulea.verou.me121 people

    Today’s JavaScript, from an outsider’s perspective (2020)

    Lea Verou
    Personal · last shared 2026
    Ben Nadelbennadel.com82 people

    I've been merging microservices back into the monolith

    Ben Nadel
    Personal · last shared 2026
    SurviveJSsurvivejs.com35 people

    Interview with the author of React-like Inferno about JavaScript optimisations

    SurviveJS
    Personal · last shared 2023