Giter Site home page Giter Site logo

alexwennerberg / gourami Goto Github PK

View Code? Open in Web Editor NEW
94.0 94.0 5.0 439 KB

A decentralized social network for the small web, implemented in ActivityPub

License: GNU Affero General Public License v3.0

TSQL 2.54% Rust 83.38% CSS 2.73% HTML 11.27% Shell 0.08%

gourami's Introduction

gourami's People

Contributors

alexwennerberg avatar dependabot-preview[bot] avatar stchris avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

gourami's Issues

Add UTF-8 name validation

I want to be a little more flexible than a lot of services -- allowing utf-8 usernames instead of just ascii. I should come up with a reasonable subset of utf 8 for usernames

Create invite system

If user is > 1 day old, they have the ability to invite people, rate limited in some way (once a day?)

Follow the invite tree as in https://lobste.rs/

This can be enabled / disabled

Extend ActivityPub vocabulary

Right now, the only actions supported are Follow, Accept (follow) and Create Note.

At a bare minimum we also want to support deletes and Undo Follows.

Replace notifications with "mentions & replies"

Notifications are a mostly useless abstraction and the notification tab just links to posts. I don't use it much.

Unread mentions/replies should be tracked by date instead of a bit flag as they are right now

Show validation errors on registration form

When registering a new account on a local development instance the registration kept failing for me. Eventually I poked through the code and found that a password complexity check is performed and my test password of password was unsurprisingly too weak.

The code in question is as follows from do_register in lib.rs:

    if form.validate().is_err() {
        // TODO catch better
        return do_login(LoginForm {
            username: form.username,
            password: form.password,
        });
    }

I note the TODO is already there but figured it was worth extracting it to an issue for tracking.

Update screenshot

If I'm feeling really crazy I can generate the image via a browser emulator and github actions

Add remote followers / following with ActivityPub federation

I think my design has been somewhat resistant to how the fediverse works in practice, and I'm thinking about what I am looking for in an ActivityPub server, and being able to communicate with mastodon / the larger fediverse is something I want to aim towards.

Docs: suggest creating an empty key

While setting up locally (with the sample_env you provide) it isn't possible to create an account if the SIGNATURE_PUBKEY_PEM file isn't there:

thread 'tokio-runtime-worker' panicked at 'called `Result::unwrap()` on an `Err` value: Os { code: 2, kind: NotFound, message: "No such file or directory" }', src/ap.rs:45:21

Since I don't care about federation I side-stepped this with mkdir local && touch local/public.pem. You might want to mention this in the docs (or handle the error differently).

Add email interface

Users should be able to make posts and receive replies to posts via email.

I think the easiest way to do this is through an SMTP relay instead of setting up an email server.

Docs: suggest diesel_cli feature=sqlite

While following the installation steps I noticed that diesel_cli fails to install if you don't have dev headers for all the db libraries it supports (in my case: mysql). Maybe for the time being it would make sense to suggest installing it like this:

$ cargo install diesel_cli --no-default-features --features "sqlite"

Add RSS feeds

The user page, neighborhood page, and local timeline should all have RSS feeds.

Revert some of the changes wrt public neighborhoods

I think that I'm losing out on what makes gourami special with #26 and #22
I don't want to just make a regular activitypub server in rust -- there are many of those
I want to attempt a different style of federation and decentralization

This will probably fail / make this service less popular, but it's more aligned with what I want to build, I think.

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.