I’ve been thinking back to my time as a core member of the original team that built the “blue bird” web app. I learned a great many lessons there and thinking through them: How would I rebuild a similar web app today, like a Mastodon frontend or an Activity Pub web client?

https://paularmstrong.dev/blog/2022/11/28/lessons-learned-how-i-would-rebuild-twitter-today/

Lessons learned: how I’d rebuild a social web app like Twitter today • Paul Armstrong

I’ve been thinking back to my time as a core member of the original team that built the Twitter web app. I learned a great many lessons there and thinking through them: How would I rebuild something similar to the Twitter web app today, like a Mastodon or Activity Pub web client?

@paularmstrong Nice post. Sounds like I need to check out Solid. I’d like to hear your NextJS thoughts too :)
@kpk thanks! I’m just afraid the Next.js one would turn into an incoherent rant 🤣
@paularmstrong @kpk Putting another request into the hat for your thoughts on Next.js :) Over the years I heard some perspectives that if the site was being rebuilt today, Next would be preferred to raw React/CRA, but you likely have more nuance.

@addyosmani @kpk I don't think I have deep enough experience in Next to really give a thorough argument against it. However, off the top of my head I can think of a few problems:

* routing was feature-switch/exp dependent. Next's file-based router would be difficult to manage on top of that
* over-prescriptive patterns may be difficult to scale
* low control over some server-side things – there were a lot of perf-related middleware, tracing, and logging – may be more difficult in Next

@addyosmani @kpk On a personal note, the CEO of the company that controls Next once wanted to "chat" with me about "performance" that I had worked on for Twitter under the guise of being able to work together openly – and then spent the entire conversation trying to sell me on converting Twitter to Next.js barely 6 months after we launched. It felt slimey to me and has since left me skeptical of the entire platform.

@addyosmani @kpk I also worry about the long-term with Next.js. Sure, it’s open source and maybe it’ll live on, but at what point does Vercel decide that their paid services need to make more money and start blocking features behind needing to host on their infrastructure?

I look at Apollo GraphQL as a similar model where you can’t get metrics for individual queries unless you’re paying them.

@paularmstrong @addyosmani makes sense. I think the new SSR story could’ve been pretty amazing for twitter, but agree that some of the patterns feel restrictive right now.
@kpk @paularmstrong Thanks Paul. Requiring lower-level control for SSR and scaling up file-based routing to meet your experimentation needs are fair reasons for sure. Also ack on there being long-term questions about the funding model worth keeping in mind.