Work in progress: 181,232 of 181,233 sites checked so far, more every week · updated 2 Nov 2026Missing a blog? Tell us

Top all-time · #1269

M

Medium Engineering

Company blog · medium.engineeringprogrammingweb

Medium Engineering is the company blog at medium.engineering, writing about programming and web. Since 2016, 56 different Hacker News readers have linked it 62 times, most often “Why ContentEditable Is Terrible – Or: How the Medium Editor Works”. It is still writing: the last post was on 2026-10-22, and you can follow it by feed.

Visit the blog
62mentions?
56HN people?
2016–2026first – last linked?
Links on Hacker News per year · peak 11 in 2017

Too few sampled comments (21) to say how often HN recommends it.?

Why HN links it

HN readers link Medium's 'Why ContentEditable is terrible' post, which explains browser inconsistencies that make contenteditable hard to use for rich text editors. Another linked post covers a flat-array text formatting model.

Summarised by Claude from a sample of 21 HN comments that link here. Each comment is marked recommending, critical or neutral (citing without judging); how this works.

Most-linked posts?

  1. Why ContentEditable Is Terrible – Or: How the Medium Editor Works
    15 people · 16 mentions · first linked 2016-08-31
  2. The curious case of the disappearing Polish S (2015)
    7 people · 7 mentions · first linked 2016-11-03
  3. Microservice Architecture at Medium
    6 people · 6 mentions · first linked 2018-10-26
  4. The days of .dev domains for testing code are over
    5 people · 5 mentions · first linked 2017-11-29
  5. Mapping Medium’s Tags – Medium Engineering
    2 people · 2 mentions · first linked 2018-01-24
  6. Medium's Engineering Interview Rubric
    2 people · 2 mentions · first linked 2017-12-28

