BetterTweetDeck icon indicating copy to clipboard operation
BetterTweetDeck copied to clipboard

TweetDeck Preview, Better TweetDeck and the future

Open eramdam opened this issue 2 years ago โ€ข 2 comments

I'm opening another issue to replace https://github.com/eramdam/BetterTweetDeck/issues/653 because quite a lot has changed since I commented there, and I figured it would act as a better redirect point for future questions/discussions about this topic.

As you may know, Twitter has started rolling out a new version of TweetDeck. How you feel about it isn't relevant since it will be rolled out generally at some point anyway[^1].

Here's how it will affect Better TweetDeck:

  • It brings feature parity with Twitter Web, which is a great thing because I had to do a lot of that with BTD
  • It completely breaks BTD due to how it's built. The new TweetDeck is the Twitter Web App + some code to handle multiple feeds/columns [^2].

What do I plan to do about it?

A year ago I had said I'd poke around and see what I could do, and around the beginning of this year, I started digging more seriously into how I could feasibly rewrite BTD for it.

Unfortunately, the tech stack that TweetDeck Preview uses makes it very hard to extend it:

  • Redux (state/data management) is relatively easy to poke at, and I could do some things, but it's only one piece of the puzzle
  • React in conjunction with react-native-web make it very hard to mod anything in a reliable way because the component tree of the app is just a bunch of views that are indistinguishable from each other and they're all styled with machine-generated CSS classes that change depending on the underlying styles applied. All of this means that any UI or CSS mod is hard to make and maintain.

However, some of the issues I have with TweetDeck Preview aren't technical. I have been working on Better TweetDeck for more than 8 years at this point, so the thought of having to throw out all the shared knowledge of the internals of TweetDeck to start over is, at best, annoying and, at worst, kind of depressing.

After thinking about it for a long time, I've concluded that I do not want to start over on even less stable grounds. As much as BTD has been fun as a project, it involved a lot of stress because overnight, Twitter could (and did!) break BTD without any warnings, and it doesn't sound like TweetDeck Preview would be less of a moving target. Add to this the annoyances/support issues that come with working on a browser extension for all the major browsers, and honestly? I think I want to chill for a bit.

What now?

For Better TweetDeck

First and foremost, as of writing this, I'm considering Better TweetDeck to be in a feature freeze state. Any changes I do/accept to the codebase will be bug fixes when I can gather the motivation to do so. Notably, the "biggest" change that's on the way is updating the tooling of BTD to support Manifest V3 because Google will require it for any updates to existing extensions, so I can't escape it.

That Other Project

Those who follow me or the BetterTDeck account know that I've been toying with the idea of making my own 3rd party web client. It's getting closer to an alpha/MVP state where I'll be able to gather feedback from a small number of users. I will communicate about it in more detail when it can actually be used by regular users, but here's a small rundown of what I want to do with it and what to expect:

  • For now, it's codenamed Skyla. We'll see if I stick with this name or not ๐Ÿ˜€
  • I want to support newer features enabled by Twitter API V2 like bookmarks, faster refreshes of timelines, and whatever they have planned for it
  • Due to being a 3rd party client, it will not support an Activity column or notifications[^3]
  • It will be built to support multi-account functionality like the current version of TweetDeck does
  • The UI is barebones right now, but ultimately, I want it to look like "old TweetDeck but more modern." Multi-column support is baked in, and I also want to support a "one column" view somehow.
  • Like BTD before it, I want to give it a bunch of customization options and make it easy for people to write their own user styles if they're into that.
  • It will most likely be open source, free to use for most people. I have yet to think about how to monetize it because running it will cost me money, unlike BTD. Don't expect ads or whatnot, though.
  • While the goal right now is to make it a fully featured Twitter client, it would be possible to make it support Mastodon, making it a unified Mastodon/Twitter client, which is something I've wanted for a long time.

If you want to be involved somehow, please reach out! I could definitely use the help whenever the project is a bit more laid out.

Conclusion

First of all, I want to thank everybody who used BTD, spread the word about it, or contributed to it in any shape or form. I definitely couldn't imagine it being so big when I started working on it as a student in 2014, and it's been a wild ride โ™ฅ๏ธ

While BTD is on its last leg alongside TweetDeck "legacy" itself, I think Skyla as a project could serve many people very well if/when it comes to fruition.

Thanks for reading, and thanks for the support for all those years!

[^1]: When this rollout exactly happens hasn't been communicated. My gut feeling says it'll be sometime around early next year but don't quote me on that as I'm (obviously) not a Twitter employee! [^2]: That's not even an exaggeration, and I have been told it's by design to avoid running into a situation where TweetDeck has to wait months before it gets a new Twitter Web feature [^3]: Some Twitter clients like Spring or TweetBot did manage to hack their way into displaying notifications/statistics, but it's far from trivial, so I'm not considering it right away.

eramdam avatar Sep 04 '22 11:09 eramdam

As already stated on Twitter in the past, I'm open to help with infrastructure/maintenance.

