Hacker News new | past | comments | ask | show | jobs | submit login
The inside story of Threads (fb.com)
94 points by jshchnz on Sept 14, 2023 | hide | past | favorite | 97 comments



Say what you will about Meta and their products, but I have mad respect for their production engineering team. Keeping things like Facebook and Instagram running is no easy task. You can't just cache your way out of it like most apps. People expect to see their friends' updates instantly.

I've been super impressed with the technology part of the Threads launch. I can't wait to read more about it in the future.


Agreed. There are a lot of really smart engineers at these companies. No doubt about it! They often have to pioneer solutions to challenging problems, which have downstream benefits for everyone else.

I do wonder though if we will look back on this period in history and regret the economic and cultural incentives which have co-opted so many smart people into the service of ... advertising.


The right word is surveillance.

Ubiquitous surveillance is what pays most of the VerySmart gathered here.

Advertising is just the part of the market we can talk about in stand ups.


Advertising is the reason for the surveilance. The whole reason Facebook gathers all this data on its users is to drive their ad platform.


Knowledge is power.

Do you really think that the usefulness of knowledge is limited to trying to sell you stuff?

If so, you’ve never thought about it very deeply.


100%. We spend more money working on cures for erectile dysfunction than ebola. We spend more money working on cures male pattern baldness than we do diseases that plague the third world. How many smart amazing engineers have worked for the auto industry over the last 100 years when their expertise could of been used in a civil manner to improve infrastructure and our overall existence? This is capitalism and whoever has the money can buy up the most talent. Whether that is a good use for that talent doesn't seem to matter.


I am guessing the people working on the erectile dysfunction medicines are motivated by financial compensation; and that it happens that the people who provide such compensation do happen to intersect with the people who have ED but do not intersect with those who have Ebola.

This is more than capitalism, it's freedom. If you are suggesting that we spend more money on Ebola or public transport, that's tyranny.


“We’ll go down in history as the first society that wouldn’t save itself because it wasn’t cost-effective.” -Kurt Vonnegut, University of Oregon speech, 1990


> This is more than capitalism, it's freedom. If you are suggesting that we spend more money on Ebola or public transport, that's tyranny.

Yikes. It’s actually exactly capitalism. We spent more money than god on COVID research basically from 0. That research didn’t restrict freedoms. We decided to co-opt capitalism and pump money directly where we needed it. This incentives people to research Covid within the capitalist market. We could do the same for Ebola or Public transportation but we chose not to.


> This is more than capitalism, it's freedom. If you are suggesting that we spend more money on Ebola or public transport, that's tyranny.

Anything can be whatever if you define your terms in obtuse or unusual ways.

Launder it by burying the questionable definitions a couple layers down from the garbage you’ve set out to “prove”, and you can fool even some smart folks.


I have a totally opposite view. FB at least is an "easy" problem in that it's a free product that's mostly casual use. The end result I see is that FB is massively inconsistent, you can literally see different parts of the FB system having a different view on a moderately heavily commented post. Comments will pop in and out of existence on a given device, and different people will have wildly different views for up to a few minutes. If accuracy mattered FB would be just awful.


It's called eventual consistency...


No, it's something newer; last year or so. They show "top comments", with a "view all" option, but that "view all" option will often say there's 49 comments and zero show up, even on an old post.

The Graph API has also fallen apart, with their solution being to close the bug submission tool for most issue types. The "replacement" is a discussion forum where no Facebook employees visit, most posts have zero responses, and no issue tracking whatsoever.


Seems like Facebook is more in maintenance mode vs Instagram. Lets not also forget they made a massive push into Metaverse so I'm sure engineering was stretched thin on their other platforms.

Wasn't Graph API going away because of that whole Cambridge Analyitica scandal?


This actually seems like a great way to say it: maintenance mode. I'm really shocked at how badly facebook.com runs in Firefox latest on an M1 MacBook Air. It's completely broken and has been since they've launched this React version.


I wonder if there were also people motivated by their hatred of what happened post Twitter. I recall that Meta hired a bunch of ex-Twitter people. Some probably had an axe to grind.

