Skip to content
🛡️ FREE Master Frontend Security · All 7 modules live · 100% free Start free →
Episode 42 47 minutes

Newsletters at Scale with Sebastien Lorber

Key Takeaways from our conversation with Sébastien Lorber

Sébastien Lorber

Creator of This Week in React, Docusaurus maintainer at Meta, independent React consultant

Señors @ Scale host Neciu Dan sits down with Sébastien Lorber, creator of This Week in React and a maintainer of Docusaurus at Meta. Sébastien has worked with React since late 2013 and spent years as an independent consultant before a French-language side project aimed at landing audit work turned into the newsletter 45,000 developers open every week. From the exhaustive weekly workflow across 2,000 X profiles and 500-plus RSS feeds, to the Gmail size limit that quietly decides what makes each issue, to why French sponsors could never make it sustainable, to why he checks React's feature flags before telling anyone a feature has shipped, this is the unglamorous operational reality behind one of the biggest newsletters in the React ecosystem.

🎧 New Señors @ Scale Episode

This week, I spoke with Sébastien Lorber, the creator of This Week in React and one of the maintainers of Docusaurus at Meta. Sébastien has been working with React since late 2013 and spent years as an independent expert helping teams of all sizes ship better React and React Native. Six years ago he started a newsletter in French, hoping it would bring him higher-level consulting work. It never did that — but it became the thing over 45,000 developers open every Wednesday, and eventually his living.

In this episode, we dig into the weekly curation workflow that eats three days, the Gmail size limit that decides what makes the cut, why French sponsors could never make the numbers work, what paid acquisition on X actually cost him, why he checks React's internal feature flags before announcing anything, and why trusted publishing on npm made him feel less safe rather than more.

⚙️ Main Takeaways

1. The newsletter was a lead magnet that failed at being a lead magnet

The origin is a freelancer trying to move up the value chain, and the plan not working out.

  • The actual goal: As a freelancer with early React experience, he wanted to attract better customers — "high-level consulting gigs like audits and things like that," rather than pure execution work. He was posting on LinkedIn every day, and readers suggested he collect the links into a newsletter.
  • Why it never mattered: "The newsletter didn't really help me to achieve this goal because I started working for Meta at this time on the Docusaurus." He's still on that project today.
  • Why he kept going anyway: It solved a pain he felt himself. "There's a ton of articles for React beginners. But if you are a bit more senior, it's hard to find interesting content. And you have to skim over a lot of interesting links to find one that is really something novel that you have never seen."
  • The sustainability math: For years it was half his time on Docusaurus and half on the newsletter. "Spending more than two days on the newsletter per week is not sustainable if you don't make any money from it. It's better to have a full-time job, you know."

2. The French version had an audience ceiling and a sponsor ceiling

The pivot to English wasn't about reach for its own sake — it was about who would pay.

  • A fast start, then a stall: He converted his existing French audience and got around 1,000 subscribers in the first day or week, then crawled from 1,000 to 3,000 over one or two years.
  • The money problem: The only sponsors he could find were French companies hiring developers, against a small audience. "A company in French is less likely to pay you than a company in the USA that is like trying to hyperscale the company or something like that. They don't have exactly the same budget."
  • The six-month runway: Two years in, he started posting the same links as threads on X, where he had no audience beyond a few open source contributors he'd worked with. He did that for more than six months purely to collect English subscribers before launching anything.
  • The launch: The English version started with roughly 4,000 English subscribers on top of the 3,000 French ones.
  • Running both nearly killed him: He segmented the list, translated the English email to French every week, and tried to sell different sponsors per language. "It was really painful to manage having different sponsors per language." He dropped the French edition.

3. Exhaustive curation is the product — and it costs three days a week

Most newsletters cap the format. He deliberately doesn't.

  • The anti-format: "Most newsletters have a predefined format and like they don't share more than 10 links or something like that and this is not what I do." If nothing is interesting that week, he includes less; if everything is, he covers everything.
  • The promise: Coverage is shallow by necessity — one comment per link — but nothing relevant gets discarded. "If you read the newsletter, the goal is that you can count on us to not miss anything important."
  • What it grew into: It started at half a day and around five links per week. "Now if we count everything, including managing sponsors, I think it takes like three days a week."

