--- 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.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', 'Open data'], ['reviews', 'Reviewing'], ['games', 'Gaming'], ['dev', 'Software development'], ['extend', 'Extentions'], ['forums', 'Forums, boards'], ['other', 'Other']]; 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:

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