fdellwing avatar Sep 04 '22 12:09 fdellwing

Reserving this post for future addendums:

Addendum about API limitations and how Skyla could/might work around them.

Notifications

As of now, there are no real ways to get notifications about likes/retweets/tweets in the Twitter API. Clients like Spring and TweetBot have made it work by polling metrics, and tweets are a regular interval and dispatching notifications accordingly. This is something I could do, but no plans yet.

Activity column

TweetDeck Preview doesn't (won't?) have it, and there's no good way to replicate this feature with Twitter's API. If you think about it, the math is pretty damning. Let's say you follow 100 followers, then, at a regular interval, you need to:

  • Make 100 requests to get all of your followings' followings
  • Make 100 requests to get all of your followings' likes
  • Make 100 requests (at least) to get all of your followings' quote tweets/retweets

This, unfortunately, smashes Twitter's rate limits pretty quickly. That said, you could get creative and build some workarounds:

  • Pin a user's likes as a column. This is something TweetDeck Preview can do right now and should be easy to build. Screenshot
  • Build a "combined column" that takes multiple feeds (multiple users' likes, for instance) and lists them in one column.

Both of which would be much more feasible/easy to scale and maintain, so all hope isn't completely lost if you rely on that feature ๐Ÿ˜

eramdam avatar Sep 04 '22 12:09 eramdam

firstly, many thanks for your app and all your work over all this time developing and supporting it.

btw, note, although it may be just the usual generic Twitter dysfunction re this function, i have not got any #BTD Tweets although i am of course a Follower?

and i just of 'lucked' into this GitHub Post

i couldn't help with any actual coding - those days are long gone.; but what i am expert on is UI/GUI design and functionality.

it is odd (to me) how Twitter is basically trashing what was a solid worthwhile app.

decard123 avatar Sep 29 '22 02:09 decard123

Came here to request a feature but stumbled upon this. Can't imagine the feeling of building a QoL extension that becomes full-fledged only to have it break and unmaintainable due to something out of your control.

Thanks for everything you've done throughout the years for this and continuing to maintain support while you can. I'm looking forward to what's to come of your own Twitter client Skyla. The fact that it will be open sourced is appreciated as well.

Infinitay avatar Oct 12 '22 07:10 Infinitay

I also stumbled on this, because I was looking for a solution for polls opening in twitter in stead of tweetdeck as used to be. On the side: maybe Elon Musk could help?

victor-50 avatar Oct 12 '22 12:10 victor-50

On the side: maybe Elon Musk could help?

I will assume this is a joke because it is an hilarious one ๐Ÿ˜†

eramdam avatar Oct 12 '22 12:10 eramdam

Hi!

ยปIf you want to be involved somehow, please reach out! I could definitely use the help whenever the project is a bit more laid out.ยซ

I would like to offer my help as beta tester and provide German translation if needed.

frank42hh avatar Oct 28 '22 16:10 frank42hh

As someone who has maintained a BetterDiscord theme for the better part of two years I know the pain of writing custom styles for a react app that changes classNames seemingly every goddamn week... nvm them being mangled too, which is something I don't even do myself.

I'd definitely be interested in an opensource Twitter+Mastodon client. I currently got Tweetdeck and mastodon in two separate tabs, with tweetdeck managing 3 accounts that I might end up scaling down to just my public one + some private lists.

Mitsunee avatar Nov 12 '22 11:11 Mitsunee

๐Ÿ–– What an honor to have used your tools for so long. Your future looks bright!

stefanhayden avatar Feb 07 '23 17:02 stefanhayden

I liked all the features you provided โ€“ though I didn't like them all. When those flags rolled out, I was not happy. When those forced gender labels rolled out, I was not happy. I was not happy because these did not personally interest nor concern me. Beyond that, though, I've gotten a ton of use out of Better TweetDeck and its various features, such as enhanced timestamps, post "editing", and the like. It's a shame to see it go over corporate self-sabotage (as it were), but I understand.

I wish you the best of luck, BTD fellows. Thanks for the years of awesomeness!

02/08 Edit: Well, โ–ˆโ–ˆโ–ˆ me for being honest, I guess. Eat pant, "Thumbs-Down Crew". Thank you.

JoLiKMC avatar Feb 08 '23 00:02 JoLiKMC

I'll sure miss you </3

gollum2411 avatar Feb 08 '23 07:02 gollum2411

Thanks for your work over the years. BTD was a great example of how an open app infrastructure can make each webapp or site the jumping board or others to improve or build upon, and it's a shame that web frameworks - and web companies - are actively working against that.

lisardggY avatar Feb 08 '23 09:02 lisardggY

Well. Every good thing will have an end someday. Only the bad stuff will last for longer or even grow. Your decision is understandable under the current state of twitter and in what direction it is moving.

Thanks a lot for the great tool you provided to make TweetDeck a better one ๐Ÿ‘

Phelagor avatar Feb 08 '23 10:02 Phelagor

I am agreeing with the others here, your decision is very understandable. I was a heavy user of this and it's sad to see Twitter go where it goes, but there's nothing to be done here anymore.

Thank you for all the efforts you put into this, it made Twitter so much better to use!

icedream avatar Feb 08 '23 10:02 icedream

Your decision is understandable. I will miss BTD for sure, but before all thank you for your great work during these years!

mben42 avatar Feb 08 '23 11:02 mben42

hey, thanks for the great work during those years. kinda crazy how much i'm used to using Better TweetDeck, its so weird whenever i boot up a new computer/browser and i got the default look on TTDeck.

im very saddened by this but i can totally feel where you're coming from, so once again: thank you for the amazing extension and i hope things work out for you!

saulojoab avatar Feb 08 '23 14:02 saulojoab

Thanks for the great work!

Your decision is understandable. :)