4. The workflow: a 2,000-profile X list, then 500+ RSS feeds

This is the part nobody sees, and it's mechanical on purpose.

  • The X pass: He keeps a curated list of around 2,000 X profiles built up over time, filters it for tweets above an engagement threshold, and scrolls seven consecutive days of the chronological list until he hits last week's tweets, then stops. "It's an exhaustive process. I just follow the process."
  • Discovery on the side: He watches algorithmic recommendations for authors he's never heard of, then subscribes to their GitHub projects or adds their blog's RSS feed.
  • The RSS pass: More than 500 feeds in InnoReader, including things unrelated to React — Firefox releases, browser news.
  • Feeds where none exist: He uses a tool that generates web feeds from pages without RSS, and points it at GitHub. "On InnoReader, I am able, for example, to subscribe to new pull requests from the React core team across various repositories to check what they are working on." That's his real-time sneak peek at the next release.
  • Tooling he never built: He'd like a dashboard, but "when I send the newsletter on Wednesday I've already spent like two or three days on it and I don't have time left to build anything." Sponsor management runs on Sponsy — automated reminders, collected ad copy and banner images — which replaced chasing four sponsors a week for assets over email.

5. Gmail's truncation limit is the real editor

A hard technical constraint decides what ships each week.

  • The limit: Past roughly 100KB, Gmail truncates the email and shows a "read more" button that "opens a shitty pop-up window that creates a really bad user experience" and loses your scroll position.
  • It corrupts the stats too: Truncation can cut off the tracking pixel, so open rates come back wrong.
  • How he stays under it: His email software warns him as he approaches the threshold, and after six years he has an intuition for how many links fit.
  • What gets postponed: Time-sensitive links win. "Sometimes I find a great article that was published like three weeks ago. If I postpone it to next week, it's not a big deal."
  • Deliberate variety: If one author publishes five articles in a week, he spreads them across weeks, and he balances stacks on purpose. "If you use Next.js and only see TanStack articles, maybe you are less interested because you don't use that stack."

6. Merged is not shipped — check the React feature flags

The accuracy discipline behind covering a project you also work near.

  • Wait for the merge: When in doubt he waits, because "there's a lot of interesting drafts that never are merged."
  • Merged still isn't enough: "There are a lot of flags on the React code base. So I usually check the flags to see in which version this is." Some features only ever run internally at Meta.
  • The context selectors example: A pull request landed roughly two years ago behind a Meta-specific flag, was tested internally, and then reverted — the team decided the React compiler was the better answer. Announcing it as coming to React "is not really true."
  • Why he cares: Getting it wrong would "give false hopes" to a community that has wanted that feature for years.
  • The friendship tax: Mostly he finds the pull requests himself rather than maintainers bringing him news, and he needs to post for acquisition. "Sometimes I post things that maybe they don't like because this is not ready to share for them." He hears about it privately when his framing is off.

7. Growth has stopped, and he's made peace with it

A rare piece of honesty about a newsletter that isn't going up and to the right.

  • The number: Stable at around 40,000 after cleaning cold subscribers, with roughly a 60% open rate. It's slowly decreasing.
  • Why: A two-year-old daughter and a house-building project, and no appetite left for the platform game. "It was funny in the beginning, but now I don't like to play the game of social networks anymore... I don't want this to become my full-time job."
  • The channel decayed too: Threads with a call to action used to work. "Now today when I post a link, it doesn't perform that much" — the algorithm penalizes links.
  • The reframe on unsubscribes: "You should consider not your subscribers like something your own, more like a stream. You get subscribers coming and you get subscribers out and that's life." He unsubscribes from newsletters he likes, usually because he's moved to their RSS feed — not because the content got worse.

8. Paid acquisition works, and X ads cost him more than money

