
Rebuilding our tech stack for the new facebook.com - alexvoica
https://engineering.fb.com/web/facebook-redesign/
======
aylmao
A big point of contention in the comments here lies around the concept of what
a website should be.

A school of thought in web development believes the web to be the next
frontier in application development. For them it makes sense that websites
like this feel and act like apps, both as an end-user (animations, transitions
without full-page reloading, rich dynamic content, etc) and as a developer
(client-side state management, frontend/backend separation, with an API in
between, modular application structure, etc).

Apps don't load in 10ms, but they also can support some offline functionality
given their independence from the server. Overriding browser behaviour and
managing your own loading behaviour makes sense, because the default browser
behaviour is not the experience you're striving for; it's not the app
experience. These people are usually those who have worked on large web
projects too— the developer experience that web developers have built for
themselves in "userland" (JavaScript) is pretty good, and has evolved a lot to
have features that makes developing the exact behaviour you want easier, and
correctly iterating on a codebase, quicker.

A separate school of thought wish websites stayed true to their origins as
enriched documents, and think trying to evolve them in the direction of
applications is counter-productive to their true purpose as interactive
surfaces to get and send information. If I am just going to scroll and see a
few pictures, why do I need to download anything other than the structure of
the page and the pictures themselves? If all the building blocks are already
there, in the browser, why do people need to re-invent them and ship them as
yet more JavaScript?

What should a website be though? The fact there isn't consensus about this is
indication that there really doesn't seem to be a clear answer.

Per the document-like school of thought, facebook.com just keeps straying
further and further away from the ideal, but as far as as the app-like school
of thought goes, the new facebook.com is a pretty remarkable achievement.

~~~
fouc
Perhaps we should split the web into two worlds. Create dedicated browsers for
just enriched document etc. Add some sort of constraints on what the browser
can do, and how much control is removed from the user.

~~~
zanny
They tried that in the 90s, its called Java. Didn't really work out for that
purpose.

In practice things like Twitter and Facebook, interactive programs, should
really be just that - programs you run. If the interface is nigh static and
the purpose is content interaction rather than primarily consumption you
should be opening the Facebook program that gives you this interface and uses
its client / server communication to feed messages to and from the interface,
not provide the whole thing over the wire spread across document addresses.

And they are that on mobile. Who uses Facebooks mobile website? Everyone uses
the app. The contention only exists on "desktop" OSes because Windows and OSX
don't provide a UX workflow to push an app at user (at least they didn't when
it mattered) the way a mobile site can. And that the app environments on both
were way worse than the Android or iOS SDKs for making a dumb GUI for
something like Facebook.

~~~
pjmlp
> Who uses Facebooks mobile website? Everyone uses the app.

I do, just like I do with every app that might feel too comfy reaching out to
my contacts. Not to mention how resource hungry it is.

If you think MFC, VCL, .NET are worse experiences than Android SDK you really
never coded for Android.

------
3PS
I'm actually really surprised by the number of comments in this thread about
how the new redesign is slower. I've had it since yesterday and it genuinely
feels much faster and more responsive than the old Facebook UI - though, to be
fair, that's not a huge accomplishment give that the old UI would take forever
to finish painting or respond to input. I'd consider it a success, especially
when compared to the disaster that was and continues to be Reddit's redesign.

~~~
runawaybottle
Let’s go on this tangent, why _is_ Reddit’s frontend so sluggish and lacking
quality of life improvements that should be in place by now?

Surely they are hiring world-class devs, so what’s holding them back?

~~~
dpau
It's by design. Reddit doesn't want you using the website. They want you to
download the app. As numerous annoying popups and notifications will tell you
when visiting the website (especially on mobile).

~~~
Zenbit_UX
This. Their UX is hostile to browsers, I suppose they make more money due to
ads being harder to block in app vs in browser and much more data can be mined
as well.

I recommend everyone the old.reddit.com experience while it's still available.
There's browser plug-ins that force the subdomain everywhere on reddit

------
raphaelj
Quite sincerely, it's a total failure. I got the chance to try the new
interface, and it's so slow that it's barely usable. It's even slower than the
old website, that was already painfully slow.

Loading a random profile takes 8 seconds. Opening a messenger discussion takes
6 seconds. It reminds me of the new Reddit website. Facebook was more
enjoyable to use 12 years ago.

