Dhaaga client is an unofficial, feature-rich social media client for popular social media websites.
Currently supports Meta's Threads and Mastodon platform, with a direction to support other popular Fediverse platforms.
Special shotout to The Wails Project and it's creator @leaanthony, without whose contribution in the go/js open source community, this project would not have been poossible.
- 🫶 A reimagined way of browsing the Fediverse.
- 🔍 A cross-platform, cross domain interest discovery and tracking tool.
- 🖼️ A convenient and damn pretty ✨ gallery and daily newsletter app.
- 🧑💻 An OSINT tool (Disclaimer: FOR EDUCATIONAL PURPOSE ONLY! The contributors do not assume any responsibility for the use of this tool.)
- 😇 An API friendly client, with client-side caching and optimisations to prevent spam.
- ❌ An official client recognized by any social media platform.
- ❌ An alternative to the official apps (or third party alternatives thereof), with 100% feature coverage.
- ❌ A content scraping tool.
Ensure you've Node & NPM and Go 1.18 already installed
- Install 'wails' CLI tool:
$ go install github.com/wailsapp/wails/v2/cmd/wails@latest
- Building for your system (can take some time):
$ wails build
- Moving builded binary/executable to a suitable location:
mv build/bin/Dhaaga <path> # Recommended paths indexed in $PATH env variable such as '/usr/bin/' or '~/.local/bin/'
Just copy or cut 'build/bin/Dhaaga.exe' to any suitable location for easy access.
This client is designed to be responsible and respectful and it is up to you to decide what you do with it. I don't claim any responsibility if any of your social media account is affected by how you use this client.
Support for Mastodon is here !!! 🐘 🚀
I am hard at work to figure out what would be the best way of browsing Mastadon from an universal fediverse client.
The old school column based Mastadon clients really clicked with me and I am excited to share more about the navigation framework I will be using.
- ✨ Stack based navigation with breadcrumbs
- ✨ Fully keyboard based navigation for important modules
- ✨ Scroll-To-Top for every page !
I took design references from IceCubes, because I believe it is the best compact client for Mastodon out there.
A stack based navigation workflow sets me up for an easy way forward and code reuse, when I build a mobile app for this project. 📱
Did you know that Mastadon returns the full HTML for the post content? Of which, all links will initially point outside your app.
It is quite an regular expression headache to
- separate external links
- identify tags and usernames
- and redirect them to internal resources of your app
- ✨ Browse posts from your favourite creators !
- ✨ Keyboard based navigation !
- ✨ Gallery with strip for content peek !
- ✨ Discover your interests and add users on the fly !
- ✨ Immediate mode lookup for related users !
^ For e.g. - I was able to discover this talented artist (qtonagi, reposted by risumi_illust) I never knew about. And I could immediately add them to my favourites and browse their timeline. 🤗
- ✨ Important parts of the cache for each social media platform will be available via an in-app dashboard.
- ✨ Follow without showing that you follow 😉
- ✨ Your copy of the client. Your login credentials.
- ✨ That means you own all data generated by this client.
- ✨ Full access and documentation for your sqlite store.
- ✨ I try my best to design the app to be OSINT friendly for non-techie research scholars, who I am sure can make much better use of the data than me.
- ✨ All features are opt-in. You can choose to not use the features that you don't want to use.
And many, many more to come :)
Q. Looks good to me ! Where can I ping you for more features?
A. You can join my discord to help with development and suggest features.
Q. Will you be supporting authenticated workflows?
A. Well, writing and maintaining wrappers for multiple social media APIs is extremely time-consuming. However, thanks to the incredible work done by the open source community (threads-api by @junhoyeo and co, masto.js by @neet and co), I can solely focus on building the experience 💪.
Tentative to my availability. I try to ship one major feature per version.
Some features in immediate consideration are (sorted by priority):
- ✨ [favourites page] fovuriting posts and showing liked posts in
- ✨ [search page] rendering support for shorts in gallery
- ✨ [search page] [database] rendering support for multi-image posts
- ✨ [frontend] add threads-api support, to extend the posts that can be fetched
- ✨ [worker] one click sync support, to populate all favourited feeds and delta patch the cache
- ✨ ... or join discord to suggest additional features 😇
Dhaaga (धागा)
is a common word for thread
yarn
and string
in Hindi.
In popular culture, strings are used to depict the basis of human interaction self, with nature and each other.
Also, I liked Kimi no na Wa and the name was mostly free in GitHub search results. Hence the name. 🤣
If you find this project interesting, please consider starring it (⭐).
I am a hardcore night owl bringing you interesting projects and stars in the sky 🌃 make burning the midnight oil feel worth it. 🙏
Debashish Patra @ 2023