From 6b92afc826f0e3068ca4170f1f4b0d57f7eebb69 Mon Sep 17 00:00:00 2001 From: lostinlight Date: Sat, 25 Apr 2020 01:20:08 +0300 Subject: [PATCH] Add Tools page, remove tools from Misc --- CONTRIBUTING.md | 14 +- source/_data/miscellaneous.json | 530 +----------------- source/_data/misskey.json | 6 +- source/_data/tools.json | 527 +++++++++++++++++ source/en/tools/index.md | 7 + themes/starter/layout/layout.ejs | 2 +- themes/starter/layout/miscellaneous.ejs | 25 +- themes/starter/layout/tools.ejs | 112 ++++ .../source/assets/scss/modules/_misc.scss | 15 +- 9 files changed, 684 insertions(+), 554 deletions(-) create mode 100644 source/_data/tools.json create mode 100644 source/en/tools/index.md create mode 100644 themes/starter/layout/tools.ejs diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index a4eb9d9..155a5f9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -27,9 +27,10 @@ Please, choose no more than **2 categories** (array of strings) for the software * `Links` (link sharing) * `Ev-Meet` (events, meetups, calendars) * `Files` (file hosting software) -* `Coop` (cooperatives, shared management) * `Econ` (economic activities) * `DataForge` (dataset / corpora exchange) +* `Reviews` (networks whose main purpose is reviewing stuff) +* `Games` (gaming servers and apps) A project may have a logo / image (45x45px), placed in `./source/img/misc` folder. @@ -37,10 +38,15 @@ A project may have a logo / image (45x45px), placed in `./source/img/misc` folde Fork this repository. Add your project data to `./source/_data/tools.json` file. #### Tools categories (WIP, may change in the future) -* `DevTools` (developer tools: libraries and such) -* `Plugins` (plugins) +* `Libs` (frameworks, libraries, reference implementations in particular code language) +* `Specs` (Fediverse protocol specifications) +* `Tools` (for developer and geeky tools, like pastebins, git systems, pads, etc) +* `Utils` (daemons, bots, resharers, and other such services for Fediverse) * `Relays` (Fediverse relays) -* `DataForge` (dataset / corpora exchange) +* `Bridges` (bridging other stuff to fediverse networks) +* `Tests` (any kind of test tools) +* `Plugins` (CMS plugins, apps to be installed inside other systems connecting to Fediverse) +* `Other` (everything that doesn't quite fit into the above categories) ### [Submitting news](#submitting-news) diff --git a/source/_data/miscellaneous.json b/source/_data/miscellaneous.json index 2111cbb..766fac6 100644 --- a/source/_data/miscellaneous.json +++ b/source/_data/miscellaneous.json @@ -37,24 +37,6 @@ "OStatusClass": false, "categories": ["Blog-Pub"] }, - { - "title": "Guppe", - "source": "https://github.com/wmurphyrd/guppe", - "protocols": "ActivityPub", - "site": "https://gup.pe", - "logo": "/img/misc/guppe.png", - "servers": "", - "description": "Social groups for Mastodon and other ActivityPub networks.", - "codeLanguage": "Javascript", - "techStack": "Node.js, Express, Vue", - "license": "AGPL-3.0", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["SN-ma"] - }, { "title": "dolphin", "source": "https://github.com/syuilo/dolphin", @@ -233,25 +215,7 @@ "zotClass": false, "diasporaClass": false, "OStatusClass": false, - "categories": ["Coop"] - }, - { - "title": "Nextcloud-Social", - "source": "https://github.com/nextcloud/social", - "protocols": "ActivityPub", - "site": "https://apps.nextcloud.com/apps/social", - "logo": "/img/misc/nextcloud.png", - "servers": "", - "description": "Social networking app for NextCloud users.", - "codeLanguage": "PHP", - "techStack": "Node.js, Vue, SCSS", - "license": "AGPL-3.0", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["Files"] + "categories": ["SN-mi", "SN-ma"] }, { "title": "Lemmy", @@ -539,7 +503,7 @@ "zotClass": false, "diasporaClass": false, "OStatusClass": false, - "categories": ["DevTools", "SN-mi"] + "categories": ["SN-mi"] }, { "title": "MoonTree", @@ -665,7 +629,7 @@ "zotClass": false, "diasporaClass": false, "OStatusClass": false, - "categories": ["Blog-Pub"] + "categories": ["Reviews"] }, { "title": "SkoHub", @@ -737,493 +701,7 @@ "zotClass": false, "diasporaClass": false, "OStatusClass": false, - "categories": ["SN-mi"] - }, - { - "title": "Vervis", - "source": "https://dev.angeley.es/s/fr33domlover/r/vervis/s", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "A project hosting and management application. Reference implementation of ForgeFed.", - "codeLanguage": "Haskell", - "techStack": "", - "license": "AGPL-3.0 / CC0", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "ForgeFed", - "source": "https://notabug.org/peers/forgefed", - "protocols": "ActivityPub", - "site": "https://forgefed.peers.community", - "logo": "/img/misc/forgefed.svg", - "servers": "", - "description": "Upcoming federation protocol for enabling interoperability between version control services.", - "codeLanguage": "", - "techStack": "", - "license": "CC-1.0", - "FediAccount": "https://floss.social/@forgefed", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "Nautilus", - "source": "https://github.com/aaronpk/Nautilus", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "A standalone service to deliver posts from your own website to ActivityPub followers.", - "codeLanguage": "PHP", - "techStack": "Laravel, Vue", - "license": "Apache-2.0", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "Pherephone", - "source": "https://github.com/writeas/pherephone", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "An ActivityPub server that reblogs all the statuses of certain actors. You set it up to follow a few accounts and it Announces everything they post.", - "codeLanguage": "Go", - "techStack": "", - "license": "AGPL-3.0", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "Go-Fed Activity", - "source": "https://github.com/go-fed/activity", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "ActivityStreams & ActivityPub in golang.", - "codeLanguage": "Go", - "techStack": "", - "license": "BSD-3-clause", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "BridgyFed", - "source": "https://github.com/snarfed/bridgy-fed", - "protocols": "ActivityPub, OStatus", - "site": "https://fed.brid.gy", - "description": "Bridges the IndieWeb to federated social networks: ActivityPub, OStatus, etc.", - "codeLanguage": "Python", - "techStack": "", - "license": "CC-0", - "FediAccount": "", - "logo": "", - "servers": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": true, - "categories": ["DevTools"] - }, - { - "title": "Federation", - "source": "https://git.feneas.org/jaywink/federation", - "protocols": "ActivityPub, diaspora", - "site": "https://federation.readthedocs.io", - "logo": "", - "servers": "", - "description": "Python library to abstract social web federation protocols like ActivityPub and diaspora.", - "codeLanguage": "Python", - "techStack": "Django", - "license": "BSD-3-clause", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": true, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "Little Boxes", - "source": "https://github.com/tsileo/little-boxes", - "protocols": "ActivityPub", - "site": "https://little-boxes.readthedocs.io", - "logo": "", - "servers": "", - "description": "Tiny ActivityPub framework written in Python, both database and server agnostic.", - "codeLanguage": "Python", - "techStack": "", - "license": "ISC", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "Python ActivityPub", - "source": "https://github.com/dsblank/activitypub", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "A general Python ActivityPub library.", - "codeLanguage": "Python", - "techStack": "", - "license": "MPL-2.0", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "ActivityPub PHP", - "source": "https://github.com/pterotype-project/activitypub-php", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "A PHP implementation of the ActivityPub protocol.", - "codeLanguage": "PHP", - "techStack": "", - "license": "MIT", - "FediAccount": "https://mastodon.technology/@jdormit", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "Express ActivityPub", - "source": "https://github.com/dariusk/express-activitypub", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "A simple reference implementation of an ActivityPub server using Express.js.", - "codeLanguage": "Javascript", - "techStack": "Express", - "license": "MIT", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "ActivityPub Express", - "source": "https://github.com/wmurphyrd/activitypub-express", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "Modular ActivityPub implementation as Express.js middleware to easily add decentralization and federation to Node apps.", - "codeLanguage": "Javascript", - "techStack": "Express", - "license": "-", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "distbin", - "source": "https://github.com/gobengo/distbin", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "https://distbin.com", - "description": "Post bin with distributed social features.", - "codeLanguage": "Typescript", - "techStack": "", - "license": "Apache-2.0", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "WordPress-ActivityPub", - "source": "https://github.com/pfefferle/wordpress-activitypub", - "protocols": "ActivityPub", - "site": "https://wordpress.org/plugins/activitypub", - "logo": "", - "servers": "", - "description": "ActivityPub for WordPress.", - "codeLanguage": "PHP", - "techStack": "", - "license": "MIT", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["Plugins"] - }, - { - "title": "WordPress-OStatus", - "source": "https://github.com/pfefferle/wordpress-ostatus", - "protocols": "OStatus", - "site": "https://wordpress.org/plugins/ostatus-for-wordpress", - "logo": "", - "servers": "", - "description": "An OStatus plugin for WordPress.", - "codeLanguage": "PHP", - "techStack": "", - "license": "MIT", - "FediAccount": "", - "apClass": false, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": true, - "categories": ["Plugins"] - }, - { - "title": "LitePub", - "source": "https://github.com/litepub/litepub", - "protocols": "ActivityPub", - "site": "https://litepub.social/litepub", - "logo": "", - "servers": "", - "description": "Litepub protocol specification.", - "codeLanguage": "", - "techStack": "", - "license": "-", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "p3k", - "source": "https://github.com/aaronpk/p3k", - "protocols": "ActivityPub", - "site": "https://indieweb.org/p3k", - "logo": "", - "servers": "https://the-federation.info/p3k", - "description": "Components of the sites aaronparecki.com and indiewebcat.com.", - "codeLanguage": "PHP", - "techStack": "", - "license": "MIT", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "Activity relay", - "source": "https://git.pleroma.social/pleroma/relay", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "https://fediverse.network/activityrelay", - "description": "Generic LitePub relay, works with all LitePub consumers and with Mastodon.", - "codeLanguage": "Python", - "techStack": "", - "license": "AGPL-3.0", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["Relays"] - }, - { - "title": "Pub relay", - "source": "https://source.joinmastodon.org/mastodon/pub-relay", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "A service-type ActivityPub actor that will re-broadcast anything sent to it to anyone who subscribes to it.", - "codeLanguage": "Crystal", - "techStack": "", - "license": "AGPL-3.0", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["Relays"] - }, - { - "title": "Social relay", - "source": "https://github.com/jaywink/social-relay", - "protocols": "diaspora", - "site": "", - "logo": "", - "servers": "https://the-federation.info/social-relay", - "description": "Public post relay for the diaspora* federated social network protocol.", - "codeLanguage": "Python", - "techStack": "", - "license": "AGPL-3.0", - "FediAccount": "", - "apClass": false, - "zotClass": false, - "diasporaClass": true, - "OStatusClass": false, - "categories": ["Relays"] - }, - { - "title": "Seattle relay", - "source": "https://gitlab.com/jankysolutions/social.seattle.wa.us/relay", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "https://fediverse.network/social.seattle.wa.us-relay", - "description": "Something like the Pleroma relay but with crazy things like workers.", - "codeLanguage": "Python", - "techStack": "", - "license": "-", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["Relays"] - }, - { - "title": "Pterotype", - "source": "https://github.com/pterotype-project/pterotype", - "protocols": "ActivityPub", - "site": "", - "logo": "/img/misc/pterotype.png", - "servers": "", - "description": "WordPress plugin. Pterotype connects your blog to the Fediverse by giving it an ActivityPub feed.", - "codeLanguage": "PHP", - "techStack": "", - "license": "MIT", - "FediAccount": "https://mastodon.technology/@jdormit", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["Plugins"] - }, - { - "title": "feed2toot", - "source": "https://gitlab.com/chaica/feed2toot", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "Feed2toot automatically parses RSS feeds, identifies new posts and posts them on the Mastodon social network.", - "codeLanguage": "Python", - "techStack": "", - "license": "MIT", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "RSS-to-ActivityPub", - "source": "https://github.com/dariusk/rss-to-activitypub", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "RSS to ActivityPub converter.", - "codeLanguage": "Javascript", - "techStack": "Node.js", - "license": "MIT", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "Activity-PHP", - "source": "https://github.com/landrok/activitypub", - "protocols": "ActivityPub", - "site": "https://landrok.github.io/activitypub", - "logo": "", - "servers": "", - "description": "PHP implementation of ActivityPub protocol based on the ActivityStreams 2.0 data format.", - "codeLanguage": "PHP", - "techStack": "", - "license": "MIT", - "FediAccount": "https://cybre.space/@landrok", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "Astreams", - "source": "https://github.com/MatejLach/astreams", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "A hand-crafted implementation of the Activity Streams 2.0 specification in Go.", - "codeLanguage": "Go", - "techStack": "", - "license": "AGPL-3.0", - "FediAccount": "https://social.matej-lach.me/@MatejLach", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] - }, - { - "title": "ActivityPub-mock", - "source": "https://gitlab.com/evanp/activitypub-mock", - "protocols": "ActivityPub", - "site": "", - "logo": "", - "servers": "", - "description": "A mock ActivityPub server to use in testing code.", - "codeLanguage": "Javascript", - "techStack": "", - "license": "Apache-2.0", - "FediAccount": "", - "apClass": true, - "zotClass": false, - "diasporaClass": false, - "OStatusClass": false, - "categories": ["DevTools"] + "categories": ["Games"] }, { "title": "diaspora*", diff --git a/source/_data/misskey.json b/source/_data/misskey.json index 37a3ec9..f9274c3 100644 --- a/source/_data/misskey.json +++ b/source/_data/misskey.json @@ -6,7 +6,7 @@ "type": "microblogging", "logoClr": "fb4e4e", "created": "2014", - "official": "https://joinmisskey.github.io", + "official": "https://join.misskey.page/en", "license": "AGPL-3.0", "repo": "https://github.com/syuilo/misskey", "language": "(Node)JS", @@ -17,10 +17,10 @@ "wiki": "", "servers": [ - {"num": "1", "url": "https://joinmisskey.github.io/en/wiki/instances"}, + {"num": "1", "url": "https://join.misskey.page/en/wiki/instances"}, {"num": "2", "url": "https://fediverse.network/misskey"} ], - "mobile": "https://joinmisskey.github.io/en/wiki/apps", + "mobile": "https://join.misskey.page/en/wiki/apps/clients", "devTutorial": "https://github.com/syuilo/misskey/blob/master/docs/setup.en.md", "mascot": [{"item": "藍 (Ai)", "imgNum": "1"}], "dwellers": "Miskist", diff --git a/source/_data/tools.json b/source/_data/tools.json new file mode 100644 index 0000000..bbf09c8 --- /dev/null +++ b/source/_data/tools.json @@ -0,0 +1,527 @@ +{ + "apps": + [ + { + "title": "Guppe", + "source": "https://github.com/wmurphyrd/guppe", + "protocols": "ActivityPub", + "site": "https://gup.pe", + "logo": "/img/misc/guppe.png", + "servers": "", + "description": "Social groups for Mastodon and other ActivityPub networks.", + "codeLanguage": "Javascript", + "techStack": "Node.js, Express, Vue", + "license": "AGPL-3.0", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Utils"] + }, + { + "title": "Nextcloud-Social", + "source": "https://github.com/nextcloud/social", + "protocols": "ActivityPub", + "site": "https://apps.nextcloud.com/apps/social", + "logo": "/img/misc/nextcloud.png", + "servers": "", + "description": "Social networking app for NextCloud users.", + "codeLanguage": "PHP", + "techStack": "Node.js, Vue, SCSS", + "license": "AGPL-3.0", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Plugins"] + }, + { + "title": "Vervis", + "source": "https://dev.angeley.es/s/fr33domlover/r/vervis/s", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "A project hosting and management application. Implementation of ForgeFed.", + "codeLanguage": "Haskell", + "techStack": "", + "license": "AGPL-3.0 / CC0", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Tools"] + }, + { + "title": "ForgeFed", + "source": "https://notabug.org/peers/forgefed", + "protocols": "ActivityPub", + "site": "https://forgefed.peers.community", + "logo": "/img/misc/forgefed.svg", + "servers": "", + "description": "Upcoming federation protocol for enabling interoperability between version control services.", + "codeLanguage": "", + "techStack": "", + "license": "CC-1.0", + "FediAccount": "https://floss.social/@forgefed", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Specs"] + }, + { + "title": "Nautilus", + "source": "https://github.com/aaronpk/Nautilus", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "A standalone service to deliver posts from your own website to ActivityPub followers.", + "codeLanguage": "PHP", + "techStack": "Laravel, Vue", + "license": "Apache-2.0", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Utils"] + }, + { + "title": "Pherephone", + "source": "https://github.com/writeas/pherephone", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "An ActivityPub server that reblogs all the statuses of certain actors. You set it up to follow a few accounts and it Announces everything they post.", + "codeLanguage": "Go", + "techStack": "", + "license": "AGPL-3.0", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Utils"] + }, + { + "title": "Go-Fed Activity", + "source": "https://github.com/go-fed/activity", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "ActivityStreams & ActivityPub in golang.", + "codeLanguage": "Go", + "techStack": "", + "license": "BSD-3-clause", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Libs"] + }, + { + "title": "BridgyFed", + "source": "https://github.com/snarfed/bridgy-fed", + "protocols": "ActivityPub, OStatus", + "site": "https://fed.brid.gy", + "description": "Bridges the IndieWeb to federated social networks: ActivityPub, OStatus, etc.", + "codeLanguage": "Python", + "techStack": "", + "license": "CC-0", + "FediAccount": "", + "logo": "", + "servers": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": true, + "categories": ["Bridges"] + }, + { + "title": "Federation", + "source": "https://git.feneas.org/jaywink/federation", + "protocols": "ActivityPub, diaspora", + "site": "https://federation.readthedocs.io", + "logo": "", + "servers": "", + "description": "Python library to abstract social web federation protocols like ActivityPub and diaspora.", + "codeLanguage": "Python", + "techStack": "Django", + "license": "BSD-3-clause", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": true, + "OStatusClass": false, + "categories": ["Libs"] + }, + { + "title": "Little Boxes", + "source": "https://github.com/tsileo/little-boxes", + "protocols": "ActivityPub", + "site": "https://little-boxes.readthedocs.io", + "logo": "", + "servers": "", + "description": "Tiny ActivityPub framework written in Python, both database and server agnostic.", + "codeLanguage": "Python", + "techStack": "", + "license": "ISC", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Libs"] + }, + { + "title": "Python ActivityPub", + "source": "https://github.com/dsblank/activitypub", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "A general Python ActivityPub library.", + "codeLanguage": "Python", + "techStack": "", + "license": "MPL-2.0", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Libs"] + }, + { + "title": "ActivityPub PHP", + "source": "https://github.com/pterotype-project/activitypub-php", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "A PHP implementation of the ActivityPub protocol.", + "codeLanguage": "PHP", + "techStack": "", + "license": "MIT", + "FediAccount": "https://mastodon.technology/@jdormit", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Libs"] + }, + { + "title": "Express ActivityPub", + "source": "https://github.com/dariusk/express-activitypub", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "A simple reference implementation of an ActivityPub server using Express.js.", + "codeLanguage": "Javascript", + "techStack": "Express", + "license": "MIT", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Libs"] + }, + { + "title": "ActivityPub Express", + "source": "https://github.com/wmurphyrd/activitypub-express", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "Modular ActivityPub implementation as Express.js middleware to easily add decentralization and federation to Node apps.", + "codeLanguage": "Javascript", + "techStack": "Express", + "license": "-", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Libs"] + }, + { + "title": "distbin", + "source": "https://github.com/gobengo/distbin", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "https://distbin.com", + "description": "Post bin with distributed social features.", + "codeLanguage": "Typescript", + "techStack": "", + "license": "Apache-2.0", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Tools"] + }, + { + "title": "WordPress-ActivityPub", + "source": "https://github.com/pfefferle/wordpress-activitypub", + "protocols": "ActivityPub", + "site": "https://wordpress.org/plugins/activitypub", + "logo": "", + "servers": "", + "description": "ActivityPub for WordPress.", + "codeLanguage": "PHP", + "techStack": "", + "license": "MIT", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Plugins"] + }, + { + "title": "WordPress-OStatus", + "source": "https://github.com/pfefferle/wordpress-ostatus", + "protocols": "OStatus", + "site": "https://wordpress.org/plugins/ostatus-for-wordpress", + "logo": "", + "servers": "", + "description": "An OStatus plugin for WordPress.", + "codeLanguage": "PHP", + "techStack": "", + "license": "MIT", + "FediAccount": "", + "apClass": false, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": true, + "categories": ["Plugins"] + }, + { + "title": "LitePub", + "source": "https://github.com/litepub/litepub", + "protocols": "ActivityPub", + "site": "https://litepub.social/litepub", + "logo": "", + "servers": "", + "description": "Litepub protocol specification.", + "codeLanguage": "", + "techStack": "", + "license": "-", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Specs"] + }, + { + "title": "p3k", + "source": "https://github.com/aaronpk/p3k", + "protocols": "ActivityPub", + "site": "https://indieweb.org/p3k", + "logo": "", + "servers": "https://the-federation.info/p3k", + "description": "Components of the sites aaronparecki.com and indiewebcat.com.", + "codeLanguage": "PHP", + "techStack": "", + "license": "MIT", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Other"] + }, + { + "title": "Activity relay", + "source": "https://git.pleroma.social/pleroma/relay", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "https://fediverse.network/activityrelay", + "description": "Generic LitePub relay, works with all LitePub consumers and with Mastodon.", + "codeLanguage": "Python", + "techStack": "", + "license": "AGPL-3.0", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Relays"] + }, + { + "title": "Pub relay", + "source": "https://source.joinmastodon.org/mastodon/pub-relay", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "A service-type ActivityPub actor that will re-broadcast anything sent to it to anyone who subscribes to it.", + "codeLanguage": "Crystal", + "techStack": "", + "license": "AGPL-3.0", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Relays"] + }, + { + "title": "Social relay", + "source": "https://github.com/jaywink/social-relay", + "protocols": "diaspora", + "site": "", + "logo": "", + "servers": "https://the-federation.info/social-relay", + "description": "Public post relay for the diaspora* federated social network protocol.", + "codeLanguage": "Python", + "techStack": "", + "license": "AGPL-3.0", + "FediAccount": "", + "apClass": false, + "zotClass": false, + "diasporaClass": true, + "OStatusClass": false, + "categories": ["Relays"] + }, + { + "title": "Seattle relay", + "source": "https://gitlab.com/jankysolutions/social.seattle.wa.us/relay", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "https://fediverse.network/social.seattle.wa.us-relay", + "description": "Something like the Pleroma relay but with crazy things like workers.", + "codeLanguage": "Python", + "techStack": "", + "license": "-", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Relays"] + }, + { + "title": "Pterotype", + "source": "https://github.com/pterotype-project/pterotype", + "protocols": "ActivityPub", + "site": "", + "logo": "/img/misc/pterotype.png", + "servers": "", + "description": "WordPress plugin. Pterotype connects your blog to the Fediverse by giving it an ActivityPub feed.", + "codeLanguage": "PHP", + "techStack": "", + "license": "MIT", + "FediAccount": "https://mastodon.technology/@jdormit", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Plugins"] + }, + { + "title": "feed2toot", + "source": "https://gitlab.com/chaica/feed2toot", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "Feed2toot automatically parses RSS feeds, identifies new posts and posts them on the Mastodon social network.", + "codeLanguage": "Python", + "techStack": "", + "license": "MIT", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Utils"] + }, + { + "title": "RSS-to-ActivityPub", + "source": "https://github.com/dariusk/rss-to-activitypub", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "RSS to ActivityPub converter.", + "codeLanguage": "Javascript", + "techStack": "Node.js", + "license": "MIT", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Utils"] + }, + { + "title": "Activity-PHP", + "source": "https://github.com/landrok/activitypub", + "protocols": "ActivityPub", + "site": "https://landrok.github.io/activitypub", + "logo": "", + "servers": "", + "description": "PHP implementation of ActivityPub protocol based on the ActivityStreams 2.0 data format.", + "codeLanguage": "PHP", + "techStack": "", + "license": "MIT", + "FediAccount": "https://cybre.space/@landrok", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Libs"] + }, + { + "title": "Astreams", + "source": "https://github.com/MatejLach/astreams", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "A hand-crafted implementation of the Activity Streams 2.0 specification in Go.", + "codeLanguage": "Go", + "techStack": "", + "license": "AGPL-3.0", + "FediAccount": "https://social.matej-lach.me/@MatejLach", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Libs"] + }, + { + "title": "ActivityPub-mock", + "source": "https://gitlab.com/evanp/activitypub-mock", + "protocols": "ActivityPub", + "site": "", + "logo": "", + "servers": "", + "description": "A mock ActivityPub server to use in testing code.", + "codeLanguage": "Javascript", + "techStack": "", + "license": "Apache-2.0", + "FediAccount": "", + "apClass": true, + "zotClass": false, + "diasporaClass": false, + "OStatusClass": false, + "categories": ["Libs"] + } + ] +} diff --git a/source/en/tools/index.md b/source/en/tools/index.md new file mode 100644 index 0000000..d0615ca --- /dev/null +++ b/source/en/tools/index.md @@ -0,0 +1,7 @@ + +--- +layout: "tools" +title: "" +banner: "/img/misc-bg.png" +percent: "45% 100%" +--- diff --git a/themes/starter/layout/layout.ejs b/themes/starter/layout/layout.ejs index 6483174..4ce3fd8 100644 --- a/themes/starter/layout/layout.ejs +++ b/themes/starter/layout/layout.ejs @@ -13,7 +13,7 @@ if (page.layout == 'crystalball') { ball = true; } - if (page.layout == 'miscellaneous') { + if (page.layout == 'miscellaneous' || page.layout == 'tools') { misc = "miscellaneous"; } if (page.layout == 'post') { diff --git a/themes/starter/layout/miscellaneous.ejs b/themes/starter/layout/miscellaneous.ejs index 900c921..a7cd398 100644 --- a/themes/starter/layout/miscellaneous.ejs +++ b/themes/starter/layout/miscellaneous.ejs @@ -23,32 +23,25 @@ layout: layout const apps = site.data.miscellaneous.apps; const langList = langCount(apps).sort((a,b) => b.count - a.count); + const byCategory = [['snMacro', 'Social network (macro)'], ['snMicro', 'Social network (micro)'], ['blogPub', 'Blog and Publishing'], ['media', 'Media sharing'], ['links', 'Link sharing'], ['evMeet', 'Events and Meetups'], ['files', 'File hosting'], ['data', 'Dataset exchange'], ['reviews', 'Reviewing'], ['games', 'Gaming']]; + const byProtocol = [['sortDiaspora', 'diaspora'], ['sortZot', 'Zot'], ['sortAP', 'ActivityPub'], ['sortOstatus', 'OStatus']]; %> <%- partial('_partial/heroheader') %>