It's really sad that in 2020, 10k+ engineers can't make a photo, video, post
and message sharing website that is not a pain to use. We collectively failed
as a profession. If one needs 2MB of CSS for such a website, there is clearly
a problem.

~~~
jseliger
_Facebook was more enjoyable to use 12 years ago_

We'll see what the data show. I have been reading comments about Facebook's
supposed decline for as long as I've been aware of Facebook and yet their
published numbers continually show greater engagement.
[https://jakeseliger.com/2018/11/14/is-there-an-actual-
facebo...](https://jakeseliger.com/2018/11/14/is-there-an-actual-facebook-
crisis-or-media-narrative-about-facebook-crisis)

~~~
duckfruit
The unquestioning supplication at the alter of 'engagement' (a sterile
marketing term if there ever was one) is what lead to where we are now in the
first place. This is an affliction that pervades the entire consumer internet
sector, but the folks at facebook seem to have refined it to its fullest
potential.

The other day I got a facebook notification on my phone, which said something
along the lines of "You have 4 new messages". Of course, thinking it was from
my friends I opened the app to look at them. 3 of my 4 "messages" were
notifications for friend requests from people I had never met. The last one
was a photo someone had posted of cake she'd baked (not to me specifically,
just in her feed). To someone sitting at her desk at facebook, looking at an
engagement metrics chart, the notification would seem to have served its
purpose - another data point, another person enticed to open the app in
response, engagement maximized. But of course, this was deception. I found
this experience distasteful enough to disable notifications entirely -
probably another data point for their metrics team - and annoyed enough to
complain about in an HN comment.

~~~
strictnein
The new "Person X has posted a photo" notifications are the worst. Their abuse
of the notification icon is getting ridiculous. It used to be focused on when
someone interacted with something you had done, now it's just used to drive
"engagement".

------
pier25
> _as little as possible_

I just opened FB with the cache disabled and it downloaded 5.85MB (19.76MB
uncompressed).

Most of it happens after the page has rendered, which is great, but that's a
lot of stuff. There are 13.74MB of uncompressed JavaScript.

~~~
schkkd
That's pretty much size of a mobile app. But the thing with web apps is that
they are downloaded every time and hence the outcry.

~~~
speedgoose
They aren't though. You have a cache.

~~~
the_other
Facebook release multiple times a day (or they did), so the browser cache is
irreLevant.

~~~
victorvation
As mentioned in the blogpost, they use code splitting and bundle hashing to
actually maximize usage of browser cache.

------
gfodor
This is 100% incidental complexity. It's painful to consider that this level
of sophisticated engineering is needed to render a website quickly in 2020.
What went wrong?

I'm personally excited about things like turbolinks and phoenix liveview,
which may provide a path out of this mess.

~~~
core-questions
Facebook rendered just fine a decade ago. What changed between now and then,
in terms of actual improvement to end user experience, to make it so slow this
kind of crap is needed?

My guess is:

\- Desire to offload more processing to end user machines to save compute

\- More and more ads and user analytics in order to pick which ads to show

\- More engineers that irrationally hate the simplicity of PHP

Duct tape on top of abstractions on top of duct tape in order to make a
document platform behave like an application platform. Isn't it time to just
replace web browsers with something that doesn't suck?

~~~
badfrog
> Facebook rendered just fine a decade ago. What changed between now and then

It does way more things. In particular, there are a lot more interactive
experiences. A decade ago, it just loaded a web page and nothing changed until
you refreshed. Now live videos and other content types have streams of
comments and reactions pushed to the client in real time.

~~~
dullgiulio
I really don't want a video to autoplay on the side of the screen when I'm
reading some news article, for example.

It was so much better before when there just were less ways of doing what the
website wanted and more ways of doing what you wanted with your browser and
your computing power.

~~~
badfrog
Sure, it's totally reasonable for somebody to dislike these features. I just
object to the claims that it doesn't do anything substantially different than
what it did 10 years ago.

------
trevor-e
What I find weird about the article is that they spend so much time talking
about the performance of the new design, yet fail to include any hard numbers
comparing the old vs new implementations. They do throw out a few numbers like
how the new page only downloads 20% of the previous 400kb CSS for the
homepage, etc, but I'm surprised to see no actual browser benchmarks for what
they claim. How else would they be measuring this internally?