Whatever they did Twitter folks or not, it was an extremely slick launch. Any Threads people reading this should pat themselves on the back.

On a side note: It was also fun watching Musk fuming that week when the Threads numbers came in. :D


Except that they botched the most important part of the launch by releasing a bare-bones MVP too early.


I disagree, I felt it had the features a typical user would be ok with. II didn't really feel like I was missing anything but maybe im too much of a lite user.


It didn't have search, trending topics, DMs, a web version, non-Instagram account creation, or availability in Europe. All are very popular. No real innovation over Twitter either, but that's not unexpected.

This is excusable in a normal startup MVP, but not when you promote it all over Instagram.


You are making an assumption that there is a tighter coupling with Instagram's infra than in reality...especially at launch.

I could see maybe trending topics as possibly a feature that would be nice to have at launch but the others?

The following are my thoughts if I were a PM choosing features.

search - What are you going to search for when the app is brand new? I believe we did have user search as I recall using it so you must be referring to content search.

DMs - Do we know what their anticipated user projections were going to be? I could see this feature being a worthless endeavor vs other things they could have done if the userbase ended up being small.

a web version - These guys are a mobile first company, the large % of users are on mobile, their existing web properties are either in maintenance mode(facebook) or just thin wrappers(instagram). I can see why this wasn't a priority.

non-Instagram account creation - Sounds like either this was a way to bypass overhead in their typical new user generation or they felt one click signup from IG would encourage more active users/reduce issues of bots which may not have been thought out at launch. It would be interesting to learn more about this unclear part of the infra.

Europe - Even for big company launches they typically american first, likely for the same reasons why we dont see big new tech companies ever launched from Europe anymore: too many little issues dealing with all the different countries in the union, issues with complying with various regulations.


lol. i have respect for these skilled engineers. but let's not pretend making posts show up on a feed is as difficult as curing cancer.

half the time my app screen freezes or there's an issue with posts showing. it was good at the start and that's how fb gained users, but at this point people put up with the poor UX because of friction.


Isn't instagram using more or less the same tech stacks they were using before the acquisition?


See their friends updates instantly? Is this a joke? You do realize real-time reverse chronological feeds are long dead right? meta optimizes for the "algo", which is to shove ads and influencers and trending nonsense in front of your face.


Can you please not post in the cross-examination or flamewar style? The damage it does to the channel isn't worth it, and you can always make your substantive points without this.

If you wouldn't mind reviewing https://news.ycombinator.com/newsguidelines.html and taking the intended spirit of the site more to heart, we'd be grateful.


Both Facebook and Instagram have real time reverse chronological feeds. Stop spreading bullshit.


> Five days [after July 5], over 100 million people had joined Threads, making it the most successful app launch of all time.

Err, no. The 100m were mostly migrated from existing Instagram users (which has ~500m DAU/2.35b MAU), not new joiners. Gizmodo [0]: "[one month after launch] Threads Has Lost More Than 80% of Its Daily Active Users... DAU down from a peak of 44m to 8m, and falling at about 1% every day. Engagement was down to just 2.9 minutes a day compared to 19 minutes earlier in July."

If 100m existing users who briefly came over from Instagram and then mostly became inactive is "the most successful app launch of all time", then by that metric was Google+ forcibly converting new YouTube or Gmail users/commenters the most successful website-based [social] launch of all time? [1] "1/2015: There are about 2.2 billion Google+ profiles. Of these, about 9% have any publicly posted content. Of those, about 37% have comments on YouTube videos as their most recent activity, and another 8% have profile-photo changes."

Can anyone cite third-party DAU and MAU stats on Threads, currently?

Or how many Threads users quit Twitter, and have remained active on Threads?

[0]: https://gizmodo.com/threads-has-lost-more-than-80-of-daily-a...

[1]: "Nobody is using Google+" BusinessInsider 1/20/2015 https://www.businessinsider.com/google-active-users-2015-1


