A project tracker for decentralized social media platforms, clients, and tools

feat: add mbin platform and improve project tags

- Add mbin as new ActivityPub platform with 354 stars
- Update Lemmy and Iceshrimp tags to use "communities" consistently
- Include mbin logo and comprehensive project details

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>

Changed files
+395 -2
public
data
logos
+21 -2
public/data/projects.json
···
"logoUrl": "/logos/lemmy.svg",
"description": "A link aggregator and forum for the fediverse. Lemmy is similar to sites like Reddit, Lobste.rs, or Hacker News.",
"type": "platform",
-
"tags": ["forum", "link-aggregator", "server", "open-source"],
"languages": ["Rust", "TypeScript"],
"links": [
{ "kind": "homepage", "url": "https://join-lemmy.org" },
···
"logoUrl": "/logos/iceshrimp.png",
"description": "A blazingly fast & resource-efficient decentralized social networking platform powered by .NET with Mastodon-compatible API and community-centric approach.",
"type": "platform",
-
"tags": ["server", "open-source", "mastodon-compatible", "community"],
"languages": ["C#", "HTML", "CSS"],
"links": [
{ "kind": "homepage", "url": "https://iceshrimp.dev" },
···
],
"stars": 30,
"updatedAt": "2025-09-15"
}
]
···
"logoUrl": "/logos/lemmy.svg",
"description": "A link aggregator and forum for the fediverse. Lemmy is similar to sites like Reddit, Lobste.rs, or Hacker News.",
"type": "platform",
+
"tags": ["forum", "link-aggregator", "server", "communities", "open-source"],
"languages": ["Rust", "TypeScript"],
"links": [
{ "kind": "homepage", "url": "https://join-lemmy.org" },
···
"logoUrl": "/logos/iceshrimp.png",
"description": "A blazingly fast & resource-efficient decentralized social networking platform powered by .NET with Mastodon-compatible API and community-centric approach.",
"type": "platform",
+
"tags": ["server", "open-source", "mastodon-compatible", "communities"],
"languages": ["C#", "HTML", "CSS"],
"links": [
{ "kind": "homepage", "url": "https://iceshrimp.dev" },
···
],
"stars": 30,
"updatedAt": "2025-09-15"
+
},
+
{
+
"id": "mbin",
+
"name": "Mbin",
+
"network": "activitypub",
+
"owner": "MbinOrg",
+
"domain": "joinmbin.org",
+
"logoUrl": "/logos/mbin.svg",
+
"description": "A decentralized content aggregator, voting, discussion, and microblogging platform running on the fediverse. Community-driven development with ActivityPub federation.",
+
"type": "platform",
+
"tags": ["forum", "link-aggregator", "microblog", "server", "open-source", "communities"],
+
"languages": ["PHP"],
+
"links": [
+
{ "kind": "homepage", "url": "https://joinmbin.org" },
+
{ "kind": "repo", "url": "https://github.com/MbinOrg/mbin" },
+
{ "kind": "docs", "url": "https://docs.joinmbin.org" }
+
],
+
"stars": 354,
+
"updatedAt": "2025-09-18"
}
]
+374
public/logos/mbin.svg
···
···
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+
<!-- Created with Inkscape (http://www.inkscape.org/) -->
+
+
<svg
+
width="320"
+
height="320"
+
viewBox="0 0 320 320"
+
version="1.1"
+
id="svg1"
+
inkscape:version="1.3.2 (1:1.3.2+202311252150+091e20ef0f)"
+
sodipodi:docname="mbin-logo.svg"
+
inkscape:export-filename="../../../public/assets/icons/icon-1024x1024.svg"
+
inkscape:export-xdpi="307.20001"
+
inkscape:export-ydpi="307.20001"
+
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
+
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
+
xmlns:xlink="http://www.w3.org/1999/xlink"
+
xmlns="http://www.w3.org/2000/svg"
+
xmlns:svg="http://www.w3.org/2000/svg">
+
<sodipodi:namedview
+
id="namedview1"
+
pagecolor="#bfbfbf"
+
bordercolor="#ffffff"
+
borderopacity="1"
+
inkscape:showpageshadow="0"
+
inkscape:pageopacity="0"
+
inkscape:pagecheckerboard="1"
+
inkscape:deskcolor="#d1d1d1"
+
inkscape:document-units="px"
+
showgrid="false"
+
inkscape:zoom="8.0000002"
+
inkscape:cx="197.93749"
+
inkscape:cy="191.4375"
+
inkscape:window-width="1920"
+
inkscape:window-height="1048"
+
inkscape:window-x="3840"
+
inkscape:window-y="0"
+
inkscape:window-maximized="1"
+
inkscape:current-layer="layer1"
+
showguides="true">
+
<inkscape:grid
+
type="axonomgrid"
+
id="grid1"
+
units="px"
+
originx="274"
+
originy="25.000006"
+
spacingx="0"
+
spacingy="5"
+
empcolor="#3f3fff"
+
empopacity="0.25098039"
+
color="#3f3fff"
+
opacity="0.10196078"
+
empspacing="2"
+
dotted="false"
+
gridanglex="30"
+
gridanglez="30"
+
visible="false" />
+
<sodipodi:guide
+
position="160,917.72136"
+
orientation="-1,0"
+
id="guide1"
+
inkscape:locked="false"
+
inkscape:label=""
+
inkscape:color="rgb(0,134,229)" />
+
<sodipodi:guide
+
position="-56.499999,709.00001"
+
orientation="0,-1"
+
id="guide4"
+
inkscape:locked="false" />
+
</sodipodi:namedview>
+
<defs
+
id="defs1">
+
<rect
+
x="24.411255"
+
y="279.42432"
+
width="212.46252"
+
height="78.889648"
+
id="rect1" />
+
<inkscape:path-effect
+
effect="fillet_chamfer"
+
id="path-effect39"
+
is_visible="true"
+
lpeversion="1"
+
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 | F,0,0,1,0,0,0,1 @ F,0,1,1,0,4.3305888,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,4.3305888,0,1"
+
radius="0"
+
unit="px"
+
method="auto"
+
mode="F"
+
chamfer_steps="1"
+
flexible="false"
+
use_knot_distance="true"
+
apply_no_radius="true"
+
apply_with_radius="true"
+
only_selected="true"
+
hide_knots="false" />
+
<inkscape:path-effect
+
effect="fillet_chamfer"
+
id="path-effect31"
+
is_visible="true"
+
lpeversion="1"
+
nodesatellites_param="F,0,0,1,0,8.6602542,0,1 @ F,0,1,1,0,8.660254,0,1 @ F,0,0,1,0,8.6602534,0,1"
+
radius="8"
+
unit="px"
+
method="auto"
+
mode="F"
+
chamfer_steps="1"
+
flexible="false"
+
use_knot_distance="true"
+
apply_no_radius="true"
+
apply_with_radius="true"
+
only_selected="true"
+
hide_knots="false" />
+
<inkscape:path-effect
+
effect="fillet_chamfer"
+
id="path-effect29"
+
is_visible="true"
+
lpeversion="1"
+
nodesatellites_param="F,0,0,1,0,2,0,1 @ F,0,0,1,0,2,0,1 @ F,0,0,1,0,2,0,1 @ F,0,0,1,0,2,0,1"
+
radius="2"
+
unit="px"
+
method="auto"
+
mode="F"
+
chamfer_steps="1"
+
flexible="false"
+
use_knot_distance="true"
+
apply_no_radius="true"
+
apply_with_radius="true"
+
only_selected="false"
+
hide_knots="false" />
+
<inkscape:path-effect
+
effect="fillet_chamfer"
+
id="path-effect28"
+
is_visible="true"
+
lpeversion="1"
+
nodesatellites_param="F,0,0,1,0,2,0,1 @ F,0,0,1,0,2,0,1 @ F,0,0,1,0,2,0,1 @ F,0,0,1,0,2,0,1"
+
radius="2"
+
unit="px"
+
method="auto"
+
mode="F"
+
chamfer_steps="1"
+
flexible="false"
+
use_knot_distance="true"
+
apply_no_radius="true"
+
apply_with_radius="true"
+
only_selected="false"
+
hide_knots="false" />
+
<inkscape:path-effect
+
effect="fillet_chamfer"
+
id="path-effect27"
+
is_visible="true"
+
lpeversion="1"
+
nodesatellites_param="F,0,1,1,0,8.660254,0,1 @ F,0,1,1,0,8.660254,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
+
radius="5"
+
unit="px"
+
method="auto"
+
mode="F"
+
chamfer_steps="1"
+
flexible="false"
+
use_knot_distance="true"
+
apply_no_radius="true"
+
apply_with_radius="true"
+
only_selected="true"
+
hide_knots="false" />
+
<inkscape:path-effect
+
effect="fillet_chamfer"
+
id="path-effect25"
+
is_visible="true"
+
lpeversion="1"
+
nodesatellites_param="F,0,0,1,0,8.6602542,0,1 @ F,0,1,1,0,8.660254,0,1 @ F,0,0,1,0,8.6602534,0,1"
+
radius="8"
+
unit="px"
+
method="auto"
+
mode="F"
+
chamfer_steps="1"
+
flexible="false"
+
use_knot_distance="true"
+
apply_no_radius="true"
+
apply_with_radius="true"
+
only_selected="true"
+
hide_knots="false" />
+
<inkscape:path-effect
+
effect="fillet_chamfer"
+
id="path-effect21"
+
is_visible="true"
+
lpeversion="1"
+
nodesatellites_param="F,0,1,1,0,8.660254,0,1 @ F,0,1,1,0,8.660254,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
+
radius="5"
+
unit="px"
+
method="auto"
+
mode="F"
+
chamfer_steps="1"
+
flexible="false"
+
use_knot_distance="true"
+
apply_no_radius="true"
+
apply_with_radius="true"
+
only_selected="true"
+
hide_knots="false" />
+
<inkscape:path-effect
+
effect="fillet_chamfer"
+
id="path-effect20"
+
is_visible="true"
+
lpeversion="1"
+
nodesatellites_param="F,0,0,1,0,8.6602542,0,1 @ F,0,1,1,0,8.660254,0,1 @ F,0,0,1,0,8.6602534,0,1"
+
radius="8"
+
unit="px"
+
method="auto"
+
mode="F"
+
chamfer_steps="1"
+
flexible="false"
+
use_knot_distance="true"
+
apply_no_radius="true"
+
apply_with_radius="true"
+
only_selected="true"
+
hide_knots="false" />
+
<linearGradient
+
inkscape:collect="always"
+
xlink:href="#linearGradient8"
+
id="linearGradient9"
+
x1="105.88936"
+
y1="-7.966506"
+
x2="153.52075"
+
y2="74.533493"
+
gradientUnits="userSpaceOnUse" />
+
<linearGradient
+
id="linearGradient8"
+
inkscape:collect="always">
+
<stop
+
style="stop-color:#2de2e6;stop-opacity:1;"
+
offset="0"
+
id="stop8" />
+
<stop
+
style="stop-color:#3399ff;stop-opacity:1;"
+
offset="1"
+
id="stop11" />
+
</linearGradient>
+
<inkscape:path-effect
+
effect="fillet_chamfer"
+
id="path-effect20-6"
+
is_visible="true"
+
lpeversion="1"
+
nodesatellites_param="F,0,0,1,0,8.6602542,0,1 @ F,0,1,1,0,8.660254,0,1 @ F,0,0,1,0,8.6602534,0,1"
+
radius="8"
+
unit="px"
+
method="auto"
+
mode="F"
+
chamfer_steps="1"
+
flexible="false"
+
use_knot_distance="true"
+
apply_no_radius="true"
+
apply_with_radius="true"
+
only_selected="true"
+
hide_knots="false" />
+
<inkscape:path-effect
+
effect="fillet_chamfer"
+
id="path-effect39-7"
+
is_visible="true"
+
lpeversion="1"
+
nodesatellites_param="F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 | F,0,0,1,0,0,0,1 @ F,0,1,1,0,4.3305888,0,1 @ F,0,0,1,0,0,0,1 @ F,0,1,1,0,4.3305888,0,1"
+
radius="0"
+
unit="px"
+
method="auto"
+
mode="F"
+
chamfer_steps="1"
+
flexible="false"
+
use_knot_distance="true"
+
apply_no_radius="true"
+
apply_with_radius="true"
+
only_selected="true"
+
hide_knots="false" />
+
<linearGradient
+
inkscape:collect="always"
+
xlink:href="#linearGradient6"
+
id="linearGradient7"
+
x1="97.229103"
+
y1="82.033493"
+
x2="97.229103"
+
y2="107.03349"
+
gradientUnits="userSpaceOnUse" />
+
<linearGradient
+
id="linearGradient6"
+
inkscape:collect="always">
+
<stop
+
style="stop-color:#f623ac;stop-opacity:1;"
+
offset="0"
+
id="stop6" />
+
<stop
+
style="stop-color:#f706cf;stop-opacity:1;"
+
offset="1"
+
id="stop7" />
+
</linearGradient>
+
<inkscape:path-effect
+
effect="fillet_chamfer"
+
id="path-effect21-5"
+
is_visible="true"
+
lpeversion="1"
+
nodesatellites_param="F,0,1,1,0,8.660254,0,1 @ F,0,1,1,0,8.660254,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1 @ F,0,0,1,0,0,0,1"
+
radius="5"
+
unit="px"
+
method="auto"
+
mode="F"
+
chamfer_steps="1"
+
flexible="false"
+
use_knot_distance="true"
+
apply_no_radius="true"
+
apply_with_radius="true"
+
only_selected="true"
+
hide_knots="false" />
+
</defs>
+
<rect
+
style="display:inline;opacity:1;fill:#29144a;fill-opacity:1;stroke:none;stroke-width:4.50918;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+
id="rect35"
+
width="337.22076"
+
height="328.28177"
+
x="-4.2902832"
+
y="-4.6620121"
+
inkscape:label="bg color" />
+
<g
+
id="g1"
+
inkscape:label="all"
+
transform="matrix(0.84751584,0,0,0.83052198,50.436803,11.2864)">
+
<g
+
inkscape:label="logo"
+
inkscape:groupmode="layer"
+
id="layer1"
+
style="display:inline;fill:none"
+
transform="matrix(2.12871,0,0,2.0000001,-90.126008,15.218211)">
+
<path
+
style="display:inline;opacity:1;fill:url(#linearGradient9);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+
d="M 92.898977,-25.466506 23.616945,94.53349 a 4.9999999,4.9999999 60 0 0 4.330127,7.5 H 166.51114 a 4.9999996,4.9999996 120 0 0 4.33012,-7.499999 L 101.55923,-25.466506 a 5.0000002,5.0000002 180 0 0 -8.660253,0 z"
+
id="path5"
+
sodipodi:nodetypes="cccc"
+
inkscape:label="bg triangle"
+
inkscape:path-effect="#path-effect20-6"
+
inkscape:original-d="M 97.229104,-32.966506 19.286818,102.03349 H 175.17139 Z"
+
transform="translate(5.8501312,19.942587)" />
+
<path
+
id="path1"
+
style="display:inline;opacity:1;fill:#241734;fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+
inkscape:label="negative m"
+
d="M 103.61607,27.033498 60.315284,102.0335 H 77.635596 L 90.625831,79.533498 103.61607,102.0335 116.60825,79.533498 129.59849,102.0335 h 17.32031 z m 0,15 10.82666,18.74973 a 7.4997612,7.4997612 90 0 1 0,7.50054 l -10.82666,18.74973 -10.824962,-18.74959 a 7.5008819,7.5008819 90 0 1 0,-7.50082 z"
+
inkscape:path-effect="#path-effect39-7"
+
inkscape:original-d="M 103.61607,27.033498 60.315284,102.0335 H 77.635596 L 90.625831,79.533498 103.61607,102.0335 116.60825,79.533498 129.59849,102.0335 h 17.32031 z m 0,15 12.99218,22.5 -12.99218,22.5 -12.990239,-22.5 z"
+
transform="translate(-0.5188027,0.07359983)" />
+
<path
+
style="display:inline;opacity:1;fill:url(#linearGradient7);fill-opacity:1;stroke:none;stroke-width:1;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:none;stroke-opacity:1"
+
d="M 27.947072,102.03349 H 166.51114 a 5.0000006,5.0000006 120 0 0 4.33012,-7.5 l -7.21687,-12.499996 h -40.41452 l -12.99038,-22.5 -12.990386,22.5 -12.990381,-22.5 -12.990381,22.5 H 30.833821 L 23.616945,94.53349 a 5,5 60 0 0 4.330127,7.5 z"
+
id="path6"
+
inkscape:label="ground bg"
+
inkscape:path-effect="#path-effect21-5"
+
inkscape:original-d="M 19.286818,102.03349 H 175.17139 l -11.547,-19.999996 h -40.41452 l -12.99038,-22.5 -12.990386,22.5 -12.990381,-22.5 -12.990381,22.5 H 30.833821 Z"
+
transform="matrix(1.0017282,0,0,1.0060861,5.7403875,19.379967)" />
+
</g>
+
</g>
+
<path
+
style="font-size:40px;line-height:1.25;font-family:SEGEK;-inkscape-font-specification:'SEGEK, Normal';white-space:pre;fill:#ffffff;stroke-width:2.0971"
+
d="m 275.80506,245.97909 v 0 q 0,-0.76418 0.61467,-1.26091 0.61469,-0.53493 1.44892,-0.53493 h 12.33759 q 0.87812,0 1.4489,0.53493 0.61469,0.49673 0.61469,1.26091 v 51.12436 q 0,0.726 -0.61469,1.26093 -0.57078,0.53492 -1.4489,0.53492 h -13.30353 q -1.00985,0 -1.66843,-0.76418 L 247.8369,263.9758 v 33.12765 q 0,0.726 -0.61469,1.26093 -0.61467,0.53492 -1.4489,0.53492 h -12.33759 q -0.87812,0 -1.49281,-0.53492 -0.57078,-0.53493 -0.57078,-1.26093 v -51.12436 q 0,-0.76418 0.57078,-1.26091 0.61469,-0.53493 1.49281,-0.53493 h 13.30353 q 1.00984,0 1.66844,0.7642 l 27.39737,34.15934 z"
+
id="path4"
+
inkscape:label="N" />
+
<path
+
style="font-size:40px;line-height:1.25;font-family:SEGEK;-inkscape-font-specification:'SEGEK, Normal';white-space:pre;fill:#ffffff;stroke-width:2.0971"
+
d="m 193.85512,297.04234 v 0 q 0,0.726 0.61469,1.26093 0.61468,0.49672 1.44889,0.49672 h 12.33761 q 0.83422,0 1.4489,-0.49672 0.61469,-0.53493 0.61469,-1.26093 v -51.12436 q 0,-0.76418 -0.61469,-1.26091 -0.61468,-0.53494 -1.4489,-0.53494 H 195.9187 q -0.83421,0 -1.44889,0.53494 -0.61469,0.49673 -0.61469,1.26091 z"
+
id="path3"
+
inkscape:label="I" />
+
<path
+
style="font-size:40px;line-height:1.25;font-family:SEGEK;-inkscape-font-specification:'SEGEK, Normal';white-space:pre;fill:#ffffff;stroke-width:2.0971"
+
d="m 172.66868,277.20181 v 0 q 0.96593,2.44542 0.96593,5.12007 0,2.71288 -0.96593,5.15829 -1.27328,3.32423 -3.90765,5.88427 -2.63435,2.52184 -6.27855,3.97379 -3.6003,1.45197 -7.77138,1.45197 h -31.26111 q -0.83421,0 -1.44889,-0.49672 -0.57078,-0.53493 -0.57078,-1.26093 v -51.16257 q 0,-0.72597 0.57078,-1.2227 0.61468,-0.53494 1.44889,-0.53494 h 28.2755 q 4.21498,0 7.85919,1.45197 3.6442,1.45196 6.27857,4.012 2.63435,2.52183 3.90763,5.84606 0.96594,2.48361 0.96594,5.23469 0,2.7511 -0.96594,5.23473 -0.87812,2.29257 -2.41483,4.20304 3.6881,2.90394 5.31263,7.10698 z m -34.8175,-21.77944 v 0 10.46942 h 13.87431 q 2.50264,0 4.2589,-1.52837 1.75624,-1.52839 1.75624,-3.70636 0,-2.17793 -1.75624,-3.70632 -1.75626,-1.52837 -4.2589,-1.52837 z m 16.85992,32.0578 v 0 q 2.45874,0 4.17108,-1.49017 1.71234,-1.52838 1.71234,-3.66812 0,-2.10152 -1.71234,-3.59168 -1.71234,-1.52839 -4.17108,-1.52839 h -19.75772 l 2.8978,1.91048 v 8.36788 z"
+
id="path2"
+
inkscape:label="B" />
+
<path
+
style="font-size:40px;line-height:1.25;font-family:SEGEK;-inkscape-font-specification:'SEGEK, Normal';white-space:pre;fill:#ffffff;stroke-width:2.0971"
+
d="m 82.402695,245.27857 v 0 q 0.658591,-1.10808 1.887961,-1.10808 h 13.040096 q 0.834215,0 1.448898,0.53493 0.614687,0.49673 0.614687,1.26092 v 51.12435 q 0,0.72599 -0.614687,1.26093 -0.614683,0.53492 -1.448898,0.53492 h -12.3376 q -0.878121,0 -1.492807,-0.53492 -0.570778,-0.53494 -0.570778,-1.26093 v -23.95737 l -12.030256,24.64516 q -0.658592,1.10806 -1.88796,1.10806 H 57.639683 q -1.229371,0 -1.887961,-1.10806 L 43.76537,273.13332 v 0 23.95737 q 0,0.72599 -0.614683,1.26093 -0.614686,0.49671 -1.448902,0.49671 H 29.364186 q -0.878122,0 -1.492804,-0.49671 -0.57078,-0.53494 -0.57078,-1.26093 v -51.12435 q 0,-0.76419 0.57078,-1.26092 0.614682,-0.53493 1.492804,-0.53493 h 13.040097 q 1.229369,0 1.887959,1.06988 l 19.055228,39.08835 z"
+
id="text1"
+
inkscape:label="M" />
+
</svg>