nulla/README.md
2025-06-25 19:45:33 +02:00

149 lines
5.9 KiB
Markdown

# Nulla
An agnostic social network following the KISS and UNIX philosophy, the main principles of which are minimalism and rationalism. It implements the ActivityPub protocol and promises maximum compatibility with all existing implementations.
## TODO
### API
#### accounts
- [] POST [/api/v1/accounts](https://docs.joinmastodon.org/methods/accounts/#create)
- [] GET [/api/v1/accounts/verify_credentials](https://docs.joinmastodon.org/methods/accounts/#verify_credentials)
- [] PATCH [/api/v1/accounts/update_credentials](https://docs.joinmastodon.org/methods/accounts/#update_credentials)
- [] GET [/api/v1/accounts/:id](https://docs.joinmastodon.org/methods/accounts/#get)
- [] GET [/api/v1/accounts](https://docs.joinmastodon.org/methods/accounts/#index)
- [] GET [/api/v1/accounts/:id/notes](https://docs.joinmastodon.org/methods/accounts/#statuses)
- [] GET [/api/v1/accounts/:id/followers](https://docs.joinmastodon.org/methods/accounts/#followers)
- [] GET [/api/v1/accounts/:id/following](https://docs.joinmastodon.org/methods/accounts/#following)
- [] GET [/api/v1/accounts/:id/featured_tags](https://docs.joinmastodon.org/methods/accounts/#featured_tags)
- [] GET [/api/v1/accounts/:id/lists](https://docs.joinmastodon.org/methods/accounts/#lists)
- [] POST [/api/v1/accounts/:id/follow](https://docs.joinmastodon.org/methods/accounts/#follow)
- [] POST [/api/v1/accounts/:id/unfollow](https://docs.joinmastodon.org/methods/accounts/#unfollow)
- [] POST [/api/v1/accounts/:id/remove_from_followers](https://docs.joinmastodon.org/methods/accounts/#remove_from_followers)
- [] POST [/api/v1/accounts/:id/block](https://docs.joinmastodon.org/methods/accounts/#block)
- [] POST [/api/v1/accounts/:id/unblock](https://docs.joinmastodon.org/methods/accounts/#unblock)
- [] POST [/api/v1/accounts/:id/mute](https://docs.joinmastodon.org/methods/accounts/#mute)
- [] POST [/api/v1/accounts/:id/unmute](https://docs.joinmastodon.org/methods/accounts/#unmute)
- [] GET [/api/v1/accounts/:id/endorsements](https://docs.joinmastodon.org/methods/accounts/#endorsements)
- [] POST [/api/v1/accounts/:id/endorse](https://docs.joinmastodon.org/methods/accounts/#endorsements)
- [] POST [/api/v1/accounts/:id/unendorse](https://docs.joinmastodon.org/methods/accounts/#unendorse)
- [] POST [/api/v1/accounts/:id/note](https://docs.joinmastodon.org/methods/accounts/#note)
- [] GET [/api/v1/accounts/relationships](https://docs.joinmastodon.org/methods/accounts/#relationships)
- [] GET [/api/v1/accounts/familiar_followers](https://docs.joinmastodon.org/methods/accounts/#familiar_followers)
- [] GET [/api/v1/accounts/search](https://docs.joinmastodon.org/methods/accounts/#search)
- [] GET [/api/v1/accounts/lookup](https://docs.joinmastodon.org/methods/accounts/#lookup)
#### announcements
- [] GET [/api/v1/announcements](https://docs.joinmastodon.org/methods/announcements/#get)
- [] POST [/api/v1/announcements/:id/dismiss](https://docs.joinmastodon.org/methods/announcements/#dismiss)
- [] PUT [/api/v1/announcements/:id/reactions/:name](https://docs.joinmastodon.org/methods/announcements/#put-reactions)
- [] DELETE [/api/v1/announcements/:id/reactions/:name](https://docs.joinmastodon.org/methods/announcements/#delete-reactions)
#### blocks
- [] GET [/api/v1/blocks](https://docs.joinmastodon.org/methods/blocks/#get)
#### bookmarks
- [] GET [/api/v1/bookmarks](https://docs.joinmastodon.org/methods/bookmarks/#get)
#### conversations
- [] GET [/api/v1/conversations](https://docs.joinmastodon.org/methods/converstions/#get)
- [] DELETE [/api/v1/conversations/:id](https://docs.joinmastodon.org/methods/converstions/#delete)
- [] POST [/api/v1/conversations/:id/read](https://docs.joinmastodon.org/methods/converstions/#read)
#### custom_emojis
- [] GET [/api/v1/custom_emojis](https://docs.joinmastodon.org/methods/custom_emojis/#get)
#### directory
- [] GET [/api/v1/directory](https://docs.joinmastodon.org/methods/directory/#get)
#### domain_blocks
- [] GET [/api/v1/domain_blocks](https://docs.joinmastodon.org/methods/domain_blocks/#get)
- [] POST [/api/v1/domain_blocks](https://docs.joinmastodon.org/methods/domain_blocks/#block)
- [] POST [/api/v1/domain_blocks](https://docs.joinmastodon.org/methods/domain_blocks/#unblock)
#### emails
- [] POST [/api/v1/emails/confirmations](https://docs.joinmastodon.org/methods/emails/#confirmation)
### Features
- [ ] Lightweight web interface
- [ ] API compatible with other ActivityPub instances
- [ ] JWT
- [ ] Groups
- [ ] Formatting: big/medium/small title, bold, italic, strikethrough, link, code, code block
- [ ] Links preview
- [ ] Timelines: Home / Local / Global / Custom
- [ ] Global search
- [ ] Bookmarks
- [ ] Profile links verification
- [ ] Links preview
- [ ] Import/Export posts
- [x] Sync user settings on the server
- [ ] Restricted direct messages
- [ ] Direct messages tab
### Server configuration
* Disk space limit per user
* Limit on posts (count/time)
### User settings
#### Profile
* Avatar
* Banner
* Name
* Bio
* Location
* Birthday
* Links
* Follow requests approval
* Toggle reacts under own posts
* Toggle view of reacts under posts
* Profile migration
* Delete account
===== Disk Usage: 100 MB (20%) =====
#### Security
* Change password
* Token
* Enable/Disable email login notifications
* Sessions
| IP | Datetime | Action |
| ----------------|---------------------|--------|
| 127.0.0.1 | 2025-01-01 00:00:00 | revoke |
| 127.127.127.127 | 2025-02-02 00:00:00 | revoke |
#### Filters
* Placeholder with rules
```
filter keyword #tag user@example.com example.com
```
* Show replies of all followed users
* Show replies of this followed users
## Contributing
### Patches via Email
You can create a patch with this command `git format-patch -M origin/main` and send it to this [email address](mailto:miraikumiko@disroot.org). Check out this [guide](https://git-send-email.io).
### Your repository
You fork this repository and make your changes in the feature branch, then I pull it.