Four years of running ads, with a side effect he didn't expect.

  • The spend: Between €2 and €3 per subscriber, roughly €10,000 a year, currently on Facebook and Instagram, plus some Reddit.
  • Why X ads worked: They converted people who already read his threads but had never subscribed — an audience whose trust he'd earned over time.
  • Why he stopped: Costs rose sharply after the ownership change, and "a lot of people that I respected blocked me because of that, because they disliked the idea of someone giving money to Elon Musk." Being blocked broke his own curation — he had to create a second profile to read conversations he needed for the newsletter.
  • Channel quality is a guess: "My tooling doesn't permit me to really analyze this in depth." His intuition is that X and Reddit subscribers stick better than Instagram ones, but he sees Instagram subscribers stay too.
  • A strategy he'd try next: Stop bolting a call to action onto organic posts, since links get penalized. Publish the valuable content clean, and let a separate ad do the converting later, once people recognize your name.

9. Sell to companies that already sponsor newsletters

The cold-start problem in sponsorships, and how he works around it.

  • Engineers read you; marketing doesn't know you: Readers at a company like Sentry are engineers, but the marketing team holding the budget has never heard of you, so someone has to make the introduction.
  • Don't try to be the first: "If a sponsor has never sponsored any newsletter, it's hard to convince them for your newsletter to be the first they sponsor." Instead, look at who sponsors comparable newsletters — those companies have budget, try everyone, and keep whoever performs.
  • He turns sponsors down: Fit matters more than filling the slot. He got banned from the Paved marketplace over his first sponsor there, a corporate B2B product whose link pulled around ten clicks. "It's not my fault if their product is something hard to sell to front-end developers."
  • Expectations vary wildly: Some sponsors understand branding takes repeated exposure; others are disappointed by a low click count on an expensive B2B product nobody buys from one email.

10. Click counts are the most misleading number in the business

He doesn't share stats by default, and he has good reasons.

  • Truncation skews opens: A cut-off email breaks the tracking pixel, so the open rate reads low.
  • Apple inflates clicks: Automated link handling adds clicks no human made.
  • Corporate security scanners are worse: Some company mail systems auto-click links as a safety check. "There was one company that got a lot of clicks in our email tool. But in practice, it was automated."
  • UTM parameters make it worse, not better: "I've noticed that this kind of security protections target those links in priority." The tracking you add to measure the campaign is exactly what the scanners hit.

11. Disclose sponsorship clearly, and don't build a clickbait machine

His editorial line, stated plainly.

  • Disclosure is required, and he goes further: He marks sponsored links with an emoji up front. Some newsletters put "sponsored" small, or after the link text, or behind an asterisk — technically disclosed. "I think it's a bit of a dark pattern because you are misleading the reader to read something sponsored while they wanted to skip it."
  • Reformat the clickbait: When a linked article or video has a clickbait title, he rewrites the framing so readers aren't disappointed on arrival.
  • The email should stand alone: "I'm not trying to maximize the amount of click. I try to make the email self-sufficient." He inlines the meaningful bits so an issue is worth reading even if you never click.

12. React Server Components as primitives, not as the Next.js model

His read on the ecosystem, from someone who watches all of it every week.

  • He likes RSC: The pushback he sees is mostly against one implementation. "It's easy to think that the only way to use the React server component is how Next.js is using them. And we can see now with TanStack that it's not really the case and you can use them as primitives."
  • Room for both: Opinionated versions and flexible versions can coexist, and the community benefits from seeing more than one model.
  • The feature he's been waiting for: React's scheduling work and the new Activity component. "It's something that I've been waiting for years and we are still not really leveraging it today as much as we could."
  • What RSC unlocks for Docusaurus: Interleaving server and client code inside a static site generator, smaller documentation bundles, and better composition. Today the plugin architecture keeps blog and docs isolated — you can't surface your latest blog posts inside your docs. He plans to work on it this year.

13. Trusted publishing is not the safety net it sounds like