------
pathartl
Great write up. Glad to see they're making some changes as the current
interface still feels like 2005 with the main feed at 500px wide. And as
always, dark mode is welcome.

I really hope this helps performance on the site. In the past year or so I've
been noticing that when the page sits in an unfocused tab for a while,
clicking back usually takes 20+ seconds to actually load and I'm stuck at a
white screen. It actually locks up the tab pretty well too, so navigating to
other addresses and such takes a pretty long time.

~~~
dehrmann
> And as always, dark mode is welcome.

I don't get this infatuation with dark mode, beyond it looking cool. People
claim it helps with eye strain, but a brighter background constricts your
pupils, improving focus.

~~~
olcor
Just wanted to point out you might’ve pasted the wrong snippet, which is about
eBay’s policies.

~~~
dehrmann
Oops! Thanks for the catch.

------
motoboi
I have been using Facebook for like +10years. Facebook used to be reference
for speed and usability.

I left it ~4 years ago.

Last day I entered again for curiosity. It's so sad. Strange interface, slow,
unresponsive. It's sad.

~~~
reaperducer
_Facebook used to be reference for speed and usability_

On web, for a while. Remember when Facebook's iPhone app came out, it was a
disaster. It was so slow, I could open the app, then take the elevator down to
the basement of my building, drop off some outgoing mail, and return to my
apartment before it finished updating the news feed. It was legendary in its
time for its slowness.

At first, nobody complained because there weren't a lot of "apps" available.
But then all the other apps came out, and everyone complained for years that
all the other app-building companies could build responsive apps, but Facebook
couldn't.

Then one day Facebook updated its app and it was a little better. Then another
update came and it was good enough, and everyone stopped complaining and
forgot.

 _Last day I entered again for curiosity. It 's so sad. Strange interface,
slow, unresponsive. It's sad._

I only use Facebook once a week, to update the page for a web site I manage.
It is terribly slow on web. On both of the computers I use it on, loading the
first page takes upwards of 15 seconds. Clicking on the text field to enter a
new post takes eight to ten seconds for the editor to load.

I don't know how people who are addicted to Facebook manage to use it so much
without going mad.

~~~
delusional
Remember when they had to monkey patch the android runtime because their app
had too many methods? [https://www.facebook.com/notes/facebook-
engineering/under-th...](https://www.facebook.com/notes/facebook-
engineering/under-the-hood-dalvik-patch-for-facebook-for-
android/10151345597798920)

It's a fun hack, and I enjoy spectacle, but it might be a sign that you are
complicating your app more than you need.

~~~
saagarjha
Remember when reached the limit for __TEXT and had to put code in sections
that weren’t really meant for it: [https://blog.timac.org/2016/1018-analysis-
of-the-facebook-ap...](https://blog.timac.org/2016/1018-analysis-of-the-
facebook-app-for-ios/)?

Remember when they were taking to long to start up that they pulled stuff into
a separate framework just so they could meet launch deadlines:
[https://blog.timac.org/2017/0410-analysis-of-the-facebook-
ap...](https://blog.timac.org/2017/0410-analysis-of-the-facebook-app-for-
ios-v-87-0/)?

Remember when the app had 18,000 Objective-C classes:
[https://quellish.tumblr.com/post/126712999812/how-on-
earth-t...](https://quellish.tumblr.com/post/126712999812/how-on-earth-the-
facebook-ios-application-is-so)?

Facebook’s teams somehow cannot manage their bloat and they keep hiring people
to hack the platform they're running on rather than fixing the actual
underlying problem.

~~~
plorkyeran
The root cause of the problem is that they have too many people working on it,
and that's obviously not a problem you can hire your way out of.

~~~
saagarjha
Perhaps they should hire engineers who have the explicit job of ripping out
things that should not belong.

~~~
Apocryphon
Or if they must insist on writing more code than refactoring it out, perhaps
they should build more products.

------
Groxx
> _We addressed this by generating atomic CSS at build time. Atomic CSS has a
> logarithmic growth curve because it’s proportional to the number of unique
> style declarations rather than to the number of styles and features we
> write._

I've always wondered... has anyone checked to see if this strategy of CSS
(which AFAICT is slowly growing in popularity, since it's a super simple
minification trick) ends up costing more in bandwidth?

