Steven Tey Profile picture
Mar 31, 2023 15 tweets 9 min read Read on X
Twitter just open-sourced their algorithm.

Some initial takeaways:
◆ Your following to follower ratio matters.
@TwitterBlue subscribers do get a boost in the algorithm.

Will keep adding more to this thread 👇
1. Your following-to-follower ratio matters.

Twitter's "Tweepcred" PageRank algorithm reduces the page rank of users who have a low number of followers but a high number of followings.

Source ↓

dub.sh/tweepcred
2. It looks like @TwitterBlue subscribers do get a boost in the algorithm.

Source → dub.sh/twitter-blue-a… Image
3. Twitter identified 4 different user groups to track & compare how often their tweets are being impressed to users:

◆ Power users
◆ Democrat users
◆ Republican users
@elonmusk

Source → dub.sh/twitter-user-g… Image
@elonmusk 4. There are a few factors that determine if your tweet will appear on someone's "For You" tab, mainly, the probability the user will:

◆ like/RT your tweet
◆ click into your tweet & reply/stay there for >2 mins
◆ check out your profile 👀

Source → dub.sh/twitter-for-you
5. Some negative feedback loops that will reduce your "reputation score" on Twitter:

◆ Getting blocked
◆ Getting muted
◆ Abuse reports
◆ Spam reports
◆ Unfollows (not as heavily penalized as the above 4 though)

Source → dub.sh/negative-signa… Image
6. To put these feedback loops in perspective:

A user clicking on your tweet staying there for >2 min is weighted 22x more than them just liking your tweet

If they click into your profile through your tweet & likes/replies to a tweet? 24x more than a like.

If they reply to… twitter.com/i/web/status/1…
7. When needed, the government can intervene with the Twitter algorithm.

In fact, @TwitterEng even has a class for it – "GovernmentRequested"

Source → dub.sh/twitter-gov-in… Image
8. Presidential elections is also another big part of the Twitter Algorithm.

It can:
◆ Recommend election candidates to follow: dub.sh/twitter-gov-el…
◆ Suppress misinformation during Election events: dub.sh/twitter-gov-el… ImageImage
9. So far, I've scoured both the Twitter Algorithm repos but I still haven't found anything about the following:

◆ If a tweet containing a link will be ranked lower
◆ If bookmarking a tweet will boost its rankings

It looks like these are more myths than facts but I'll report… twitter.com/i/web/status/1…
10. In the current light ranking model (Earlybird), tweets with images & videos seem to get a nice 2x boost → dub.sh/earlybird-medi…

However, this is an old model that Twitter is planning to rebuild completely, so things might change → dub.sh/earlybird Image
Update: I added all of the above into the blog post below, will keep updating it as things change.

