Flavio Copes
flaviocopes.com · Personal blog · on HN since 2012
Flavio Copes, a developer and educator, writes JavaScript and web development tutorials, handbooks, and posts on remote work and developer life.
What HN saysHN links it for his free handbooks, such as the CSS handbook, and his daily frontend posts; commenters read and correct his guides.
56HN people shared it
17linked it in comments
93stories submitted
1.1Kstory points
3 months agolast shared
2012people per year2026
Most-shared posts
- 1A List of Chrome DevTools Tips and Tricks3 people · 194 points · first shared 2018 · 28 comments on HN
- 2Living the “Van Life” as a Developer3 people · 8 points · first shared 2021 · 1 comments on HN
- 3The node_modules folder size is not a problem. It's a privilege3 people · 4 points · first shared 2019 · discussion on HN
- 4Javascript automatic semicolon insertion3 people · first shared 2018
- 5Homepage3 people · first shared 2018
- 6How to work from home without going crazy2 people · 5 points · first shared 2019 · discussion on HN
- 7A Guide to JavaScript Regular Expressions2 people · 4 points · first shared 2018 · discussion on HN
- 8I posted my password / API key on GitHub2 people · 4 points · first shared 2019 · 1 comments on HN
- 9A List of Sample Web App Ideas2 people · 4 points · first shared 2018 · discussion on HN
- 10A Visual Studio Code Tutorial2 people · 4 points · first shared 2018 · discussion on HN
- 11The HTML Canvas Guide2 people · 3 points · first shared 2018 · discussion on HN
- 12How to Estimate Programming Time2 people · 3 points · first shared 2019 · 1 comments on HN
- 13Auto trigger deploys on Netlify2 people · 3 points · first shared 2018 · discussion on HN
- 14What are peer dependencies in a Node module? (2019)2 people · 2 points · first shared 2020 · discussion on HN
- 15Celld: Self-hosted, distributed durable objects2 people · 1 points · first shared 2026 · discussion on HN
What HN people wrote when they linked it
flaviocopes · 2018-04-11
You already got some great resources here. I also drop my blog https://flaviocopes.com where I am tackling one frontend development topic every day, if you want one more item in your RSS feed!
oliverkwebb · 2025-09-23
You should be posting a link to https://flaviocopes.com/books/ or https://flaviocopes.pages.dev/books/css-handbook.pdf
The mailing list thing just sends you a public url. There's really no need to subscribe to it
arkitaip · 2019-08-27
I am a typography nerd but let's be real here: web fonts are not so important that you should trade away your visitors' privacy. A CSS system fonts approach [0] is not only great for user privacy but results in better performance, security and more consistent GUIs.
[0] See https://flaviocopes.com/css-system-fonts/#popular-websites-use-system-… . In the future, web devs might reliably use "font-family: system-ui;"
acutesoftware · 2018-11-13
Thanks for this - really nice to read, and cleared up a lot of things I have seen and didn't really get.
A couple of typos:
Page 103 of PDF under "Event bubbling and event capturing"
Bubbling and capturing are the 2 models that events use to propagate.
Suppose you DOM structure is
should be
Suppose your DOM structure is
Page 153 of PDF under "Operators > Arithmetic operators"
It shows Division (https://flaviocopes.com/) but should have been the / symbol
seddin · 2019-02-08
https://flaviocopes.com/ should be here too
nkko · 2026-08-13
idk, Cloudflare is also struggling to explain durable objects for years, maybe this would help https://flaviocopes.com/celld/
jryb · 2024-07-08
Maybe try fish? Tab completion will suggest subcommands, and if you type - or -- and hit tab, it will suggest the available options with help text generated from man pages (example: https://flaviocopes.com/images/fish-shell/autocomplete.png). Doesn't really help with positional arguments but it's definitely enhanced the discoverability of many tools for me.
Isthatablackgsd · 2021-11-30
Here a few guides that I used in the past that helps me to understand and how to set up for Calibre-Web to work with Docker.
I have a guide for the Docker with local filesystem that helps me to make it work[1],[2]. I remember that Docker is particular with file path and you have to use the Docker file path convention, they uses forward slashes instead backslashes like Windows.
[1] https://flaviocopes.com/docker-access-files-outside-container/
[2] https://stackoverflow.com/questions/44876778/how-can-i-use-a-local-fil…
paavohtl · 2021-02-11
As far as I know, a (C-like) language must either have:
- A statement separator (semicolons)
- Significant whitespace
Otherwise parsing the language is very likely ambiguous, e.g JavaScript [1] [2].
[1] https://flaviocopes.com/javascript-automatic-semicolon-insertion/
[2] https://medium.com/better-programming/you-might-need-those-semicolons-…
pier25 · 2020-04-15
I was wondering why the animation was so stuttery and then I saw they are using setInterval for the animation...
Jesus it's 2020 at least use requestAnimationFrame!
https://flaviocopes.com/requestanimationframe/
vnglst · 2019-11-01
Ah my bad, I think that's the wrong link describing the old process. I remember a recent talk by Axel (author of that post) describing the new process where features are accepted as soon as they are done (i.e. stage 4). But I can't find any articles by him to back this up, so maybe my memory is failing me ;-)
Update: ok, as soon as a proposal reaches stage 4 it's considered finalized and part of the standard. A proposal can reach stage 4 at any time during the year. At that point browser vendors will start implementing those. https://flaviocopes.com/es2019/
nilsandrey · 2019-08-01
The "The Node.js Handbook" and the "The JavaScript Handbook" from https://flaviocopes.com/page/ebooks/
Very handy and turned later into official doc at https://nodejs.dev/
dmix · 2019-02-08
The difference, at least for Vue single file template components is that it's 3 separate areas in one file:
- <template /> (Templated HTML)
- <script /> (JS OR Typescript)
- <style /> (CSS OR SASS/etc)
Whereas in old PHP files you could mix it in anywhere and the files were a big mess. Including inline SQL into your view templates which is hardly a good separation of concerns. While a Vue component can be separated into separate files, at least as one it all represents one isolated piece of the interface.
https://flaviocopes.com/vue-single-file-components/
petermcneeley · 2018-12-07
"Also, I wouldn’t have hired the guy who doesn’t use semicolons in his JavaScript, either."
This seems very similar to the c++ issue with single statement ifs.
https://flaviocopes.com/javascript-automatic-semicolon-insertion/
redmattred · 2018-11-12
Direct link to the book without having to provide your email address: https://flaviocopes.com/page/javascript-handbook/
writesoftware · 2018-01-26
You don't mention which language you're interested in, but if you use Go, check out my guide on Go Data Structures https://flaviocopes.com/golang-data-structures/
Even if you're not into Go at all, I think the language is nice to beginners and the examples can be easily read.
I hope you'll find it useful, it focuses more on the implementation than on the theory but it could be reference material along with more in-depth books.
h1d · 2019-03-31
Not too serious but I want to stop using a language still forcing me to type semi colons.
CSS -> Stylus. I don't even have to type brackets and colons and not just semi colons.
JS -> JS (TS). Some people may not be aware but you can fully write JS by omitting semi colons. (Except on a few occasions* but I can write a project without one just fine and decent editor will warn you when you're supposed to have one, like IntelliJ and derivatives. Configure it to not prefer semi colons and 1 shortcut key to reformat the code and all stripped.)
PHP -> Ruby, Python, JS all don't ask you for semi colons. Array expression is also too verbose in PHP.
Java -> Kotlin.
HTML -> Pug/Slim/Etc. While there's no semi colon, the verbosity of HTML is insane, people will appreciate the simplicity of template engines like Pug and never look back.
Bash -> Bash. They didn't have one decades ago...
* https://flaviocopes.com/javascript-automatic-semicolon-insertion/ (some random blog explaining JS semi colons)