EXPLORE FEDIVERSE SOFTWARE

+ → Check out other Fediverse Tools ←

Sort by category:

- - - - - - - - - - - - + <% for (item in byCategory) { %> + + <% } %>

Sort by protocol:

- - - - + <% for (item in byProtocol) { %> + + <% } %>

Sort by code language:

diff --git a/themes/starter/layout/tools.ejs b/themes/starter/layout/tools.ejs new file mode 100644 index 0000000..064e2d8 --- /dev/null +++ b/themes/starter/layout/tools.ejs @@ -0,0 +1,112 @@ +--- +layout: layout +--- + +<% + function langCount(arr) { + let langs = []; + arr.forEach(function(item) { + let lang = item.codeLanguage; + if (!lang) {return}; + let check = langs.findIndex(function(x) {return x.language === lang}); + if (check>=0) { + langs[check].count +=1; + } else { + let newLang = {}; + newLang.language = lang; + newLang.count = 1; + langs.push(newLang); + } + }); + return langs; + } + + const apps = site.data.tools.apps; + const langList = langCount(apps).sort((a,b) => b.count - a.count); + const byCategory = [['libs', 'Libraries'], ['specs', 'Specifications'], ['dev', 'Tools (stuff for developers and geeks)'], ['utils', 'Utilities (bots, daemons, federators)'], ['relays', 'Relays'], ['bridges', 'Bridges'], ['plugins', 'Plugins (addon apps)'], ['other', 'Other']]; + const byProtocol = [['sortDiaspora', 'diaspora'], ['sortAP', 'ActivityPub'], ['sortOstatus', 'OStatus'], ['sortZot', 'Zot']]; +%> + +<%- partial('_partial/heroheader') %> + +
+

