I’m not the biggest fan of Twitter. I used to be fairly active, following political, meme, and Bitcoin accounts. Finding hilarious memes and the latest news in Bitcoin and politics seemed to be useful. However, I realized that most of the time, Twitter was a time sink at best and a source of stress at worst. Combine that with its abysmal privacy practices and I wanted out. I didn’t delete my Twitter account, but I did remove it from my phone.

This presented a problem: Twitter was still a massive communication hub. Many Bitcoiners, projects, and open source developers are very active on it. A lot of the time, the only source of support for a piece of software I use would be on Twitter. I found myself wishing I could tweet anonymously and quickly.

That is the main reason behind this project. I want to create a website that lets you tweet without a Twitter account.

Why Lightning?

Lightning is going to be used to introduce skin in the game. In order to tweet anonymously, I would need to have an account/bot that is linked to a simple website. The account will tweet on the behalf of any users of the site. If you have no skin in the game, then the posts will likely end up an unholy fusion of YouTube comment spam and 4chan posts.

Captchas are very annoying to complete and doesn’t solve the trolling issue. I think trolling can be pretty funny and somewhat useful. However, I don’t want the account shut down for people posting gore and the like. So what if you could stake some sats for a couple days then make your tweet? If a post violates the Terms of Service of Twitter or is simply spam, you lose the stake and the post. Otherwise, you get the sats back.

This would limit the spam and trolling if people knew that they could lose their sats.

Censorship!

Yes, you would be trusting the person running the site and account. You would also be trusting Twitter at the same time. If something is centralized, you will encounter censorship sooner or later. There’s not much I can do to mitigate this other than committing to a free speech policy. The project will also be open source. This way, anyone can spin up their own instance and compete.

Tools and Frameworks

Now for the technical stuff! I will be using the Django framework for this project. To interact with Twitter, I will use the Tweepy python library. To generate invoices, I will use BTCPay Server installed on my umbrel node. People need to be able to get their sats back, but not steal anyone else’s sats. The LNURL standard is perfect for this. A combination of LNURL-Auth and LNURL-Withdraw will do the trick. LNURL-Auth will let users login to the site without passwords or usernames. LNURL-Withdraw lets users take the sats they’ve staked before back.

What’s next?

In the next blog post, I’ll show what I’ve done so far on the site and what challenges I came across when implementing these features.

Links, References, and Resources

Django overview | Django

Tweepy

BTCPay Server

GitHub - fiatjaf/lnurl-rfc: lnurl specifications