What Hacker News says?

  1. According to this recent post Google is in charge of the master list that all the other browsers use. Expect the .dev domains to stop working on those other browsers shortly. https://medium.engineering/use-a-dev-domain-not-anymore-9521...

    Comment linking /use-a-dev-domain-not-anymore-95219778e6fd

    on “Chrome is Not the Standard”
  2. Submitted Typography is impossible (2016) as a story · 219 points

    HN discussion
  3. https://ckeditor.com/blog/ContentEditable-The-Good-the-Bad-a... Or https://medium.engineering/why-contenteditable-is-terrible-1... Are two that I remember reading... nearly 10 years ago, holy hell can someone please make time slow down? Which discuss the common API pitfalls with `contenteditable` -- though I've no idea how painful it is in 2022. Could be a lot better now?

    Comment linking /why-contenteditable-is-terrible-122d8a40e480?gi=d435208e3b0d

    on “Improving Firefox Responsiveness on macOS”
  4. Submitted The curious case of the disappearing Polish S (2015) as a story · 159 points

    HN discussion
  5. Some more: The disappearing Polish S https://medium.engineering/the-curious-case-of-disappearing-... System Shock "A story of a 25-year-old font coming back with a vengeance" https://medium.com/designing-medium/system-shock-6b1dc6d6596...

    Comment linking /the-curious-case-of-disappearing-polish-s-fa398313d4df

    on ““My wife has complained that OpenOffice will never print on Tuesdays” (2009)”
  6. Submitted The curious case of the disappearing Polish Ś (2015) as a story · 125 points

    HN discussion
  7. Sorry but it’s just using the standard contenteditable attribute, which works terribly, see https://medium.engineering/why-contenteditable-is-terrible-1...

    Comment linking /why-contenteditable-is-terrible-122d8a40e480

    on “Pell – A simple and small rich-text editor for the web”
  8. Submitted The days of .dev domains for testing code are over as a story · 73 points

    HN discussion
  9. Also the editor that will output the most inconsistent HTML across browsers. There's a reason all those other editors try and fix contenteditable (and are therefore > 1k), for more info see https://medium.engineering/why-contenteditable-is-terrible-1...

    Comment linking /why-contenteditable-is-terrible-122d8a40e480

    on “Pell – A simple and small rich-text editor for the web”
  10. Submitted Use a .dev domain? Not anymore as a story · 10 points

    HN discussion
  11. jitl · 2022-06-21Recommends
    Writing a ContentEditable editor means learning the internal state machines and undocumented behaviors of every browser you support. There are many articles online about ContentEditable / rich text editing. This one is a classic https://medium.engineering/why-contenteditable-is-terrible-1... The major issue for both Android and CJK input is dealing with “composition” of characters by an “input method editor”. https:…

    Comment linking /why-contenteditable-is-terrible-122d8a40e480

    on “Lexical – a web text editor framework that powers Facebook”
  12. Submitted GraphQL Server Design Medium as a story · 5 points

    HN discussion
  13. There is also a whole slew of issues with Polish characters. Polish keyboard setup relies on "right-alt" and a letter to get it's diacritics variation. Ie: 'ą' is 'right-alt'+a Windows for backwards compatibility reports 'right-alt' as 'alt+control'. Many applications developers assign key combos with no negative checks. So 'ctrl-s', typically used for save gets triggered when user wants to type 'ś'. To repeat, "rig…

    Comment linking /the-curious-case-of-disappearing-polish-s-fa398313d4df?gi=56e8f39b530e

    on “Why keyboard shortcuts don't work on non-US layouts and how devs could fix it”
  14. Submitted Why ContentEditable Is Terrible – Or: How the Medium Editor Works as a story · 4 points

    HN discussion
  15. One of unresolved questions of rich text in my mind is what to do with these markup “codes”, explicit or hidden, because while the (usually) nested open/close structure is a non-terrible way for describing formatting in plain text, it is IMO a completely unnatural model (mental or programmatic) of describing rich text by itself, not backed by marked-up plain text. This is apparent in abstraction leaks like the one y…

    Comment linking /why-contenteditable-is-terrible-122d8a40e480

    on “You can legally get and run WordPerfect for free”
  16. Submitted Microservice Architecture at Medium as a story · 4 points

    HN discussion
  17. Ralfp · 2017-04-17Recommends
    Theres also good article from Medium's engineering titled "Why ContentEditable is terrible": https://medium.engineering/why-contenteditable-is-terrible-1...

    Comment linking /why-contenteditable-is-terrible-122d8a40e480

    on “Slate.js: Customizeable rich text library inspired by Draft.js”
  18. Submitted 2 Fast 2 Furious: migrating Medium’s codebase without slowing down as a story · 4 points

    HN discussion
  19. Here's that Medium post: Why Content Editable is Terrible https://medium.engineering/why-contenteditable-is-terrible-1...

    Comment linking /why-contenteditable-is-terrible-122d8a40e480

    on “Slate.js: Customizeable rich text library inspired by Draft.js”
  20. Submitted Medium open sourced their hiring process as a story · 4 points

    HN discussion
  21. jkaptur · 2016-08-31Recommends
    Here's a great technical explanation of the problem: https://medium.engineering/why-contenteditable-is-terrible-1...

    Comment linking /why-contenteditable-is-terrible-122d8a40e480

    on “Show HN: Poor man's Google Docs”
  22. Submitted Why contenteditable is terrible or: how Medium works as a story · 3 points

    HN discussion
  23. ZenPsycho · 2018-12-06Recommends
    manipulating JSON (really, just plain native language objects) is way more straightforward than manipulating the XML dom. The purpose of formats like this is to make inexpressible the kinds of documents that result in difficult to untangle bugs, and frustrating UI behaviour. See this article about how Medium's editor was designed for some essential background of the motivation for this JSON format https://medium.eng…

    Comment linking /why-contenteditable-is-terrible-122d8a40e480

    on “Portable Text – JSON rich text specification for content editing platforms”
  24. Submitted Mapping Medium’s Tags – Medium Engineering as a story · 3 points

    HN discussion
  25. Not really. It revolves around textarea not allowing rich inputs. That includes @-mentions, /-commands, block-based content builders etc. Textarea is laughably basic when it comes to adding interactivity to it, so the only solution is to use contentEditable[0][1], which is very difficult to work with or roll your own input[0], which makes OP angry. [0]: https://medium.engineering/why-contenteditable-is-terrible-1...…

    Comment linking /why-contenteditable-is-terrible-122d8a40e480

    on “Please Stop “Fixing” Font Smoothing (2012)”
  26. Submitted Dev domain won't work without https as a story · 3 points

    HN discussion
  27. Interesting to contrast this with [1], which works on formalizing rich text editors (for HTML). 1. https://medium.engineering/why-contenteditable-is-terrible-1...

    Comment linking /why-contenteditable-is-terrible-122d8a40e480

    on “Formalizing Text Editors in Coq”
  28. Submitted The curious case of the disappearing Polish S (2015) as a story · 3 points

    HN discussion
  29. You may not agree, but from a technical / UX perspective it is impressive - the rest of their UI platform sucks but I think their editor is top notch https://medium.engineering/why-contenteditable-is-terrible-1...

    Comment linking /why-contenteditable-is-terrible-122d8a40e480

    on “I'm Publishing My Next Book on Substack”
  30. Submitted Why ContentEditable is Terrible as a story · 3 points

    HN discussion

Search all of HN for medium.engineering

Linked by the same people?