Tweetscape

January 2022
Social MediaInformation DesignAIAlgorithms

A prototype for a more user-centered social media client — one that reframed Twitter as a discovery interface instead of an engagement trap. Instead of opaque feeds optimized for engagement, Tweetscape explored what it would mean to give users algorithmic agency: clear, steerable controls over how discovery works.

Incubated by Roote in 2022, Tweetscape started as an experiment in turning Twitter into a tool for thought. I joined an early lightweight client (started by Nick Torba) to re-architect it around a social knowledge graph and NLP-powered entity tracking — so recommendations could become something users could inspect and edit, not just receive.

Failed to load mediasrc: https://kqdcjvdzirlg4kan.public.blob.vercel-storage.com/content/projects/2022-tweetscape/published/website/images/tweetscape-graph-building.png

The Challenge: Lost in the Stream

Twitter around 2022: Engagement-hungry algorithms pushing content, often sacrificing relevance or focus. And that’s even before a certain dude took over and didn’t exactly make things better. You scrolled, but did you discover? Meaningful control over the ‘why’ behind the feed felt absent. The challenge wasn’t just about building a better Twitter client; it was about questioning the fundamental dynamic: could we design an experience centered on user control and transparent exploration, rather than passive consumption optimized for platform metrics?

Modeling Algorithmic Agency

Instead of accepting the linear, opaque timeline as a given, we imagined Twitter as a navigable space — a dynamic graph of people, ideas, and conversations. The core architectural concept was the Social Knowledge Graph. Instead of mapping followers or hashtags, we used NLP to understand the content of tweets, extract entities (people, topics, concepts), and map semantic relationships.

Then, we integrated this semantic layer with the social interaction data (likes, replies, quotes). Instead of treating engagement as merely a popularity score or engagement fuel, we repurposed it as a signal for contextual relevance, trying to bridge social context with semantic depth. The hypothesis was that the same signals used for platform optimization could, with the right interface, support user-driven discovery.

We built tools on top of this graph to give users actual algorithmic agency:

CapabilityWhat it gave users
Personalized streamsDefine streams based on semantic similarity, specific topics, or anchor tweets
Community detectionIdentify clusters and shared interests based on graph topology
Entity trackingFollow ideas or people as they moved across conversations, not just down a timeline
Multiple viewsSwitch between time, topic clusters, or association chains to reveal different patterns
Controlled serendipitySurface relevant novelty (“unknown unknowns”) via graph proximity rather than pure randomness
Feedback transparencyUnderstand (and influence) why content shows up in your stream
Failed to load mediasrc: ["https://kqdcjvdzirlg4kan.public.blob.vercel-storage.com/content/projects/2022-tweetscape/published/website/images/tweetscape-stream_building.mov"]
Graph-based stream building: Sources → Streams → Views → Content

The system was designed around a modular flow (Sources → Streams → Views → Content) intended to make discovery both powerful and steerable. The idea was inspired by the ease of something like Spotify radio, but with crucial added transparency and control.

Failed to load mediasrc: ["https://kqdcjvdzirlg4kan.public.blob.vercel-storage.com/content/projects/2022-tweetscape/published/website/images/conceptual_framing.png"]
Tweetscape’s discovery model: Sources, Streams, Views, and Content in a feedback loop

A user could kick off exploration by simply selecting a few initial Sources — perhaps a couple of trusted researchers, a specific insightful tweet, maybe a broad topic. Based on these seeds, the system would generate initial Streams showing related content and conversations. As the user explored the Content in different Views (timeline, clusters, etc.), items they interacted positively with (e.g., liked, saved, spent time on) would implicitly be added back to their dynamic list of Sources.

Crucially, users could directly edit this Sources list at any time — adding new people or concepts, but just as importantly, removing sources that were leading the stream in unhelpful directions. This provided direct, transparent control over the recommendation engine, unlike a static ‘radio station’ where you can’t easily change the tune once it starts playing. The user was always able to reshape the lens through which they viewed the network.

Outcome: A Working Prototype & Seeds for Trails

We built a working prototype with a solid NLP pipeline and a graph backend juggling around 5 million nodes sampled across the Tools for Thought, Web3 and TPOT communities. It demonstrated that a user-directed, graph-based approach to social media navigation was technically feasible and offered a genuinely different exploration experience.

Then, Twitter’s new ownership changed the API access policies, effectively pulling the plug on the project’s data source. So, Tweetscape as a product was sunsetted. However, the core architectural ideas — particularly the associative engine linking semantic and social data (developed primarily by me), and the focus on user-defined information flows (interface concepts developed with Andre)—didn’t die. They became the direct intellectual foundation for the initial Trails prototype, which aimed to build a similar associative discovery engine, but liberated from reliance on any single platform’s API. It was a lesson in the fragility of building on rented land, but also in the portability of core concepts.

Team

RoleNameContribution
Vision & System DesignJulian FleckConceptual framework, architecture, NLP, interface design
Full Stack DevNick TorbaTwitter integration, early prototype, graph traversal, data sourcing
Backend DevKikuo EmotoGraph infrastructure, data modeling, NLP integration
Frontend Dev & DesignAndre VachaUI implementation of core UX, design research, graph traversal
Design ResearchRicardo SaavedraEarly vision development, design direction
AdvisorRhys LindmarkRoote incubation, strategy, funding support