Christopher Chedeau

blog.vjeux.com · Personal blog · on HN since 2011

Christopher Chedeau (vjeux), a Facebook engineer known for React and Prettier, writes about JavaScript tooling, performance and front-end design.

What HN saysHN commenters list it among blogs they follow, and one credits technical blogging on it with bringing job offers. Another links his Excalidraw reflections.
52HN people shared it
26linked it in comments
41stories submitted
460story points
9 months agolast shared
2011people per year2026

Most-shared posts

  1. 1
    (React) JSX: E4X The Good Parts
    6 people · 2 points · first shared 2013 · discussion on HN
  2. 2
    Anatomy of a JavaScript Pretty Printer
    5 people · 4 points · first shared 2017 · 1 comments on HN
  3. 3
    React coffeescript
    5 people · first shared 2014
  4. 4
    Fixing a 10 years old performance issue
    4 people · 7 points · first shared 2015 · discussion on HN
  5. 5
    Designing Facebook's Best Cropping Position Algorithm
    4 people · 2 points · first shared 2013 · discussion on HN
  6. 6
    React css in js nationjs
    4 people · first shared 2015
  7. 7
    Homepage
    4 people · first shared 2011
  8. 8
    Birth of Prettier
    3 people · 86 points · first shared 2025 · 56 comments on HN
  9. 9
    12 Years at Meta
    3 people · 9 points · first shared 2024 · 1 comments on HN
  10. 10
    Challenge: Best JavaScript Setup for Quick Prototyping
    3 people · 3 points · first shared 2015 · 1 comments on HN
  11. 11
    Best Cropping Position
    3 people · 3 points · first shared 2012 · discussion on HN
  12. 12
    Vjeux » Reflections on Excalidraw
    3 people · 3 points · first shared 2020 · discussion on HN
  13. 13
    Image Layout Algorithm for Facebook Photos
    2 people · 4 points · first shared 2013 · discussion on HN
  14. 14
    Vjeux: My CS Degree at EPITA Was Worth It
    2 people · 4 points · first shared 2017 · discussion on HN
  15. 15
    Google plus layout find best breaks
    2 people · first shared 2021

What HN people wrote when they linked it

