Giter Site home page Giter Site logo

raikasdev / tusked Goto Github PK

View Code? Open in Web Editor NEW
8.0 2.0 0.0 4.41 MB

Tusked is an (upcoming) modern and customizable Mastodon client for the web

Home Page: https://tusked.app

License: GNU Affero General Public License v3.0

HTML 0.17% TypeScript 13.84% SCSS 85.96% Shell 0.03%
mastodon mastodon-client

tusked's Introduction

tusked pre-alpha

A modern and customizable Mastodon web client.

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
  • ๐ŸŒ› Nightly: nightly.tusked.app
    • Branch: main
    • New features instantly available
    • New bugs also instantly available

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]!

Features (๐Ÿ’ก = planned)

  • 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

Ideas

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 ๐Ÿคท

Why build you own client?

  • 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).

Theme

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.

Tusked isn't for me, where should I look next?

Sad to see Tusked isn't for you, at least at it's current stage.

Tech stack

Privacy policy

Tusked doesn't collect any personal data. Read more about service providers (anonymous analytics, error logging, hosting) in PRIVACY.md.

Credits

  • Tusked includes code from Phanpy licensed under MIT, consult LICENSE-PHANPY
  • Elk for inspiration and html parser functions, licensed under MIT, consult LICENSE-ELK

tusked's People

Contributors

raikasdev avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.