Recorded the same day as the TanStack compromise, so this one was fresh.

  • What he shipped: He tightened the security pipeline in the latest Docusaurus release and started using trusted publishing.
  • The catch: "This is a bit misleading because you can think that something trusted is safe, but it's not the case. If my computer is compromised and someone is able to trigger the publish workflow or commit on my behalf, they can publish something malicious to Docusaurus even if there is the trusted publishing checkmark."
  • The defaults are wrong: "I think npm should change the default. And GitHub Actions also has something to do because we can see today with TanStack that there are some things, some defaults that are not correct."
  • Why Docusaurus may be a smaller target: Plenty of npm downloads, but the users are spread across Python, Java, and non-developer communities rather than concentrated in front end.
  • The attack pattern to know: Fake recruiters send a candidate an npm test project; a yarn install is all it takes. "Of course it's better to target maintainers because the reward is better for hackers."

🧠 What I Learned

  • The newsletter started as a French lead magnet for consulting work, failed at that job, and survived because it solved a real gap: there's endless React content for beginners and very little for seniors.
  • The English pivot took six months of posting threads on X with no audience, purely to build a list before launching.
  • French sponsors couldn't make it sustainable — the audience was small and the budgets weren't there.
  • Exhaustive curation is the differentiator, and it costs three days a week including sponsor management.
  • The workflow is deliberately mechanical: a 2,000-profile X list scrolled seven days back, then 500+ RSS feeds in InnoReader, including generated feeds for GitHub pull requests from the React core team.
  • Gmail truncates emails past roughly 100KB, which breaks the reading experience and the tracking pixel — so the size limit is effectively the editor.
  • Merged is not shipped. Check React's feature flags before announcing anything; context selectors landed behind a Meta-internal flag and were later reverted for the React compiler.
  • Growth has plateaued around 40,000 with a ~60% open rate, and treating subscribers as a stream rather than a possession is what makes unsubscribes survivable.
  • Paid acquisition runs €2–3 per subscriber and about €10,000 a year; X ads worked well but got him blocked by maintainers whose content he needed to curate.
  • The cold-start fix for sponsorships is to target companies already sponsoring comparable newsletters, never to be someone's first newsletter.
  • Click counts are inflated by Apple and by corporate security scanners, which target UTM-tagged links in priority — the tracking you add is what gets falsely clicked.
  • Trusted publishing on npm doesn't protect you if your machine is compromised; the checkmark ships with the malicious release.

💬 Favorite Quotes

"There's a ton of articles for React beginners. But if you are a bit more senior, it's hard to find interesting content."

"Spending more than two days on the newsletter per week is not sustainable if you don't make any money from it. It's better to have a full-time job, you know."

"If you read the newsletter, the goal is that you can count on us to not miss anything important."

"It's an exhaustive process. I just follow the process."

"You should consider not your subscribers like something your own, more like a stream. You get subscribers coming and you get subscribers out and that's life."

"It was funny in the beginning, but now I don't like to play the game of social networks anymore."

"It's not my fault if their product is something hard to sell to front-end developers."

"I'm not trying to maximize the amount of click. I try to make the email self-sufficient."

"It's easy to think that the only way to use the React server component is how Next.js is using them."

"You can think that something trusted is safe, but it's not the case."

🎯 Also in this Episode

  • The tension he lives with: wanting to stay a developer rather than become a full-time journalist, and delegating issues to partners so he can write more code
  • His admission that he hasn't shipped a React Native app in about three years, has never really used TanStack Start, and hasn't used Next.js much — despite featuring all of them weekly
  • Why Docusaurus is an unusual React codebase to maintain: a static site generator with barely any useEffect, nothing like the dashboards most people build at work
  • Reader feedback is rare — around one reply a month — and arrives mostly when he shares behind-the-scenes details rather than links
  • Having to request testimonials on X in order to have anything to put on the landing page
  • The Axios maintainer takeover that started with a Slack invite and a Teams link, and Matteo Collina being targeted the same way but never clicking
  • TkDodo's blog traffic falling 20–30% year over year as Google stops sending people to websites, and whether curation newsletters are hit the same way
  • Book recommendation: Focus, on attention and how modern society is designed to take it from you — read just before his daughter was born, and not much since

Resources

More from Sébastien and the tools mentioned:

Books mentioned:

  • Focus — on attention and the forces designed to take it

🎧 Listen Now

🎧 Spotify
📺 YouTube
🍏 Apple Podcasts

