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

  1. 1
    A List of Chrome DevTools Tips and Tricks
    3 people · 194 points · first shared 2018 · 28 comments on HN
  2. 2
    Living the “Van Life” as a Developer
    3 people · 8 points · first shared 2021 · 1 comments on HN
  3. 3
  4. 4
    Javascript automatic semicolon insertion
    3 people · first shared 2018
  5. 5
    Homepage
    3 people · first shared 2018
  6. 6
    How to work from home without going crazy
    2 people · 5 points · first shared 2019 · discussion on HN
  7. 7
    A Guide to JavaScript Regular Expressions
    2 people · 4 points · first shared 2018 · discussion on HN
  8. 8
    I posted my password / API key on GitHub
    2 people · 4 points · first shared 2019 · 1 comments on HN
  9. 9
    A List of Sample Web App Ideas
    2 people · 4 points · first shared 2018 · discussion on HN
  10. 10
    A Visual Studio Code Tutorial
    2 people · 4 points · first shared 2018 · discussion on HN
  11. 11
    The HTML Canvas Guide
    2 people · 3 points · first shared 2018 · discussion on HN
  12. 12
    How to Estimate Programming Time
    2 people · 3 points · first shared 2019 · 1 comments on HN
  13. 13
    Auto trigger deploys on Netlify
    2 people · 3 points · first shared 2018 · discussion on HN
  14. 14
    What are peer dependencies in a Node module? (2019)
    2 people · 2 points · first shared 2020 · discussion on HN
  15. 15
    Celld: Self-hosted, distributed durable objects
    2 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)

Keyboard shortcuts

/Search
j kNext / previous blog
EnterOpen selected blog
vVisit the blog site
fFollow / unfollow
lSwitch grid / list view
dSwitch dark mode
g hHome
g pTop posts
g tTopics
g fFollowing
g lLiked
g yHistory
g qFAQ
EscBack / close