A tiny server written using Deno and Express which allows Mastodon clients to access Twitter.
This app doesn't store any data, it just acts as a proxy that rewrites requests in cool ways.
Tested with: Pinafore, Elk, Ivory for iOS
- Deno (developed and tested with version 1.29.4)
- A server with a SSL certificate and a subdomain
- API keys that have fallen off the back of a truck
- Nerd verification icon (used for people who have Twitter Blue) from @[email protected]
| Feature | Status | Notes |
|---|---|---|
| View Home Timeline | ✅ | |
| View Mentions Timeline | ✅ | |
| View Notifications | 🔶 | Push not supported. Notification type filters are currently ignored. Quote tweets, favs/RTs of mentions and favs/RTs of your RTs not shown. |
| View Tweet | 🔶 | Quoted tweets in threads are incorrectly displayed as top-level members of the thread. |
| View Profile | 🔶 | Profiles and tweets can be viewed, but following/followers lists don't work yet. "No RTs" view missing. Some profile metadata missing. |
| View List Timeline | ✅* | May need pagination fixes. |
| View Lists | ✅* | Mastodon doesn't let you view other people's lists, so this metadata isn't exposed |
| Edit Lists | ❌ | May be impractical |
| Create Tweets | 🔶 | Text-only tweets and replies supported. No reply controls or scheduling yet |
| Delete Tweets | ✅ | |
| Retweet | ✅ | |
| Fav/Like Tweets | ✅ | |
| View Media | ✅ | Images, videos, fake-GIFs all supported |
| Quote Tweets | 🔶 | Quote tweets are rewritten to internal URLs (which Ivory is able to show when tapped), but something nicer would be REALLY cool... |
| Polls | 🔶 | Polls can be viewed but cannot yet be created or voted on |
| Bookmark Tweets | ❌ | Twitter API doesn't seem to expose bookmarked status properly |
| Pinned Tweets | 🔶 | Pinned tweets will appear on profiles, but you cannot pin or unpin a tweet |
| Circle Tweets | 🔶 | Circle tweets have a CW/spoiler attached to denote that they're special. Circle tweets cannot be posted yet |
| Reply Controls | ❌ | Not sure how to translate this to Mastodon - I'm using the toot privacy flag to denote protected accounts |
| Verified Display | ✅ | Verification status is shown as custom emoji |
| Follow/Unfollow | ❌ | |
| Block/Unblock | ❌ | Blocks will be respected but cannot be modified yet |
| Disable Retweets | ❌ | Setting respected (this is handled by Twitter's servers) but cannot be modified yet |
| Search | ❌ | |
| Direct Messages | ❌❌❌ | Mastodon's DM paradigm is just too different to ever support these, honestly |
| Follow Requests | ❌ | Not yet sure if this would fit into Mastodon's UI cleanly |
- Reorganise the codebase
- Implement more features
- Sort threads correctly
- Implement more Twitter Card types as Mastodon cards where I can
- Implement entities for profile descriptions (e.g. clickable @ names)
- Implement missing bits in existing features (alt text, voting in polls, etc)
- Find out why Elk is unhappy with my implementation of pagination
- Forward info about the API rate limits
- Redirect web browsers from the bridge's fake profile/tweet URLs to the real URLs on twitter.com
- Add TypeScript types for more things (Twitter API and Mastodon API entities?)