vjeux · 2011-11-29
I haven't read the book but technical blogging has been really working out well for me. Thanks to my blog ( http://blog.vjeux.com/ ) I've been contacted by many companies and recruited for an awesome job! I've written an article about all the benefits of a technical blog if you are interested in my views on the subject :) http://blog.vjeux.com/2011/analysis/start-a-technical-blog-its-worth-i…
mrccc · 2024-11-28
Have you looked into row-based presentation of the images? I usually feel like pages with row-based image grids have a higher-quality look to them. See e.g. [1] and [2] for more info and [3] for an implementation. [1]: https://medium.com/google-design/google-photos-45b714dfbed1 [2]: https://blog.vjeux.com/2014/image/google-plus-layout-find-best-breaks.… [3]: https://www.npmjs.com/package/react-photo-gallery
morgante · 2024-09-21
This article is likely fake, since it's not on vjeux's actual blog[0] and there's no mention on Twitter.[1] The style is also all off. [0] https://blog.vjeux.com/ [1] https://x.com/Vjeux
hex13 · 2016-07-22
it seems like a solution to the Vjeux's challenge: http://blog.vjeux.com/2015/javascript/challenge-best-javascript-setup-… (If we don't count sharable requirement).
zappo2938 · 2015-10-14
Cropping images is a massive problem for social media. Here is a talk from 2013 by Christopher Chedeau a front end engineer at Facebook describing some of the problems with their image layout algorithms.[1] Initially, they tried to solve the problem by getting users to tag people inside the image and then use location of the tags as parameters to crop. If someone is tagged in a photo, Facebook makes sure that person is always inside of the cropped version. Here is the write up from Christopher's blog.[2] Was Instagram only using square images at one time? That would have been a brilliant way to have solved this problem. 1. http://blog.vjeux.com/2014/image/image-layout-algorithms-html5devconf.… 2. http://blog.vjeux.com/2012/image/best-cropping-position.html
jessaustin · 2015-06-07
If you don't insist on JSX, which you don't need, then just use react itself directly in coffeescript, and you won't be able to tell the difference without looking really close. The "canonical" description of this is at [0], but that page is kind of "old". I haven't found value in wrapping everything in parentheses like he recommends. Also that code is using renderComponent() which nowadays should be replaced by some combination of createClass(), createFactory(), and render(). [0] http://blog.vjeux.com/2013/javascript/react-coffeescript.html
fiatjaf · 2014-03-18
That puts me off too, it's too PHP, as you said, but I love React because I use it with Coffeescript, which eliminates the need for a JSX compilator: http://blog.vjeux.com/2013/javascript/react-coffeescript.html (You can do the same thing with pure JS, there are some forms of simplifying the React.DOM.div() calls, but coffeescript makes it beautiful.)
myfonj · 2013-08-12
It is hard not to mention series of articles [0] on the same topic by Christopher 'vjeux' Chedeau [1] in this context. [1] http://blog.vjeux.com/?s=%22Image+Layout+Algorithm%22 [0] https://news.ycombinator.com/user?id=vjeux
ibash · 2024-08-16
People forget what problem the virtual dom and react is supposed to solve. No better article than this: https://blog.vjeux.com/2013/javascript/react-performance.html
cgdub · 2021-10-23
In a similar vein, `React: CSS in JS` from vjeux: https://blog.vjeux.com/2014/javascript/react-css-in-js-nationjs.html
acemarke · 2020-11-18
That was Christopher "vjeux" Chedeau's "CSS in JS" talk: https://blog.vjeux.com/2014/javascript/react-css-in-js-nationjs.html
nojvek · 2020-03-29
I wrote a simple formatter for outputting json values. It respects maximum line length. https://gist.github.com/nojvek/875d8cad1005da0b95da2840bbc894e6 It implements some of the ideas from https://blog.vjeux.com/2017/javascript/anatomy-of-a-javascript-pretty-… Could be re-used for other languages very easily. The core is you have nested group chunks with (indent breakpoint, dedent breakpoint, separator breakpoint, more text chunks and child group chunks). when formatting a single line, indent and dedunt breakpoints do nothing, but in multi line format, they specify how text will be laid out. The algorithm is simple, try to format in single line if it fits within maxLineLength, if not break into multiple lines, and do that recursively.
Cshelton · 2015-10-26
This doesn't even get to the overall design of css in the first place and the problems it has... http://blog.vjeux.com/2014/javascript/react-css-in-js-nationjs.html
graffitici · 2015-08-17
It's becoming more and more common. Check this out: http://blog.vjeux.com/2014/javascript/react-css-in-js-nationjs.html
insin · 2015-01-08
This blog post - "JSX: E4X The Good Parts" - covers what's in and out for JSX: http://blog.vjeux.com/2013/javascript/jsx-e4x-the-good-parts.html
skrebbel · 2014-09-04
one of the JSX designers answered your entire comment before you even wrote it: http://blog.vjeux.com/2013/javascript/jsx-e4x-the-good-parts.html Also, you somehow managed to imply that JSX makes it impossible to use sweet.js macros. There's a sweet.js implementation of JSX, so that's absolutely bollocks. https://github.com/jlongster/jsx-reader
dugmartin · 2014-09-02
jewel · 2014-02-12
If you paste that URL into a feed reader it should find the feed link from the page source. It's http://blog.vjeux.com/feed, in case your feed reader doesn't do that for some reason.
spicyj · 2013-07-18
Yup! Here's a post showing an example of how to do it: http://blog.vjeux.com/2013/javascript/custom-components-react-x-tags.h…
samarudge · 2012-07-17
From the comments > I believe it's Google Closure compiler putting commas in there. Someone else linked to an explanation of why > http://blog.vjeux.com/2011/javascript/javascript-comma-trick.html </fact><opinion> So from the looks of it, the problem is in Opera's javascript implementation. I'm not sure how much Google uses Closure Compiler internally but I wouldn't have thought they would use code they knew to cause issues in some browsers. I guess that ether means the Opera implementation is wrong and the code should work fine, or Google didn't test this as fully as they should have done
jondot · 2016-12-11
While this is a good overview of why _they_ chose Vue over React, I wouldn't risk deriving that you should do the same too. To balance the scale a bit, this is what they gave up, in favor of "shit that just works" (because this is the tone I'm getting from the article): 1. They decided they want off the enormous driving force for developer experience that is Facebook, and more importantly the Facebook codebase that shapes decisions in React, see [1] and [2]. 2. They opted out of major innovation that directly stem from (1), see [3]. 3. Parting with Redux, they also decided to part with a community that thinks functionally. This is a big deal not because of writing "pure functional code", but because these group of people can reason about the implications of bad citizenship on the browser - which really, is something the Javascript community really needs. 4. Moving away from functional-esque (for lack of a better term), they also move away from predictable testing. Forget purity and sideeffects. A good litmus test - think about how easy it is to test any given framework at scale, and if a framework is "built with testing in mind" (read: angular) how many hacks would be involved. When you have good foundations for testing, you can do this [6] and be sure everything can be covered [7] . The only thing I see as a down side with React is the bundle size. The physical size. However I'm not worried one bit because of (1) and (2). For Redux, I take the liberty to use MobX for…
couchand · 2014-08-01
I’m a huge fan of CoffeeScript and use it wherever I can... It works for the most part but I had to straddle the syntactical line between brittle and overwrought, with all of the extra brackets. I don't know what extra brackets are referred to here without code samples, but based on the link to Vjeux's post [0], they are completely unnecessary, given the behavior of React vis-a-vis multiple parameters and CoffeeScript with syntactic whitespace and object literals, at least as of CoffeeScript 1.7... For instance, the example: {div, h3, textarea} = React.DOM (div {className: 'MarkdownEditor'}, [ (h3 {}, 'Input'), (textarea {onKeyUp: @handleKeyUp, ref: 'textarea'}, @state.value ) ]) Could be written with far less punctuation as: {div, h3, textarea} = React.DOM div className: 'MarkdownEditor' h3 {}, 'Input' textarea onKeyUp: @handleKeyUp ref: 'textarea' @state.value (Though I usually pass null as the empty param to make it feel worse...) [0]: http://blog.vjeux.com/2013/javascript/react-coffeescript.html

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