Tusked is an alternative web client (+ PWA) for Mastodon being built using Astro by the creator of Mastopoet.
Warning
Tusked is missing most of the features planned currently, and will probably have a lot of bugs.
Usage is not recommended, unless you are ready to withstand bugs, and report them to the developers.
Official deployment (not available yet):
- ๐ญ Production: tusked.app
- Branch:
production
- Hopefully more stable than nightly
- Branch:
- ๐ Nightly: nightly.tusked.app
- Branch:
main
- New features instantly available
- New bugs also instantly available
- Branch:
About the name Tusked is very similar to Tuskly, which I don't like because it might confuse users. But I couldn't come up with a better project name as of yet. If you have cool name suggestions, toot them at me, @[email protected]!
- Feed-wide post editor
- ๐ก Rich post editor (highlighting links, mentions and hashtags)
- ๐ก Support for formatting (only visible to other users of Tusked, via CSS classes)
- ๐ก Popover with user profile when hovering username (allowing to follow without having to click to profile)
- ๐ก Easy and simple interactions between Mastodon instances
- ๐ก Syncing read notifications between multiple tabs
- ๐ก Support for quoting posts (link to other post being last thing in a post)
- ๐ก Grouped notifications
- ๐ก Persist drafts between sessions
- ๐ก Automatic Mastodon link detection and opening in app (even with PWA if possible?)
- ๐ก DeepL translate posts (option to automatically?)
- ๐ก Automatic post language detection (at least suggest, "is this post in ?")
- ๐ก Multiple account support
- ๐ก Notifications bubble thing on switcher
Here's some stuff I have thought of, but not sure if I should implement them.
- Allowing to view instances local feeds
- Thread numbering (from Phanpy)
- Boost icon to rocket (at least on default theme, from Phanpy)
- Implement themes:
- High contrast
- High accessibility (larger text)
- TangerineUI port
- Catpuccin?
- E2EE encrypted private messaging ๐คท
- Mastodon client is missing some QoL features I'd prefer to have, that can't be solved with CSS
- I didn't want to learn Ruby and tweak around Mastodon's code to make changes (or maintain my own instance, or make code that might break the next update).
- Elk is made with TailwindCSS, making it hard to customize the look of it (outside of the provided color options).
- I'm not familiar with Vue, and there's ~25 directories in the root! Seemed too complicated to bother learning how to use Vue and contribute
- Phanpy is going bit in the wrong direction for my use case and liking, but that's 100% fine! That's the point of being opinionated.
- Uses JavaScript and not TypeScript :/
- Add support for new messages and notifications from Streaming API (my instance doens't allow it)
Mastodon Bird UI is already great, but having to interact outside of your instance is still hard. I want a smooth experience, and allow people to customize the client to their needs, without having to host an instance themselves, or use extensions (I still haven't figured out how to properly use Stylus).
The default UI is heavily inspired by Mastodon Bird UI by Roni Laukkarinen. We decided to use SCSS, and not an UI framework to allow for theme support to be implemented easily in the future, and for cleaner code. This also one of the reasons I decided not to go with with Elk.
Sad to see Tusked isn't for you, at least at it's current stage.
- Elk is similar to Tusked, but is more opinionated and limited.
- Phanpy is an minimalistic and very opinionated Mastodon client
- Phanpy's list of alternative Mastodon clients
- Vite (build tool)
- Preact (UI library)
- Valtio (state management)
- Masto.js (Mastodon API client)
- Vite PWA (PWA support)
- SCSS + PostCSS (โจ๐๏ธ theme support planned)
- Feather Icons
Tusked doesn't collect any personal data. Read more about service providers (anonymous analytics, error logging, hosting) in PRIVACY.md.
- Tusked includes code from Phanpy licensed under MIT, consult LICENSE-PHANPY
- Elk for inspiration and html parser functions, licensed under MIT, consult LICENSE-ELK