4dfd958718 | ||
---|---|---|
.vscode | ||
data | ||
docs | ||
fixtures/events | ||
installation | ||
public | ||
scripts | ||
src | ||
static/images | ||
.gitignore | ||
.gitlab-ci.yml | ||
.tool-versions | ||
LICENSE | ||
README.md | ||
deno.json | ||
ditto-planet.png |
README.md
Ditto
Ditto is a tiny but powerful social media server for the decentralized web. With Ditto you will be able to interact across protocols and networks, and build your own social media experience.
⚠️ This software is a work in progress.
Supported protocols
- Nostr
- ActivityPub
Features
- Follow users across networks
- Post to multiple networks at once
- Log in with any Mastodon app
- Like and comment on posts
- Share posts
- Reposts
- Notifications
- Profiles
- Search
- Moderation
- Customizable
- Open source
- Self-hosted
- Decentralized
- No ads
- No tracking
- No censorship
Federation
Ditto is primarily a Nostr client, using a Nostr relay as its database. ActivityPub objects are translated into Nostr events in realtime and cached by the Ditto server. When you submit a post, it sends it to your Nostr relay and then fans it out to the ActivityPub network.
The main way to use Ditto is with a Mastodon app. Or you can connect directly to the Nostr relay with a Nostr client.
Installation
TODO
Development
- Install Deno.
- Clone this repo.
- Download Soapbox or another web-based Mastodon client of your choice.
- Put the frontend files inside the
public
directory. - Create an
.env
file. - Define
DITTO_NSEC=<value>
in your .env file. You can generate an nsec by installing nak and runningnak key generate | nak encode nsec
. - Run
deno task dev
.
License
© Alex Gleason & other Ditto contributors
Ditto is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
Ditto is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with Ditto. If not, see https://www.gnu.org/licenses/.