# 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) #### endorsements - [ ] GET [/api/v1/endorsements](https://docs.joinmastodon.org/methods/endorsements/#get) #### favourites - [ ] GET [/api/v1/favourites](https://docs.joinmastodon.org/methods/favourites/#get) #### featured_tags - [ ] GET [/api/v1/featured_tags](https://docs.joinmastodon.org/methods/featured_tags/#get) - [ ] POST [/api/v1/featured_tags](https://docs.joinmastodon.org/methods/featured_tags/#feature) - [ ] GET [/api/v1/featured_tags/:id](https://docs.joinmastodon.org/methods/featured_tags/#unfeature) - [ ] GET [/api/v1/featured_tags/suggestions](https://docs.joinmastodon.org/methods/featured_tags/#suggestions) #### filters - [ ] GET [/api/v2/filters](https://docs.joinmastodon.org/methods/filters/#get) - [ ] GET [/api/v2/filters/:id](https://docs.joinmastodon.org/methods/filters/#get-one) - [ ] POST [/api/v2/filters](https://docs.joinmastodon.org/methods/filters/#create) - [ ] PUT [/api/v2/filters/:id](https://docs.joinmastodon.org/methods/filters/#update) - [ ] DELETE [/api/v2/filters/:id](https://docs.joinmastodon.org/methods/filters/#delete) - [ ] GET [/api/v2/filters/:filter_id/keywords](https://docs.joinmastodon.org/methods/filters/#keywords-get) - [ ] POST [/api/v2/filters/:filter_id/keywords](https://docs.joinmastodon.org/methods/filters/#keywords-create) - [ ] GET [/api/v2/filters/keywords/:id](https://docs.joinmastodon.org/methods/filters/#keywords-get-one) - [ ] PUT [/api/v2/filters/keywords/:id](https://docs.joinmastodon.org/methods/filters/#keywords-update) - [ ] DELETE [/api/v2/filters/keywords/:id](https://docs.joinmastodon.org/methods/filters/#keywords-delete) - [ ] GET [/api/v2/filters/:filter_id/notes](https://docs.joinmastodon.org/methods/filters/#statuses-get) - [ ] POST [/api/v2/filters/:filter_id/notes](https://docs.joinmastodon.org/methods/filters/#statuses-add) - [ ] GET [/api/v2/filters/notes/:id](https://docs.joinmastodon.org/methods/filters/#statuses-get-one) - [ ] DELETE [/api/v2/filters/notes/:id](https://docs.joinmastodon.org/methods/filters/#statuses-remove) #### follow_requests - [ ] GET [/api/v1/follow_requests](https://docs.joinmastodon.org/methods/follow_requests/#get) - [ ] POST [/api/v1/follow_requests/:account_id/authorize](https://docs.joinmastodon.org/methods/follow_requests/#accept) - [ ] POST [/api/v1/follow_requests/:account_id/reject](https://docs.joinmastodon.org/methods/follow_requests/#reject) #### followed_tags - [ ] GET [/api/v1/followed_tags](https://docs.joinmastodon.org/methods/followed_tags/#get) #### grouped_notifications - [ ] GET [/api/v2/notifications](https://docs.joinmastodon.org/methods/grouped_notifications/#get-grouped) - [ ] GET [/api/v2/notifications/:group_key](https://docs.joinmastodon.org/methods/grouped_notifications/#get-notification-group) - [ ] POST [/api/v2/notifications/:group_key/dismiss](https://docs.joinmastodon.org/methods/grouped_notifications/#dismiss-group) - [ ] GET [/api/v2/notifications/:group_key/accounts](https://docs.joinmastodon.org/methods/grouped_notifications/#get-group-accounts) - [ ] GET [/api/v2/notifications/unread_count](https://docs.joinmastodon.org/methods/grouped_notifications/#unread-group-count) #### instance - [ ] GET [/api/v2/instance](https://docs.joinmastodon.org/methods/instance/#v2) - [ ] GET [/api/v2/instance/peers](https://docs.joinmastodon.org/methods/instance/#peers) - [ ] GET [/api/v2/instance/activity](https://docs.joinmastodon.org/methods/instance/#activity) - [ ] GET [/api/v2/instance/rules](https://docs.joinmastodon.org/methods/instance/#rules) - [ ] GET [/api/v2/instance/domain_blocks](https://docs.joinmastodon.org/methods/instance/#domain_blocks) - [ ] GET [/api/v2/instance/extended_description](https://docs.joinmastodon.org/methods/instance/#extended_description) - [ ] GET [/api/v2/instance/privacy_policy](https://docs.joinmastodon.org/methods/instance/#privacy_policy) - [ ] GET [/api/v2/instance/terms_of_service](https://docs.joinmastodon.org/methods/instance/#terms_of_service) - [ ] GET [/api/v2/instance/terms_of_service/:date](https://docs.joinmastodon.org/methods/instance/#terms_of_service_date) - [ ] GET [/api/v2/instance/translation_languages](https://docs.joinmastodon.org/methods/instance/#translation_languages) #### lists - [ ] GET [/api/v1/lists](https://docs.joinmastodon.org/methods/lists/#get) - [ ] GET [/api/v1/lists/:id](https://docs.joinmastodon.org/methods/lists/#get-one) - [ ] POST [/api/v1/lists](https://docs.joinmastodon.org/methods/lists/#create) - [ ] PUT [/api/v1/lists/:id](https://docs.joinmastodon.org/methods/lists/#update) - [ ] DELETE [/api/v1/lists/:id](https://docs.joinmastodon.org/methods/lists/#delete) - [ ] GET [/api/v1/lists/:id/accounts](https://docs.joinmastodon.org/methods/lists/#accounts) - [ ] POST [/api/v1/lists/:id/accounts](https://docs.joinmastodon.org/methods/lists/#accounts-add) - [ ] DELETE [/api/v1/lists/:id/accounts](https://docs.joinmastodon.org/methods/lists/#accounts-remove) #### markers - [ ] GET [/api/v1/markers](https://docs.joinmastodon.org/methods/markers/#get) - [ ] POST [/api/v1/markers](https://docs.joinmastodon.org/methods/lists/#create) #### media - [ ] POST [/api/v2/media](https://docs.joinmastodon.org/methods/media/#v2) - [ ] GET [/api/v1/media/:id](https://docs.joinmastodon.org/methods/media/#get) - [ ] DELETE [/api/v1/media/:id](https://docs.joinmastodon.org/methods/media/#delete) - [ ] PUT [/api/v1/media/:id](https://docs.joinmastodon.org/methods/media/#update) #### mutes - [ ] GET [/api/v1/mutes](https://docs.joinmastodon.org/methods/mutes/#get) #### notifications - [ ] GET [/api/v1/notifications](https://docs.joinmastodon.org/methods/notifications/#get) - [ ] GET [/api/v1/notifications/:id](https://docs.joinmastodon.org/methods/notifications/#get-one) - [ ] POST [/api/v1/notifications/clear](https://docs.joinmastodon.org/methods/notifications/#clear) - [ ] POST [/api/v1/notifications/:id/dismiss](https://docs.joinmastodon.org/methods/notifications/#dismiss) - [ ] GET [/api/v1/notifications/unread_count](https://docs.joinmastodon.org/methods/notifications/#unread-count) - [ ] GET [/api/v2/notifications/policy](https://docs.joinmastodon.org/methods/notifications/#policy) - [ ] PATCH [/api/v2/notifications/policy](https://docs.joinmastodon.org/methods/notifications/#get-policy) - [ ] GET [/api/v1/notifications/requests](https://docs.joinmastodon.org/methods/notifications/#get-requests) - [ ] GET [/api/v1/notifications/requests/:id](https://docs.joinmastodon.org/methods/notifications/#get-one-request) - [ ] POST [/api/v1/notifications/requests/:id/accept](https://docs.joinmastodon.org/methods/notifications/#accept-request) - [ ] POST [/api/v1/notifications/requests/:id/dismiss](https://docs.joinmastodon.org/methods/notifications/#dismiss-request) - [ ] POST [/api/v1/notifications/requests/accept](https://docs.joinmastodon.org/methods/notifications/#accept-multiple-requests) - [ ] POST [/api/v1/notifications/requests/dismiss](https://docs.joinmastodon.org/methods/notifications/#dismiss-multiple-requests) - [ ] GET [/api/v1/notifications/requests/merged](https://docs.joinmastodon.org/methods/notifications/#requests-merged) #### oauth - [ ] GET [/oauth/authorize](https://docs.joinmastodon.org/methods/oauth/#authorize) - [ ] POST [/oauth/token](https://docs.joinmastodon.org/methods/oauth/#token) - [ ] POST [/oauth/revoke](https://docs.joinmastodon.org/methods/oauth/#revoke) - [ ] GET [/oauth/userinfo](https://docs.joinmastodon.org/methods/oauth/#userinfo) - [ ] GET [/.well-known/oauth-authorization-server](https://docs.joinmastodon.org/methods/oauth/#authorization-server-metadata) #### oembed - [ ] GET [/api/oembed](https://docs.joinmastodon.org/methods/oembed/#get) #### polls - [ ] GET [/api/v1/polls/:id](https://docs.joinmastodon.org/methods/polls/#get) - [ ] POST [/api/v1/polls/:id/votes](https://docs.joinmastodon.org/methods/polls/#vote) #### preferences - [ ] GET [/api/v1/preferences](https://docs.joinmastodon.org/methods/preferences/#get) #### profile - [ ] DELETE [/api/v1/profile/avatar](https://docs.joinmastodon.org/methods/profile/#delete-profile-avatar) - [ ] DELETE [/api/v1/profile/header](https://docs.joinmastodon.org/methods/profile/#delete-profile-header) #### push - [ ] POST [/api/v1/push/subscription](https://docs.joinmastodon.org/methods/push/#create) - [ ] GET [/api/v1/push/subscription](https://docs.joinmastodon.org/methods/push/#get) - [ ] PUT [/api/v1/push/subscription](https://docs.joinmastodon.org/methods/push/#update) - [ ] DELETE [/api/v1/push/subscription](https://docs.joinmastodon.org/methods/push/#delete) #### reports - [ ] POST [/api/v1/reports](https://docs.joinmastodon.org/methods/reports/#post) #### search - [ ] GET [/api/v2/search](https://docs.joinmastodon.org/methods/search/#v2) #### notes - [ ] POST [/api/v1/notes](https://docs.joinmastodon.org/methods/statuses/#create) - [ ] GET [/api/v1/notes/:id](https://docs.joinmastodon.org/methods/statuses/#get) - [ ] GET [/api/v1/notes](https://docs.joinmastodon.org/methods/statuses/#index) - [ ] DELETE [/api/v1/notes/:id](https://docs.joinmastodon.org/methods/statuses/#delete) - [ ] GET [/api/v1/notes/:id/context](https://docs.joinmastodon.org/methods/statuses/#context) - [ ] POST [/api/v1/notes/:id/translate](https://docs.joinmastodon.org/methods/statuses/#translate) - [ ] GET [/api/v1/notes/:id/reblogged_by](https://docs.joinmastodon.org/methods/statuses/#reblogged_by) - [ ] GET [/api/v1/notes/:id/favourited_by](https://docs.joinmastodon.org/methods/statuses/#favourited_by) - [ ] POST [/api/v1/notes/:id/favourite](https://docs.joinmastodon.org/methods/statuses/#favourite) - [ ] POST [/api/v1/notes/:id/unfavourite](https://docs.joinmastodon.org/methods/statuses/#unfavourite) - [ ] POST [/api/v1/notes/:id/reblog](https://docs.joinmastodon.org/methods/statuses/#boost) - [ ] POST [/api/v1/notes/:id/unreblog](https://docs.joinmastodon.org/methods/statuses/#unreblog) - [ ] POST [/api/v1/notes/:id/bookmark](https://docs.joinmastodon.org/methods/statuses/#bookmark) - [ ] POST [/api/v1/notes/:id/unbookmark](https://docs.joinmastodon.org/methods/statuses/#unbookmark) - [ ] POST [/api/v1/notes/:id/mute](https://docs.joinmastodon.org/methods/statuses/#mute) - [ ] POST [/api/v1/notes/:id/unmute](https://docs.joinmastodon.org/methods/statuses/#unmute) - [ ] POST [/api/v1/notes/:id/pin](https://docs.joinmastodon.org/methods/statuses/#pin) - [ ] POST [/api/v1/notes/:id/unpin](https://docs.joinmastodon.org/methods/statuses/#unpin) - [ ] PUT [/api/v1/notes/:id](https://docs.joinmastodon.org/methods/statuses/#edit) - [ ] GET [/api/v1/notes/:id/history](https://docs.joinmastodon.org/methods/statuses/#history) - [ ] GET [/api/v1/notes/:id/source](https://docs.joinmastodon.org/methods/statuses/#source) #### streaming - [ ] GET [/api/v1/streaming/health](https://docs.joinmastodon.org/methods/streaming/#health) - [ ] GET [/api/v1/streaming/user](https://docs.joinmastodon.org/methods/streaming/#user) - [ ] GET [/api/v1/streaming/user/notification](https://docs.joinmastodon.org/methods/streaming/#notification) - [ ] GET [/api/v1/streaming/public](https://docs.joinmastodon.org/methods/streaming/#public) - [ ] GET [/api/v1/streaming/public/local](https://docs.joinmastodon.org/methods/streaming/#public-local) - [ ] GET [/api/v1/streaming/public/remote](https://docs.joinmastodon.org/methods/streaming/#public-remote) - [ ] GET [/api/v1/streaming/hashtag](https://docs.joinmastodon.org/methods/streaming/#hashtag) - [ ] GET [/api/v1/streaming/hashtag/local](https://docs.joinmastodon.org/methods/streaming/#hashtag-local) - [ ] GET [/api/v1/streaming/list](https://docs.joinmastodon.org/methods/streaming/#list) - [ ] GET [/api/v1/streaming/direct](https://docs.joinmastodon.org/methods/streaming/#direct) - [ ] WSS [/api/v1/streaming](https://docs.joinmastodon.org/methods/streaming/#websocket) #### suggestions - [ ] GET [/api/v2/suggestions](https://docs.joinmastodon.org/methods/suggestions/#v2) - [ ] DELETE [/api/v1/suggestions/:account_id](https://docs.joinmastodon.org/methods/suggestions/#remove) #### tags - [ ] GET [/api/v1/tags/:name](https://docs.joinmastodon.org/methods/tags/#get) - [ ] POST [/api/v1/tags/:name/follow](https://docs.joinmastodon.org/methods/tags/#follow) - [ ] POST [/api/v1/tags/:name/unfollow](https://docs.joinmastodon.org/methods/tags/#unfollow) - [ ] POST [/api/v1/tags/:id/feature](https://docs.joinmastodon.org/methods/tags/#feature) - [ ] POST [/api/v1/tags/:id/unfeature](https://docs.joinmastodon.org/methods/tags/#unfeature) #### timelines - [ ] GET [/api/v1/timelines/public](https://docs.joinmastodon.org/methods/timelines/#public) - [ ] GET [/api/v1/timelines/tag/:hashtag](https://docs.joinmastodon.org/methods/timelines/#tag) - [ ] GET [/api/v1/timelines/home](https://docs.joinmastodon.org/methods/timelines/#home) - [ ] GET [/api/v1/timelines/link?url=:url](https://docs.joinmastodon.org/methods/timelines/#link) - [ ] GET [/api/v1/timelines/list/:list_id](https://docs.joinmastodon.org/methods/timelines/#list) #### trends - [ ] GET [/api/v1/trends/tags](https://docs.joinmastodon.org/methods/trends/#tags) - [ ] GET [/api/v1/trends/notes](https://docs.joinmastodon.org/methods/trends/#statuses) - [ ] GET [/api/v1/trends/links](https://docs.joinmastodon.org/methods/trends/#links) ### 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 ## 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.