It seems like it would, because 1) you frequently need multiple classes per
html element, and 2) those html classes need to be sent _on every page load_ ,
where CSS caches well if used "normally". I can see it being smaller on _any
individual page_ , especially with class-name minifying, but across many? And
infinite scrolling loading many more elements?

~~~
axyz
we use this approach since more than a year with very good results. Regarding
the data transfer it is not much of a problem because those classes usually
get repeated a lot across the elements and having lot of repeated string is
the best case scenario for gzip compression leading to basically no size
impact.

[https://github.com/utilitycss/atomic](https://github.com/utilitycss/atomic)
This is the framework we developed to create atomic CSS component libraries if
you want to have a look (documentation needs some love, but is quite stable)

~~~
Groxx
Your HTML is still undeniably larger than something with dramatically fewer
class attributes though, if you minify the same way. Hence my "single page" vs
"many" difference.

gzip helps for sure, but I doubt `<class="card">...` ends up larger than
`<class="a b c d e"><class="sub-a sub-b q etc"><class="repeat per
element">...`.

~~~
axyz
there is of course a bit of difference in some use cases, my point is that in
a real world scenario you often do not have

<class="card"> vs <class="a b c d e">

but more something like <class="card"><class="stuff-inside-
card"><class="other-stuff">

vs <class="a b c d e"><class="b c f"><class="c d e g">

so in the long run you tend to have more repeated strings across even
completely unrelated elements and that usually balances out the possible
increase in non gzipped bytes. But to be honest we did not had a detailed
comparison with edge cases and it would be interesting to see when it actually
may be a bad idea and when it is totally fine

~~~
Groxx
when you're less "component-y" with your styles, yeah, that happens pretty
frequently. careful styling is mostly rare (like all careful things)... but
atomic styling seems to make the savings of careful styling effectively
_impossible_ , though I absolutely believe it helps the less-careful
(especially the least-careful) cases.

------
polote
> We knew we wanted Facebook.com to start up fast, respond fast, and provide a
> highly interactive experience.

And we forgot about it while developing it, this is just common mistake in
product management, when projects are not iterative, things are so long, that
you even forget why you are doing them

------
polote
Future will tell, but I do think this is a good strategic move by FB.

FB is now seen as an app for old people and not fun at all, and probably one
of the reason is because of how it looks. With the new design, things are more
shiny, and the product now looks cool. How a product is perceived has a big
influence on how people use it, (for example why people use snap when they can
send the same videos on insta).

I wouldn't be surprised that this is a beginning of a lot of changes on FB

~~~
kart23
It's not seen as an app for old people. A lot of college students use fb
religiously, and it's still the place to go for nearly any college discussion.

------
lgl
Can we now sanely read comment threads with several hundreds or thousands of
comments without clicking 200 times on "show previous comments" only to then
lose all "progress" if we click somewhere else? Also looking at you Instagram.

~~~
marcodave
One minute of contemplation for those who scroll for 10 minutes on mobile, to
finally find something interesting to read/click, just to click by mistake the
back button, and the whole timeline completely changed. Youtube recommendation
feed also terribly guilty of that.

------
vosper
I saw no mention of Reason or ReasonReact. I thought they rewrote Messenger in
Reason, and so I figured facebook.com would be next. Did Reason fall out of
favor or something?

~~~
dgellow
Was Reason ever more than an experiment?

~~~
vosper
ReactReact just had a release (0.8) a few days ago, so it's apparently not
dead

[https://github.com/reasonml/reason-
react/blob/master/HISTORY...](https://github.com/reasonml/reason-
react/blob/master/HISTORY.md)

------
amelius
Did they fix the "back" button? (I.e. if you click a link in the middle of a
feed, then "back", do you get back at the same position in the feed?)

~~~
beefield
My guess is that they have a/b tested that if you remove the item from the
feed user clicked, users become "more engaged" i.e. frustratingly scrolling to
find the place where they were.

------
fossuser
I miss information density.

HN is great for this and you can change enough settings on reddit to get it
where it used to be, but FB is really bad for it and Twitter is just ok
(though with the tweet deck app you can get a lot on macOS).

In that FB screenshot you can see half of one post?

------
scalableUnicon
I rarely use Facebook, but when I do I use
[https://m.facebook.com](https://m.facebook.com) instead of the main site.
Similarly i.reddit.com and the HTML version of Gmail. Which aren't great
looking, but pretty usable. I hope these versions will be maintained for a
long time.

~~~
Drip33
>Similarly i.reddit.com

Try [https://old.reddit.com](https://old.reddit.com)

It's so bad that people made Browser Extensions for Firefox[0] and Chrome[1]

[0] [https://addons.mozilla.org/en-US/firefox/addon/old-reddit-
re...](https://addons.mozilla.org/en-US/firefox/addon/old-reddit-redirect/)

[1] [https://chrome.google.com/webstore/detail/old-reddit-
redirec...](https://chrome.google.com/webstore/detail/old-reddit-
redirect/dneaehbmnbhcippjikoajpoabadpodje)

~~~
benbristow
Old Reddit is so damn ugly though apart from the Subreddits which have nice
custom themes (although does make for a 00's Myspace-like inconsistent
interface)

The new Reddit definitely seems a lot faster nowadays than it did when it
first launched.

~~~
ccmcarey
I don't think old reddit is ugly, though it takes some getting used to.
Combined with RES for some minor enhancements (navigation etc) and it's great.

It's similar to HN. Not fantastic design, but incredible information density
and usability.

~~~
thelean12
Incredible? HN has horrific usability.

Good luck knowing when people respond to your comments. Searching takes you to
a completely different website. You can't delete comments (which should be a
basic privacy ask from this crowd). Click targets are incredibly small.

It took years of begging for them to even implement collapsing comments. And
for some reason they put it on the right side (not lined up with the tree
level), and made it a super small click target.

~~~
benbristow
HN could definitely do with a redesign. Just seems like stubbornness from the
owners not to change it.

I'm not talking turning it into an SPA or adding tons of JavaScript, just a
bit of CSS/HTML TLC with some nicer fonts and make the whole thing a bit more
scalable and bigger with some UX tweaks.

Something akin to [http://gabrielecirulli.github.io/hn-
special/](http://gabrielecirulli.github.io/hn-special/)

------
janpot
I don't really care about their end result because I don't use facebook. But
in spite of all the negative comments here, I'm actually interested in how
their styling solution works.

~~~
kall
If I had to guess, I would expect it to be similar to react-native-web. They
say the api is inspired by RN (StyleSheet.create) and the atomic classes look
similar to what react-native-web produces. Also the author of RNW works at
facebook.

It‘s called xstyle and you can see some examples in a talk from last year that
presented the new tech for new faceook. I will update if I find the link
(can‘t right now).

Edit: starts at about 28:00 here, but the rest about react+relay data fetching
is interesting as well if you care about that stuff
[https://developers.facebook.com/videos/2019/building-the-
new...](https://developers.facebook.com/videos/2019/building-the-new-
facebookcom-with-react-graphql-and-relay/)

------
suyash
There is nothing about backend here, that's where the heavy lifting is done.
Is that all in PHP still and GraphQL ?

------
chx
The most irritating "feature" of Facebook is they insert themselves like eight
deep in the history when opening their page so the back button doesn't work.

~~~
AlexandrB
This kind of thing is normally the domain of sites you find after searching
“office 365 warez”. Pretty bad.

------
ajayyy
It looks a lot like the new Twitter. I guess the new trend is just to show
multiple tabs from the mobile app at once as the desktop site.

~~~
buboard
it is yahoo from the 90s

[https://cdn.searchenginejournal.com/wp-
content/uploads/2006/...](https://cdn.searchenginejournal.com/wp-
content/uploads/2006/04/132826009_254ee440c11.jpg)

Nothing new under the sun

~~~
npongratz
The Yahoo I knew and loved from the 90s manifested as a web directory:

[https://www.ttcs.tt/wp-content/uploads/2014/09/screenshot-
of...](https://www.ttcs.tt/wp-content/uploads/2014/09/screenshot-of-yahoo-
home-page-circa-1997.jpg)

~~~
ViViDboarder
Wow. That made me way more nostalgic than I was expecting.

------
aboringusername
For me, I consider the real test for a website's performance to be how it
reacts under JS disabled conditions. Using NoScript has completely changed the
way I use the internet. Combine that with DoH and filtering and you can remove
a large part of the jank that fills browsers needlessly.

It's a delicate balancing act, but it puts _you_ in control. Sometimes it's
just not worth the hassle, and I suspect it's why you see many comments like
"just read the f* article", except sites are so slow and cause so much
rendering and CPU cycles it's just an abuse of the platform.

Websites are capable of serving text without JS being required.

~~~
Drip33
With increasing adoption of reCaptcha v3 which won't let you browse on any
page without Javascript, it will become harder and harder to use the internet
with NoScript enabled.

------
thesz
It uses scrolling as cookie consent, apparently.

Which is wrong as discussed here:
[https://news.ycombinator.com/item?id=23090393](https://news.ycombinator.com/item?id=23090393)

~~~
Nextgrid
It's not like Facebook is concerned about GDPR compliance, and given the lack
of enforcement I can't really fault them for this.

------
dzonga
impressive attack on would be competitors. now new start-ups will look up this
doc and say, ahya let's build our interfaces with react + relay. & the new css
| js wizardry. when they don't have the manpower and time to do so. end of day
can't launch. when they forget this rewrite is implemented 15 years later when
fb is already making money. and likewise, as other commentators have said in
the thread - we have failed as an industry due to usability regression

------
bryanmgreen
I wonder what the Mobile App versus Mobile Browser versus Desktop Browser
usage percentages look like.

Generally speaking, how important is it to actually update the desktop version
other than for the sake of updating tech? I only use desktop as part of my
marketing work, if I do it use it at all.

(Side Note: I can't believe it took this long for Dark Mode to be a normal
option for all software)

------
tectonic
[https://saagarjha.com/blog/2020/05/10/why-we-at-famous-
compa...](https://saagarjha.com/blog/2020/05/10/why-we-at-famous-company-
switched-to-hyped-technology/)

------
jonny383
I hope this speeds things up for Facebook. On the rare occasions I use it
these days to check up on family photos or something, the entire site is
fucking painfully slow. Even on my quad core I7 desktop on a fibre backbone
connection, I'm routinely waiting 10+ seconds each time I click on the
"notification" icon (or any other action).

------
polymorph1sm
I opt in when Facebook prompted me to test out the new UI in Chrome browser,
immediately I regretted and frustrated to find the button to revert back to
the old one.

But then I found out my "old" Safari browser wasn't supported in their new
fancy UI. Now I only check my Facebook once per day in Safari and never sign
in again from Chrome.

------
yepthatsreality
Facebook folded to the "quit changing the UI" crowd years ago when they opened
registration up beyond colleges.

------
whalesalad
The use of Monokai is so off-brand for FB.

------
suyash
Atomic CSS is a bad idea, read more here
[https://www.browserlondon.com/blog/2019/06/10/functional-
css...](https://www.browserlondon.com/blog/2019/06/10/functional-css-perils/)

~~~
axyz
nowadays is quite rare to write classes in pure html, using any framework like
react, vue and similar we are used to pass classes in a JS environment.
Obscure and minified class names can be imported from a package using a
perfectly meaningful name, also the same set of classes can be exported with
many different names to even better usage specificity with no cost in size.

We overcome most of those issues using a mix of postcss compose and css
modules with a custom hashing solution based on the actual css rule content,
this allowed us to have virtually infinite semantically named components with
a css bundle size that tend to stabilize around 20/25kb gzipped for a very big
e-commerce use case and I doubt any other use case would go much higher than
that size.

[https://github.com/utilitycss/atomic](https://github.com/utilitycss/atomic)
If you want to have a look (documentation needs some love, but the samples
generated by the init do give a good idea of the concept)

------
Bnshsysjab
My browser constantly pegs the CPU, Firefox performance manager indicates it
might be Facebook but CPU metics never seem accurate. I use the new layout and
swear the issue occurs after a tab has been left open for a long period of
time (8-16 hours).

Anyone else experience this?

------
longlho
There doesn't seem to be any mention of actual KPIs/metrics changes in the
relaunch?

------
slorber
If you want to know more about the atomic css-in-js Facebook is using, check
my article [https://sebastienlorber.com/atomic-css-in-
js](https://sebastienlorber.com/atomic-css-in-js)

------
jariel
Everything is in the past tense without dates. When was this massive re-write?
2010? 2018?

~~~
amelius
Looking at the graphical design changes, they haven't rolled this out yet.

~~~
rvnx
They did roll this new interface on some users (like me), and this new
experience genuinely sucks.

It's easy to guess what happens under the hood:

"Legacy" programmers implemented working solution.

A newcomer comes into the company, doesn't really give a shit about the
company because he is #XXXX, follows textbook processes, has a very nice pay-
check so no pressure, and decides to rewrite because "code sucks".

A second newcomer joins, still no pressure, because he knows he will get his
pay-check. Tells his manager that he cannot work without refactoring (it's not
true).

10 programmers later, you refactor code instead of producing features. You can
do that for all your lifetime.

To their defense, the FB initial codebase from the time of Mark Slee or Philip
Fung was not a gift but because they had pressure to make revenues they were
trying to do what was right.

When you have 10 years of positive iterations regarding product experience and
user feedback, revamping everything in a big bang boom is a terrible idea from
both engineering and product perspective.

Sometimes, full revamp are positive because the initial product sucked, but
when you managed to onboard a billion user, it's dangerous to change their
habits if you aren't 100% sure it's an improvement.

Here, we have PO/PM pushing for change, for whatever reason (engineering
pressure, or they get a bonus if they deliver the product, etc). Same story
with all the Google Messengers.

~~~
underwater
This is not a big bang rewrite. All the technology here is stuff that's been
built over the last decade. Haste is a decade old, React is 8 years old,
GraphQL is around 7 years, Relay must by 5 years old by this stage. This is
simply bringing them all together.

------
jedberg
I can't remember the last time I loaded FB on a computer. At this point it's
clear that they care far more about the mobile experience than the desktop.
Even if I'm sitting at my computer I'll still use my phone for FB.

------
dopamean
I don't think there's a single piece of software (if you can call facebook's
website a piece of software) that I've used longer than facebook.com. I was
one of the earliest users in 2004 and have had an account the entire time.
It's really interesting, in sort of a morbid way, to see how it really has
become a shittier experience every year. I'm sure it's hard to get right and I
wouldn't claim to know better than them but it is quite amazing that they have
so many engineers being paid so much money and the product from a usability
standpoint manages to get worse. I really think that will be their ultimate
downfall one day.

------
xxxmaster
I wonder how much time and how many managers/PMs/engineers (a.k.a. Prod Dev)
did it take to refactor/rebuild it? Or you can throw a number in terms of
money?

------
nickbauman
Tech stack? This is only stuff they put in the browser.

~~~
suyash
exactly it's missing all the backend information which is most critical.

------
pmlnr
> We knew we wanted Facebook.com to start up fast, respond fast,

You failed.

mbasic.facebook.com on the other hand, is actually fast. Oh. Wait. That's no
js at all.

------
lovetocode
They reduced CSS by 80% but the new site looks like garbage! On the desktop,
It looks like a mobile app just really stretched out.

------
Chyzwar
I like the approach to css with stylex. I hope that now linaria and astroturf
will get more support.

------
atlgator
Advancing technology doesn't make up for destroying humanity, IMO. Fuck
Facebook.

------
HABytes
I think the only HoC I consistently use these days is `connect` from `react-
redux`.

------
cjohansson
I hope the new fb works with Javascript disabled, like it did in the old days

------
didibus
I understand the new stack is React + Relay, but what was the old stack?

~~~
sophiebits
A hodgepodge of (mostly proprietary) technologies.

------
29athrowaway
I don't like it.

Round borders with misplaced text, cannot go to a specific time on my timeline
anymore, does not feel very responsive.

Overall, the UI does not look very appealing and feels like a downgrade.

~~~
crocodiletears
Reminds me of the new Chrome UI. Not a fan of this soft, rounded-off aesthetic
that seems to be spreading about.

------
sys_64738
The new interface caused my iPad to heat up severely so I switched back to the
old clunker interface. It might be ancient but it doesn't cause my iPad to
heat up.

------
cat199
interesting to see these kinds of details, but this is hardly 'rebuilding the
the stack' \- just UI<->API layer

~~~
swyx
there is such a thing as a frontend stack

------
jrururufuf666
who shat in all your brains?

------
lonk
Title says tech stack but content is about css

------
brailsafe
A browser extension that automatically filters out Karen from your feed would
yield better results, but they wouldn't want to alienate their core users

------
liquid153
Do they still use PHP on backend. If so ick

~~~
benbristow
AFAIK they use 'Hack', a language designed to be very similar to PHP.

[https://hacklang.org/](https://hacklang.org/)

PHP is a lot better than it used to be now though! It's got a bad rep but
newer versions are fast and surprisingly modern-feeling.