EXPLORE FEDIVERSE TOOLS

+ +

Sort by category:

+ <% for (item in byCategory) { %> + + <% } %> + +

Sort by protocol:

+ <% for (item in byProtocol) { %> + + <% } %> + +

Sort by code language:

+ + <% for (i in langList) { %> + + <% } %> + +
+ <% for (item in apps) { %> + <% let type = apps[item].categories %> + <% let lang = apps[item].codeLanguage.toLowerCase() %> + + + <% } %> +
+ +
+

Something's missing? Add it.

+

Software no longer maintained, renamed, broken link? Please, let us know.

+

Special thanks to @strypey - for curating this list.

+

Other sources: implementation report on activitypub.rocks website.

+
+ +
diff --git a/themes/starter/source/assets/scss/modules/_misc.scss b/themes/starter/source/assets/scss/modules/_misc.scss index fe3ae00..bd66ac5 100644 --- a/themes/starter/source/assets/scss/modules/_misc.scss +++ b/themes/starter/source/assets/scss/modules/_misc.scss @@ -20,7 +20,7 @@ .misc h2 { text-align: center; - margin-bottom: 1em; + margin-bottom: .5em; } .misc > h4 { @@ -248,11 +248,18 @@ #links:checked ~ .misc__grid .card:not(.Links), #evMeet:checked ~ .misc__grid .card:not(.Ev-Meet), #files:checked ~ .misc__grid .card:not(.Files), -#dev:checked ~ .misc__grid .card:not(.DevTools), #data:checked ~ .misc__grid .card:not(.DataForge), -#coop:checked ~ .misc__grid .card:not(.Coop), -#plugins:checked ~ .misc__grid .card:not(.Plugins), +#reviews:checked ~ .misc__grid .card:not(.Reviews), +#games:checked ~ .misc__grid .card:not(.Games), +#libs:checked ~ .misc__grid .card:not(.Libs), +#specs:checked ~ .misc__grid .card:not(.Specs), +#dev:checked ~ .misc__grid .card:not(.Tools), +#utils:checked ~ .misc__grid .card:not(.Utils), +#tests:checked ~ .misc__grid .card:not(.Tests), #relays:checked ~ .misc__grid .card:not(.Relays), +#bridges:checked ~ .misc__grid .card:not(.Bridges), +#plugins:checked ~ .misc__grid .card:not(.Plugins), +#other:checked ~ .misc__grid .card:not(.Other), #python:checked ~ .misc__grid .card:not(.python), #php:checked ~ .misc__grid .card:not(.php), #javascript:checked ~ .misc__grid .card:not(.javascript),