To be fair, users did have to install an app and go through the onboarding to be counted. That is a big ask for most users! That wasn't the case for Google+ where they straight up just considered all Google accounts to be Google+ accounts suddenly. And that was on the web where you don't have to install anything.

But I don't disagree, saying they got a lot of signups doesn't mean it's a home run success. Myself and most of the people I follow on IG signed up within the first few days, made a post that said something along the lines of "what's a Threads" and then haven't posted since then.


If my app uses Google login, an I not allowed to count those users because I simplified their sign up flow too much? Your stance on this basically makes no sense.


instagram and threads are both social apps owned by a large social app giant and they launched right when people were getting pissed off at Elon’s twitter

calling their DAU numbers anything but a perfect storm doesn’t make sense—your app wouldn’t push messaging to every google user to join, and you don’t own Google OAuth and users, Google does.


Threads was a breath of fresh air at first and I followed a bunch of people I already followed on Instagram and Twitter. Opening the app today there is exactly 1 post from someone I follow and pages upon pages of ‘recommended’ content from people I don’t care about, much of which is outrage bait and political content. Talking to other people I know this experience seems to be common.

I understand the idea of wanting to make the app feel alive on day one by including content from popular influencers, but I genuinely think they would have had better retention if they went the other way and only showed you what you wanted to see - or at least separated the recommended posts onto another tab and gave better controls for filtering it.


They didn’t use React Native, but wrote separate iOS and Android apps.

Does this mean that React Native has lost support and investment from Meta?


With SwiftUI and Kotlin Jetpack Compose you can write architecturally and syntactically similar code across the two platforms. Essentially the same compact classes with the differences just being view property differences and OS API discrepancies (location, etc). So it's become a lot easier to manage separate development while keeping design direction and architecture on the same page. This is more so the case for apps with simple aesthetics and simple user interactions like Threads. It's not necessarily a sign that they are dropping support for React Native.


Well put. I intended to reply with something like "keep simple things simple" but you gave it much more depth.


I don’t think they’ve ever really built entire apps in React Native outside of maybe messenger? Usually a few screens are implemented in it and the rest native. Or maybe features are prototyped in it and later rewritten.


They actually did another article with some good history on the iOS app for Facebook: https://engineering.fb.com/2023/02/06/ios/facebook-ios-app-a...


It means you get many more promotion points for creating a new framework and shipping it in a new product.

Also, generally internal tools are exceedingly poorly documented and supported so it seems easier to write your things from scratch.


As the article states, they reused a tonne of things from Instagram.


Still not available in EU, as they will not allow to use email instead of instagram accounts [1] 1. https://www.theverge.com/23789754/threads-meta-twitter-eu-dm...


Geez what an oversight


It's not an oversight. Let's them start with less hurdle from oversight authorities.

Also focussing on a market reduces investment in localisation and then having unsustainable small local bubbles.

(And ensures I won't waste my time trying it, as I'd have to bypass too many hurdles for making it work)


But isn't the appeal of the Twitter is a global public square?


The "global square" isn't a single thing, it is an intersection between many many small sections in a bazaar.

If my peer group isn't there I run away quickly.

The newest outrage in US politics is only of limited interest to international audience, but they "need" the local outrage. As is the Baseball "World Series" maybe relevant in the U.S. but outside barely anybody cares.

For being successful you have to get the local number one stars on the platform. Good coverage of the favorite sport and sports teams. And a group of locals to discuss those things.

Sure American culture has some relevance globally, but over large parts even Europe itself is quite heterogenous.

Once you got it big enough it runs with less oversight. But mind: you can't afford too small growth being Facebook/Instagram/Meta and competing with Twitter/X for people who haven't left already as well as BlueSky, Mastodon, ...for people who already left sets a high barrier. Just see all the news about people leaving Threads already (which is to be expected - people try it out, see nothing, leave, a subset stays and then maybe grows it)


If you're looking for a deep dive into the Threads apps, can check out this non-Meta written post: https://www.emergetools.com/deep-dives/threads


Also some more details here, interviewing two team members:

https://newsletter.pragmaticengineer.com/p/building-the-thre...