rapdodge avatar Feb 08 '23 15:02 rapdodge

You provided a value added service. You brought snacks to the party that was twitter. Their management has officially rung the death knell. Twitter will never be any better than it is at this moment, which is a sad, sad state. It's best days are behind it.

DezGDNY avatar Feb 09 '23 01:02 DezGDNY

Thanks for making my life just that little bit better :disappointed_relieved:

Let us hope that after losing his mind, Musk will also lose all his money after the stupid move of buying Twitter, which would prevent him from wreaking more havoc upon the world...

WanWizard avatar Feb 09 '23 02:02 WanWizard

The new Tweetdeck is barely manageable. Looking around for alternatives, I found tweetduck , an exe-shell that has some merit. Maybe eramdam would join the team there?

On the side, I have to defend Musk. He wouldn't have stepped in if the first amendment was respected. In this respect he has done good things, though political opponents who support the powers that be think otherwise of course. The "files" show that Twitter made some money for their censoring. He had to clean up a lot and that's not an easy thing to do in a short time. It still is a private enterprise so it has to earn its money. This makes understandable that the add-free tweetdeck had to change, including the fact that there were freeriders who actually made money with tweetdeck. I am willing to pay, though not โ‚ฌ 8 a month for an ad-free tweetdeck.

victor-50 avatar Feb 09 '23 09:02 victor-50

thanks for maintaining Better TweetDeck, for making the long extended months of March 2020 better, and for changing "pronouns in bio" up to "pronouns in TweetDeck". pronouns make things better :3

kouhaidev avatar Feb 09 '23 09:02 kouhaidev

Addition: Congress hearing

victor-50 avatar Feb 09 '23 10:02 victor-50

Just today, a friend asked me to help them set up Tweetdeck because they couldn't find the "tweet from another account" thing, and I log in and there the fugly new UI is. All my columns gone, all my account team members, everything.

Screw that shit. They really don't understand how many people they're driving away by cutting off devs like this.

mxamber avatar Feb 10 '23 12:02 mxamber

I thank you from the bottom of my heart for all the wonderful tools you have given us.

And I regret the fact that you had to leave with a broken heart.

BlueRayi avatar Feb 14 '23 14:02 BlueRayi

Musk is stupid arrogant privileged entitled f*k totally out of his depth in this environment. the fact is he does not have a CLUE what he is doing: he is just thrashing around mindlessly. the trouble with stupid people is that they usually think they are sooooo smart, and arrogant with it.

PS did you read where he was seen being very cosy with the evil reptile Murdoch recently. i wonder if he is thinking if he can wangle some sort of deal to get him out of this mess he made out of his own arrogance, hubris, and stupidity?

decard123 avatar Feb 15 '23 03:02 decard123

Wouldn't mind a Better Mastodon that improved on stuff like following accounts on different servers and such. ๐Ÿ‘

KAMiKAZOW avatar Feb 16 '23 18:02 KAMiKAZOW

Appreciate all the messages!

Just a small PSA that this thread isn't made to debate Twitter's CEO (or anything related) and I will be hiding/deleting comments accordingly. I've kept the repo open so people can write things out but if the discussion derails I will be locking the thread/archiving the repo.

Thank you.

eramdam avatar Feb 21 '23 17:02 eramdam

Wouldn't mind a Better Mastodon that improved on stuff like following accounts on different servers and such. ๐Ÿ‘

I second this! I'm using Misskey and Mastodon right now, and a client that brings together all the different platforms into a TweetDeck-Like experience (even if it has to be self-hosted to access) would be such an awesome and nice thing.

EpicLPer avatar May 09 '23 08:05 EpicLPer

Maybe it's gone? I can only select the Tweetdeck Preview version in my environment, sadly.

naari3 avatar Jul 04 '23 00:07 naari3

RIP. Seems it's finally dead now. M*sk apparently killed the old version and forces everyone onto the new one even if you tell BTD to roll back or tell Twitter to delete the new ones data and exit.

You had a good run. Time to use an extension that gets around the horrible new UI until M*sk ruins that

sekoku avatar Jul 04 '23 00:07 sekoku