Code Monkey home page Code Monkey logo

plume-org / plume Goto Github PK

View Code? Open in Web Editor NEW
2.1K 53.0 126.0 15.24 MB

Federated blogging application, thanks to ActivityPub (now on https://git.joinplu.me/ — this is just a mirror)

Home Page: https://joinplu.me

License: GNU Affero General Public License v3.0

PLpgSQL 0.12% Rust 84.80% CSS 2.18% Dockerfile 0.24% Shell 0.54% HTML 8.69% Python 0.11% SCSS 3.11% Nix 0.21%
activitypub blog blog-engine federation rust diesel rocket activitystreams decentralization

plume's People

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  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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

plume's Issues

Yunohost package

It has been requested many times, and it would be great to have one.

Instance about page

What we should find on it:

  • short description (that may also appear on the homepage)
  • longer description
  • a link to the admin's profile
  • some statistics (number of accounts, posts, connected instances)
  • why not the version number

Blog naming issues

Blog can be created multiple time, by one or multiple persons.
Also even if blog name is slighlty different, one can create a blog with the same in-url name (by using certain chars such as dots or slashes in blog name).
Using the same set of chars it is possible to create a blog which have no in-url name and is thus not accessible (but which is still shown in the dashboard, with an invalid link)

Redirecting to url with trailing slash strip it

When redirecting to a url using Redirect::to, if url have a trailing slash, it is striped away. This happen after creating/liking/resharing an article (and maybe somewhere else), and it break links on the page as we use relative links

Invalid link

On page /@/ , the link to followers is pointing to /@/followers instead of /@//followers

Notifications

We should receive notifications when:

  • Someone commented one of our posts
  • Someone liked one of our posts
  • Someone reshared one of our posts
  • Someone started following us

Share on other social medias

I'm thinking of Facebook, Twitter, Mastodon and Diaspora (and by email?) at least, but there could be others to be included.

Comments

It should use the Note object for federation.

Reshares

  • Add a model for reshares
  • Add an endpoint to reshare posts
  • Add a button to this endpoint
  • Handle reshares from other instances
  • Send a notification when someone reshares your post
  • Display rehsares on the profile

Theming

Both at blog and instance level ideally.

I don't know if we should just ask for some CSS, or allow to customize some properties with a form. The former solution would allow more, but it also mean we should remove all url() to avoid any kind of tracking, and that themes could break if we change the HTML markup. The later would let less possibilities, but would also probably mean more coherence and safety (this is what Pleroma does).

i18n support

Just like in title, it might be challenging, because I haven’t seen any good i18n crate for web, but it’s definitely possible. My Rust knowledge is not enough to start working on it. I will translate the project to Polish when it’s done.

Markdown

We should allow Markdown to be used when writing posts (and maybe comments?). In the future, it will probably be replaced by a custom format allowing us to style things as we want (for instance positioning images differently), but yet Markdown would allow formatting without having to write HTML directly.

Static Posts?

It would be nice if the server software didn't have to make a DB call when someone went to a post's page, but instead rendered as much as possible to static HTML. Having the advantages of static-site generators like Jekyll and friends with the nice-ness of web publishing and federation would be… potentially awesome.

New Post and My Blog navigation links

The navigation system could really use links for "my blog" and "new post" or something similar. This would really make testing and experimenting with Plume easier!

Tag articles

We should add the possibility to tag an article

Support mentions

  • Parse mentions in Markdown
  • Replace them to a link to the corresponding profile
  • Fetch this profile if needed
  • Add it to the corresponding ActivityPub property
  • Send a notification to the mentioned user

Dashboard

Add a page to manage your blogs, and see recent activity on them.

REST API

  • Posts
    • Details
    • List
    • Create
    • Update
    • Delete
  • Comments
    • Details
    • List
    • Create
    • Update
    • Delete
  • Users
    • Details
    • List
    • Create
    • Update
    • Delete
  • Likes
    • Details
    • List
    • Create
    • Update
    • Delete
  • Boost
    • Details
    • List
    • Create
    • Update
    • Delete

Please do not rely on a nightly build of Rust.

Is it really necessary to rely on a nightly build of Rust? I'm afraid this will put many people off.
Please consider making it work with the latest released version instead. Thank you!

Avoid panics

I think we are unwraping too often, when we could show actual error pages, with a description of the message.

CSRF and XSS mitigation

from what I see, I think there is currently no mitigation against CSRF (ability to post from another website with a specialy crafted link, without secret cookie knoledge), nor against XSS (run js from untrusted input, maybe even from other instances sending comments)

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.