Note
This document is not complete as I haven't gathered all my thoughts, and the software is in early development, meaning details are likely to be added or changed
Sapling is an early development experiment in building social apps
for small groups. Intended to be self-hosted for a group of people that all
share a common connection point, whether that be a family, friend group, a
business, or a town.
For a given deployment of sapling, there isn't a tradition concept of relationships between users like followers or friends. Your users should all have a common interest so everyone follows everyone by default on a "Community" timeline.
There is a possibility of adding ActivityPub federation to allow members of separate instances of Sapling to follow each other in a "Global" timeline
I host a Mastodon instance for my family, and there are some pain points that I hope Sapling will be able to address.
Aside from everyone following everyone by default being much easier for my use case, the microblogging format doesn't really work well for smaller groups. Having replies in the timeline at the same level of original posts is not a great experience. On a small social platform you want your timeline to be full of the meat, not the potatos.
Mastodon has had #861 Add a "Local timeline" privacy option open since April 2017. Mastodon's creator is strongly opposed to the feature as in his words it has a "Centeralizing Force" They are in favor of using the upcoming support of groups, which can be public or private, to support this feature without hard coding it in the software.
In my mind, yeah fair point... but that's fine. My instance is for my family, of course our discussions should be centralized. In other cases it could be a school, a company, or just an instance owner telling their users (and not the whole world) that the site will be down for maintenance.
In my mind, building software that is targeted at admins running smaller instances will have a greater effect in reducing centralization.
Section Incomplete
A lot of these are far off, if ever, ideas. No guarantee they will be implemented. Currently all imports are local instance only unless specified otherwise.
- Create posts
- Attach pictures posts
- Attach videos to posts
- Reply to posts
- Favorite posts
- Community timeline of posts from all users in reverse chronological order
- Mastodon Importer
- Import users
- Import posts
- Import accounts
- username
- display name
- note
- avatar
- Header picture
- Import favorites
- Import polls
- Notifications
- Progressive web app
- Create Events
- RSVP to events
- Polls
- Wishlists
- Federated "Global" Timeline
- Follow remote users
- Multitenancy
- Cross post to other platforms
- In memory timeline cache
- Ruby on Rails and hotwire for web-application stack, and perhaps one day native apps
- Bulma for styling
- RSpec and Capybara for the test suite
- Ruby 3.3.6
- vips for processing images