Back to projects

0media

Circumventing social media bans in the UK, US, Australia, and elsewhere.

Expanding access!

“I” refers to me; “we” refers to me and Paul.

I co-founded 0Media with Paul Estrada initially as a summer project that spilled over into something much more long-term. Initially, the project was ridiculously complicated and overengineered.

Our original approach to circumvent social media bans for people, dubbed 0Phone, was to run Android phones remotely and stream them to users. The amount of infrastructure required to do this is insane. Running an entire phone means having to manage computing costs, video streaming, extremely sensitive latency issues (where a few ms difference becomes pretty noticeable), privacy concerns with needing to store immense amounts of sensitive data, and the security issues that come from hosting multiple phones in one server. Not to mention that hundreds of requests coming from the same general server locations is the easiest way to get flagged and blocked by Meta. Each layer of this problem created more and more things to be engineered by just two people, and the amount of GPU servers we would need to make this happen put our runway requirements into six figures. I ended up raising money to fund this, and solo pitched to 1517. We were ultimately rejected because 1517 calls itself the “kiss of death” for consumer companies, and thank God for that. Within a few days we had pivoted to a drastically simpler idea. (On a side note, we stayed close with the team at 1517, and ended up spending a really cool week in Los Altos with them and a LOT of really cool people!) The ambition was really exciting, but making this project sustainable was another thing altogether.

The transition from 0Phone to 0Media was an exercise in applying Occam's razor. We took it to the whiteboard again, and I asked Paul how much of an architecture is REALLY necessary for someone who wants to access a social media platform. What's the bare minimum we need to make this work? We ultimately decided that rebuilding individual web clients would let us scrap the whole remote Android environments and streaming whole phones. We started with an Instagram client, with connections relayed through a Python relay hosted abroad. That gave us a much simpler (and much, much cheaper) product that we could test and improve without needing to buy out all of Singapore's GPU servers.

Paul's work established the first Instagram client and relay system. I put together our first public landing page and a separate reconstructed Instagram interface, rebuilt from collecting API calls and having a script scroll through my phone for a couple hours and take thousands of screenshots, then connecting that better interface to the existing client.

I later constructed the initial Reddit and YouTube clients. My Reddit work includes the interface as it is right now, login verification, pagination and allowing users to edit their own content. For YouTube, I built the foundations of the client and worked on video playback, which taught me how to deal with a LOT of random bugs like preventing cancelled requests from disrupting future playback attempts. Paul contributed substantial development in perfecting the clients and making them aesthetically compatible with the originals.

Alongside development, I manage outreach, finances (we received a Medici grant from 1517, alongside many other financial rewards like $10K in AWS credits, that I make sure we use wisely), and expansion to additional platforms. That introduced what I would say is the biggest persistent challenge with 0Media: getting people to actually discover and use our clients. Social media bans haven't come into full enforcement yet, so it's essential to advertise extensively before the fact. But the issue is of course that nobody's going to really care until the bans have already hit them. Another issue is that social media marketing is one of my weaknesses, and one that I fixed by software-ing myself out of it.

To help 0Media, I built 0Bot. 0Bot is a very simple system that scrolls the most popular reels and TikToks, ranks them for relevance against our service, takes the 3 most relevant reels and hands them off to Opus 5.5 to either create a full animation based on the reel or to clip it with an animation attached to it. I'm still working on full animations, with only clipping being used to fully automate 0Media's social media feeds. It automatically publishes at set time intervals too, so it can be completely hands-off while I work on other projects. Making these animations useful is teaching me a whole bunch of new engineering lessons. Renders can fail, services randomly restart halfway through a job, etc. I've added recovery, retry handling and guards against duplicate work, and I'm constantly tweaking the Sol 6.1-ified relevance scorer.

Across 0Phone, 0Media, and 0Bot, I have become conscious of what it takes to develop systems. The infrastructure, maintenance, and the time needed to actually create and distribute a product. But I think that the most important takeaway from this all is to take Occam's razor VERY seriously in founding. Start from the simplest thing you can put in people's hands, and keep on improving from there.

A confused child looking at a laptop