I'm baffled by the amount of interest in Threads, but I guess some of the technical stuff is novel? I don't know a single person who uses it.


The technical feat was impressive. 100 million users at launch with no major downtime. Most people here are interested in that story.


Is that really impressive at this point? With all of the frameworks, cloud infrastructure, etc? And the resources of one of the biggest companies in the country? What’s impressive is that Meta would waste resources on this when their Oculus division is already such a disaster.


Services with network effects go clique by clique. You don’t know anyone on it. For others, their entire social circle uses it.


I’m not that old or insulated yet, and I work in tech. People with any business savvy or sense of digital culture should have known that it would fizzle out very quickly, as it has. This is not how things evolve. I’d recommend the book “The 22 Immutable Laws of Branding” if you don’t understand why. The network effects of this project are a hockey stick going in the wrong direction.


Yeah the flamewars between Mcdonalds and Wendy's accounts are epic. I'm sure they will be longtime Threads users. Unfortunately for my cadre of human based contacts, it is a complete desert. Everyone was intrigued for a week or so, some tried to keep it going a month later but we even have people that would benefit from leaving Twitter like AOC having abandoned the platform.


> Yeah the flamewars between Mcdonalds and Wendy's accounts are epic

Is this a thing people are still finding novel these days? It was cute when Wendy's started posting tweets that appealed to millennials a decade ago, but these days I'm not gonna use an app where I'm just looking at a feed of cringey ads where social media managers try to look hip and with it by posting a big chungus meme.

Any time I open Threads, all I see are posts from brands (ads), engagement farming, and people posting about how Twitter is dead despite the fact that it's still where all the fun stuff is happening.


Given the supposed usage numbers of Threads I presume no one is finding it novel these days...


The same parties who bought “real estate” in the “Metaverse,” no doubt.


> Instagram uses Python (Django) for its backend. By using the same backend for Threads, we could leverage a lot of the existing tech stack for Threads and reuse most of our existing data models, business logic, security features, and server infrastructure. This also meant users could sign in to the app with their existing Instagram account, making it super simple to onboard and set up your Threads app.

Looks like Python and Django is extremely scalable at Facebook scale, even after using Threads I didn't realise any downtime at all.

It would be possible for Mastodon to learn from this so that they too can scale to 200 million users.


The only lesson to learn from this is that given exceptional resources and a long list of talent any stack can be made to scale.

That doesn't help most projects in the world.


> The only lesson to learn from this is that given exceptional resources and a long list of talent any stack can be made to scale.

Exactly. IIRC, Facebook itself is/was a giant ball of PHP, and they had to do all kinds of crazy things to make it scale, up to and including writing their own compilers and VMs.

That doesn't say anything about the suitability of the scalability of stock PHP.


I think the lesson is, avoid rewrites and don’t break apart your monorepo; have teams improve the platform while your product engineers go full-steam ahead. Compare with Twitter which spent 2 years in the woods rewriting to Java while FB kept growing, giant ball of PHP and all.


You’re getting downvoted for this, but you’re not wrong.

Just keep moving forward unless the sky is falling is 100% the lesson to be learned here.


In the worst case, you'll fail to scale due to technical shortcomings like Friendster and become forgotten while later entrants like Facebook eat your lunch.

There was a time when "being web scale" was a real concern. That's one reason companies like Google make such a big deal about it in their technical interviews. Now most of the hard work has been done and exposed as services so today even an untrained teenager can stand up a web-scale service.


Python apps using popular frameworks (not all frameworks) are generally (not always) easy to scale. The app itself is mostly just "spawn another instance somewhere" - storage and sessions and all that can be complex, but that's not really impacted by the app framework/language.


(I use django in production myself, nothing against it)

It's probably worth noting Meta made their own JIT'd version of CPython just for Instagram/Threads. Maybe mastodon devs can use their interpreter, but Meta's human/compute resources are magnitudes more than mastodon, the lessons from Meta might not be very applicable.

https://github.com/facebookincubator/cinder


Isn’t Mastodon written in Ruby?