For example, the 4 user groups tracked by Twitter (point #3) has already been removed in this massive PR: github.com/twitter/the-al…

steventey.com/blog/twitter-a…
Some additional learnings:

11. The algorithm will consider more of your tweets if you have a high TweepCred

E.g. if your TweepCred is <65, the ranking algorithm will only consider up to 3 of your tweets.

But with >65 TweepCred, the limit is lifted.

dub.sh/twitter-anti-g… Image
12. Your tweet's relevancy decreases over time.

At a rate of 50% every 6 hours, to be exact.

dub.sh/tweet-decay-sc… Image
Update: Bookmarks will start weighing as much as likes, if not more: steventey.com/blog/twitter-a… Image

• • •

Missing some Tweet in this thread? You can try to force a refresh
 

Keep Current with Steven Tey

Steven Tey Profile picture

Stay in touch and get notified when new unrolls are available from this author!

Read all threads

This Thread may be Removed Anytime!

PDF

Twitter may remove this content at anytime! Save it as PDF for later use!

Try unrolling a thread yourself!

how to unroll video
  1. Follow @ThreadReaderApp to mention us!

  2. From a Twitter thread mention us with a keyword "unroll"
@threadreaderapp unroll

Practice here first or read more on our help page!

More from @steventey

Jan 17
Life update: I'm starting a company around 🚀

We're building the link management infrastructure for you to create marketing campaigns, link sharing features, and referral programs.

Here's how it all started – and where we're going: Dub.co
Image
@dubdotco Quick backstory: I built Dub​ as a side project to solve an internal need we had @vercel – sharing links on @X with nice OG images.

The product was fully open-source and quickly gained a lot of traction (#1 on Hacker News + 14K stars on @github).

Since then, Dub kept growing – mostly through word of mouth, without spending a cent on paid marketing.

And we're just getting started.

Read 6 tweets
Aug 31, 2023
Introducing Shooketh – an AI bot fine-tuned on Shakespeare's literary works:

It's fully open-source and built with:
◆ @OpenAI's new fine-tuning feature
◆ @nextjs + @vercel AI SDK

Full guide on fine-tuning in thread 👇 vercel.fyi/shooketh
So, what is fine-tuning?

It's akin to prompt engineering, but instead of customizing GPT via a prompt at every user request, you are customizing the *base model* itself.

Analogy: getServerSideProps vs getStaticProps in @nextjs 👇

vercel.com/guides/fine-tu…
What is Fine-tuning?  Similar to prompt engineering, fine-tuning allows you to customize gpt-3.5-turbo for specific use cases. However, instead of customizing them via a prompt every time the user interacts with your application, with fine-tuning you are customizing the base model of gpt-3.5-turbo itself.  A great analogy for this is comparing Next.js' getServerSideProps vs getStaticProps data fetching methods:  getServerSideProps: Data is fetched at request time – increasing response times (TTFB) and incurring higher costs (serverless execution). This is similar to prompt engineering, wher...
@nextjs Benefits of fine-tuning over prompt engineering:

◆ Token savings (no need to have a massive prompt)
◆ Faster response times (ditto smaller prompt)
◆ Better quality results (tailored to the exact behavior you want) Screenshot of the following quote:  Early tests have shown a fine-tuned version of GPT-3.5 Turbo can match, or even outperform, base GPT-4-level capabilities on certain narrow tasks.
Read 4 tweets
Jun 15, 2023
@vercel just launched the AI SDK.

You can now build AI-powered apps with streaming – starting with one simple command: `npm i ai`

Here are some examples👇 Illustration of the Vercel ...
But first, why streaming?

Here are 2 examples – the first uses a blocking UI, while the second uses a streaming UI.

As you can see, the streaming UI is able to start displaying the response much faster than the blocking UI.

Try it out for yourself: vercel.fyi/Gb6nMzv
Example #1: Chat interfaces

With the `useChat` hook, you can build a simple yet beautiful chat interface w/ streaming in just a few lines of code.

For reference, I built the following example in <10 mins with this hook.

Link to the `useChat` docs: vercel.fyi/PfxcThx
Read 7 tweets
May 9, 2023
I spent the weekend upgrading dub.sh to @nextjs App Router.

Featuring:
◆ Segment-level caching
◆ Server components
◆ Parallel & intercepting routes
◆ Dynamic OG images + Metadata API

Here's what I learned 🧵
1. You can now cache individual fetch calls via segment-level caching.

Combine static, dynamic, and revalidated data inside reusable components. E.g. on @dubdotsh's homepage:
◆ GitHub star count: 60s
◆ Tweet testimonials: 1hr

The best part? Detailed logs for each cache hit 😍 Image
2. Server components help you write less code.

No more bulk fetching data inside getStaticProps and prop drilling all the way down to your child component – just use a server components instead.

Here's the (much cleaner) index page after the migration: Image
Read 6 tweets
May 1, 2023
@vercel just launched databases.

Here are some open-source templates you can clone & deploy to try it out 👇
1. Vercel Postgres @nextjs Starter

Simple Next.js App Router template that uses Vercel Postgres as the database.

vercel.com/templates/next…
2. Vercel Postgres @nextjs Starter w/ @prisma

Simple Next.js App Router template that uses Vercel Postgres as the database and Prisma as the ORM.

vercel.com/templates/next…
Read 11 tweets
Apr 30, 2023
Weekend project: Building a Changelog for @dubdotsh with @nextjs App Router → dub.sh/changelog

Some of my takeaways:
1. React Server Components are 🐐-ed
2. File-based metadata API is a gamechanger
3. Route handlers are heavenly

Code is 100% open-source 👇
1. React Server Components allowed me to dynamically fetch data for the <Author/> component directly inside the component itself.

The best part? Leveraging @nextjs' built-in Cache API to set a revalidate timeframe of 24 hours.

Code: github.com/steven-tey/dub… A screenshot of the <Author...
2. File-based metadata API is a gamechanger.

I no longer need to maintain a <Meta /> file for all of my routes – just drop in an image as `opengraph-image.png` and it *just works*.

Need a dynamic OG image? Just change the extension to `.tsx` and use nextjs.link/og 👇
Read 5 tweets

Did Thread Reader help you today?

Support us! We are indie developers!


This site is made by just two indie developers on a laptop doing marketing, support and development! Read more about the story.

Become a Premium Member ($3/month or $30/year) and get exclusive features!

Become Premium

Don't want to be a Premium member but still want to support us?

Make a small donation by buying us coffee ($5) or help with server cost ($10)

Donate via Paypal

Or Donate anonymously using crypto!

Ethereum

0xfe58350B80634f60Fa6Dc149a72b4DFbc17D341E copy

Bitcoin

3ATGMxNzCUFzxpMCHL5sWSt4DVtS8UqXpi copy

Thank you for your support!

Follow Us!

:(