Episode Length: 47 minutes on six years of curation, the three-day weekly workflow, Gmail's truncation limit, sponsorship economics, misleading click metrics, and why trusted publishing isn't the safety net it sounds like.

Whether you run a newsletter yourself, sponsor them, or just want to know what it costs someone to make sure you don't miss anything important each week, this one is the operational reality behind the inbox.

Happy curating,
Dan

🛡️ FRONTEND SECURITY · REACT · VUE · ANGULAR · VANILLA JS

Master Security in Frontend Applications

Free, comprehensive frontend security course.
XSS, CSRF, AI security, broken access control & the vulnerabilities that actually get you breached.

100% FREE 7 MODULES · ALL LIVE
Start learning free →

All 7 modules live now. No credit card.

💡 More Recent Takeaways

Accessibility at Scale with Craig Abbott
Episode 48

Señors @ Scale host Neciu Dan sits down with Craig Abbott, Principal Accessibility Specialist at TetraLogical and the former Head of Accessibility at the UK's Department for Work and Pensions, one of the largest government departments in the country, where he built a dedicated accessibility practice from nothing and open sourced the DWP Accessibility Manual. Craig has over 15 years in user centred design and has led accessibility work across the public sector and at Elastic. From what sustainable accessibility actually means and why third party audits alone don't get you there, to the three C's of compliance, culture and capability, to running screen readers in VMs without expensive licences, to accessibility acceptance tests in CI with Playwright, Cucumber and Guidepup, to why compliance does not mean usable, this is the accessibility conversation for teams who want it to survive the person who cares about it.

Versatility at Scale with Carmen Huidobro
Episode 47

Señors @ Scale host Neciu Dan sits down with Carmen Huidobro, CTO at Incredible Bee in Vienna, where she builds products and helps teams figure out what should be automated and what should stay in the hands of users. Carmen has spent 17 years in tech, almost all of it freelancing, working across Objective-C, Ruby on Rails, the web, mobile, hardware, and even ABAP inside an SAP consultancy, plus five years in developer relations and developer education. Her argument is that the generalist versus specialist debate misses the point: the durable skill is being an expert at adapting. From adding a local Mistral model to a twenty-year-old macOS app without betraying the people who use it, to the refugee hackathon project the City of Vienna still runs a decade later, to why she won't take money from junior developers, this is a conversation about the skills that survive the shift.

CI/CD at Scale with Marko Gacesa
Episode 46

Señors @ Scale host Neciu Dan sits down with Marko Gaćeša, Head of Product at Semaphore, the agent-native CI/CD platform, and the first product guest on the show. Marko is a serial entrepreneur whose career spans developer tools, IoT, industrial automation and enterprise SaaS, including founding Dry Tools and serving as Chief Product Officer at Alchemy Cloud, with earlier work in domains like medical equipment where quality is non-negotiable. From why testing rather than coding is now the bottleneck, to what agent-native CI/CD actually means when developers live inside their coding agent, to how SemAI attacks flaky tests and automates migration off GitHub Actions, to pricing a platform where a minute of CI is not the same minute everywhere, this is the product side of developer tooling from someone shipping it.

AI Harness at Scale with Maxim Salnikov
Episode 45

Señors @ Scale host Neciu Dan sits down with Maxim Salnikov, AI Dev Tools Solution Engineer at Microsoft, where he leads AI native development enablement for over 100 enterprise customers of Microsoft and GitHub in Norway. Maxim has been building for the web since the late 90s and spends his days inside real enterprise dev teams across finance, energy, agriculture, and pure software companies, watching AI adoption succeed and fail. From why adoption is a change management problem rather than a technology one, to the anatomy of an AI harness and the external layer successful companies build on top of it, to the context engineer and agent ops roles now appearing in team topologies, to managing agent skills as versioned dependencies instead of letting them pollute the repo, this is the enterprise AI adoption conversation from someone who sees a hundred versions of it.

📻 Never Miss New Takeaways

Get notified when new episodes drop. Join our community of senior developers learning from real scaling stories.

💬 Share These Takeaways

Share:

Want More Insights Like This?

Subscribe to Señors @ Scale and never miss conversations with senior engineers sharing their scaling stories.