Yes, I wasn't sure if parent was suggesting they switch to django, or simply "using what facebook learned" - I didn't want to imply that there's no way Mastodon devs couldn't use Cinder to their advantage.

I do however highly doubt Cinder would be of use to Mastodon at the current moment.


recently they made cinder public… this is a JIT’d version of cpython


I don't use Python or Django anymore but I'm always happy to hear about it and kinda surprised to learn it's still being chosen today for massive-scale social media sites. To me, Django was my go-to for cranking out a usable MVP in the shortest time possible. It made it so easy, I could define a DB schema and it would generate these forms with validation built in. I kinda miss those days.


What you're saying is correct, but oh boy have I worked on Django apps that have had awful security issues because of this. "look, all my endpoints are there, user A must only be able to reset their own password... right? ;)"

Also you don't have to miss those days! You can still use Django or a similar library? I still use Flask, it is great.


I'm pretty deep in the Typescript world these days but hey, maybe one day I'll make my way back into Python!


I sort of wish that Go, Rust, Zig has these kind of frameworks like Django, Laravel and Rails.

I believe there is an opportunity here to make the next Django in these languages.


Each of those absolutely do have them. Here is a list for just Golang: https://github.com/avelino/awesome-go#web-frameworks


There are a lot of things that goes on in production to scale any service to handle that level of requests. But Django as a web framework is good at what it does. It comes in with most things that one needs to put web apps in production.

We recently open-sourced an LLM apps platform (https://github.com/trypromptly/LLMStack) that is entirely built with django as backend (drf for APIs, channels for websockets and reactjs for frontend).


Mastodon has such a different system architecture—at a business level—that I think many of the scaling challenges are entirely different. While my experience with Mastodon is as a (very satisfied) user, in general scaling challenges are as much figuring out how to scale the interactions between systems as they are scaling the individual systems themselves. That gets incredibly more difficult when those individual systems are spread out among various organizations with different priorities, philosophies, technical abilities, and resources.


This is largely due to Meta maintaining an internal performance-oriented production version of CPython: https://github.com/facebookincubator/cinder .


Python/Django (and most other frameworks) isn't the problem with scaling. It's following the 12-factor app rules.


Python is known to be pretty wasteful in terms of compute performance, but is the compute grunt of a given node a big deal in these kinds of networks? I assumed it is a big communication problem. Python shouldn’t hurt there, right? It isn’t like a Python-generated packet goes through the network more slowly.


> t would be possible for Mastodon to learn from this so that they too can scale to 200 million users.

I mean possibly, if it was designed to be a centralised bohemoth with a staff of 600 to look after it.

Its decentralised by design, much like the web used to be.


So did they setup a separate backend for threads or did they just extend the current instagram backend to support text posts?


These systems should not scale. Giving everyone free broadcast capability is a sign of mentally bankruptcy.

Its like giving every neuron in your head broadcast capability. What happens when they all fire at the same time? Or like giving everyone in the world a radio transmitter that can broadcast on any frequency. What happens when they all transmit on the same frequency at the same time?

These idiots are scaling things because its become possible technically. There is no other logic to whats going on. And its producing/enabling massive amounts of useless noise. The UN report on the Attention Economy says 0.5% of content on the net is actually consumed by anyone.


> These systems should not scale. Giving everyone free broadcast capability is a sign of mentally bankruptcy. ... These idiots are scaling things because its become possible technically. There is no other logic to whats going on.

I agree, but I don't think it's a sign of "mentally bankruptcy," but an indication of the flaws and limitations of contemporary ideology. They're not just doing it because it's technically possible, they wouldn't even try and no one would sign up if our ideology didn't say it was a good thing to do.


They are kind of saying that they have become such a behemoth, with so much bureaucracy and inefficiency, that the only way they could move so fast is by building a sub team. Kudos for being honest.


I don't see this really making people care about the Fediverse

anything I can read or watch about federated social media trends?


The best way to stay in the loop on federated social media trends is to join a fediverse instance.

It gets discussed a lot there.

Anecdotally, there was a lot of discussion within the fediverse when threads was announced and the general sentiment that a lot of people had, was that instances should immediately defederate from threads to avoid eternal september.

Personally, I argued for staying federated with them because I think that would lead to a healthier fediverse. What I envision is:

1. Most normal individuals will be on a corporate-backed, ad-supported instance like threads.

2. Companies and governments will be on custom-domain instances managed by a fediverse service provider who they pay directly, both for branding and in order to avoid being beholden to the poor customer service of the corporate-backed instances.

3. Some tech-savvy individuals will be on small or self-hosted independent instances that provide a differentiated experience in some way. (This is most of the current fediverse)

This is basically how email works now and so it seems like the most likely end-state.


Are any of the big email tools planning to add support for ActivityPub? They already have your corp domain so it feels natural. For example, I could see a future where MS Exchange has the ability to federate with Mastodon and optionally enable/disable employees through ActiveDirectory, etc.


> With everything moving ahead at full speed toward a July launch, our team saw and took an opportunity to release the app early. On the upside, this meant Meta would be able to offer a new social app at a time when people were eager for a new experience.

Wow, this seems like an unnecessary dig at X.


How so? Aside from the name change X was exactly the same experience that Twitter had been giving for a decade or more.


Not "exactly". Twitter artificially boosted its new owner's tweets, the site regularly returned errors after shutting down data centers, and users who were previously banned for hate speech were allowed back on the platform. And while 3rd party apps might not have had huge adoption relative to the size of twitter, I know a few people for whom that was the last straw.


Does anyone have DAU/MAU or "post" numbers for Twitter, Threads, Bluesky, and Mastodon? Even if only estimates?

Who's growing fastest? Who's stagnating?


Mastodon stats: https://fediverse.observer/stats

I haven't found public stats for any of the others.


Wow.

Can we infer from the precipitous dip in MAUs in the 1st half of the year that half of the userbase for Mastodon is under 21 (busy with schoolwork?)


You can get a sense for bluesky from the AT firehose: https://firesky.tv/


I would love to know the entire backend stack of threads. From their load balancers to Database schemas.


Apply for a job there, and you'll quickly learn.


I've been enjoying Threads. What with Musk going all in blaming the ADL for his problems... that's just too much. The guy is unhinged. I used to think of him as quirky or eccentric and appreciate some of the good things he's been involved with, but he's gone off the rails.

Threads is still missing some features, and there's less traffic, but it's probably healthier for me to spend less time on social media anyway.


Musk is definitely unhinged on his ADL attacks, but the ADL has some... strange takes.

They have whole articles on how the Bowl Cut and the OK symbol are hate symbols. For the OK symbol they have nested "disclaimers" (why these are not prominent right from the get-go is beyond me, however). And the bowl cut page doesn't even hold any disclaimers at all - as if the 5 year old whose Mom doesn't know how to give a haircut is really very dangerous?

* https://www.adl.org/resources/hate-symbol/bowlcutdylann-roof

* https://www.adl.org/resources/hate-symbol/okay-hand-gesture


The okay thing is pretty real. I worked for a company that changed its logo so as to avoid the one they had, that was an 'okay' gesture. They were big enough that that decision cost them time and money - they didn't make it lightly.

With bowl cuts, they're not talking about 5 year olds and their moms, obviously, but grown-ass men who know better.

All people are susceptible to 'patternicity' - seeing a pattern where there is none, and it's possible they blow a few things.

But that kind of pales with him singling out the Jewish group for attention and blame.


Did you read that bowl cuts article? Or just spreading more alt right nonsense without any thought of your own? You are completely misrepresenting what that article about bowl cuts is about.


Do you genuinely consider Democrats (and a social democrat at that) to be alt-right?

Yes, I read the article. It’s quite short, and includes no such disclaimers like the “OK” page makes (I’d argue poorly, but it still does).


Noticed Threads during the second launch; it was earlier released during 2019. I forgot there's an app called Threads. I bet if an average person like me launched it, no one might have even noticed it. Such is life.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: