{
 "license": "CC BY-SA 4.0",
 "generated": "2026-10-26",
 "credits": "See data/CREDITS.md",
 "groups": [
  {
   "id": "documents",
   "name": "Documents",
   "category": "office",
   "job": "Writing and editing documents, alone or with others",
   "closed": [
    "Google Docs",
    "Microsoft Word",
    "Apple Pages"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "libreoffice-writer",
     "fit": "full",
     "note": "Desktop; no live co-editing"
    },
    {
     "project": "onlyoffice-docs",
     "fit": "full",
     "note": "Server, or free desktop app; ask for hosting"
    },
    {
     "project": "collabora-online",
     "fit": "full",
     "note": "Needs your own server",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Replaced the sentence about the README with what the software does and who it is for."
     }
    },
    {
     "project": "cryptpad",
     "fit": "partial",
     "note": "Encrypted; simpler formatting than Word",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Upgraded fit to full because CryptPad includes a full Document editor with real-time collaborative editing that can be self-hosted, which covers the main job of Google Docs and Word."
     }
    },
    {
     "project": "etherpad",
     "fit": "partial",
     "note": "Plain shared text; no page layout"
    }
   ]
  },
  {
   "id": "spreadsheets",
   "name": "Spreadsheets",
   "category": "office",
   "job": "Tables, formulas and charts",
   "closed": [
    "Microsoft Excel",
    "Google Sheets",
    "Apple Numbers"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "libreoffice-calc",
     "fit": "full",
     "note": null
    },
    {
     "project": "onlyoffice-docs",
     "fit": "full",
     "note": null
    },
    {
     "project": "grist",
     "fit": "partial",
     "note": "Database-style; you host it"
    },
    {
     "project": "gnumeric",
     "fit": "partial",
     "note": "Basic charts; Linux-focused; no co-editing",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Gnumeric is a complete desktop spreadsheet with formulas and charts, covering the main job of Excel, Sheets and Numbers."
     }
    }
   ]
  },
  {
   "id": "slides",
   "name": "Presentations",
   "category": "office",
   "job": "Slide decks",
   "closed": [
    "Microsoft PowerPoint",
    "Google Slides",
    "Apple Keynote"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "libreoffice-impress",
     "fit": "full",
     "note": null
    },
    {
     "project": "onlyoffice-docs",
     "fit": "full",
     "note": null
    },
    {
     "project": "slidev",
     "fit": "partial",
     "note": "Slides written as text; for developers"
    },
    {
     "project": "reveal-js",
     "fit": "partial",
     "note": "Web slides, for developers",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed the subjective \"good-looking\" wording and noted that slides are written as code, since the open-source project has no visual editor."
     }
    }
   ]
  },
  {
   "id": "notes",
   "name": "Notes & wikis",
   "category": "office",
   "job": "Notes, personal knowledge and team wikis",
   "closed": [
    "Notion",
    "Evernote",
    "Microsoft OneNote",
    "Obsidian",
    "Google Keep",
    "Roam Research"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "appflowy",
     "fit": "full",
     "note": null
    },
    {
     "project": "affine",
     "fit": "full",
     "note": null
    },
    {
     "project": "joplin",
     "fit": "full",
     "note": null
    },
    {
     "project": "logseq",
     "fit": "full",
     "note": null
    },
    {
     "project": "trilium-notes",
     "fit": "partial",
     "note": "No native phone app; steep learning curve"
    },
    {
     "project": "siyuan",
     "fit": "full",
     "note": null
    },
    {
     "project": "standard-notes",
     "fit": "partial",
     "note": "Encrypted notes, fewer layouts"
    },
    {
     "project": "zettlr",
     "fit": "partial",
     "note": "Desktop only; no phone app"
    },
    {
     "project": "silverbullet",
     "fit": "partial",
     "note": "You host it; for tech-minded users"
    },
    {
     "project": "bookstack",
     "fit": "partial",
     "note": "Team wiki you host; not for personal notes"
    },
    {
     "project": "docmost",
     "fit": "partial",
     "note": "Team wiki you host; fewer features than Notion"
    },
    {
     "project": "folio-wiki",
     "fit": "partial",
     "note": "Very new, small project; you host it",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Added real-time browser editing and the Notion/Confluence replacement focus, which the page highlights, so the description reflects the main use."
     }
    },
    {
     "project": "hedgedoc",
     "fit": "partial",
     "note": "Shared Markdown pages; no databases or boards"
    },
    {
     "project": "mediawiki",
     "fit": "partial",
     "note": "Wikipedia-style wiki; heavy to set up"
    },
    {
     "project": "memos",
     "fit": "partial",
     "note": "Short timeline notes; no folders or rich pages",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because Memos is a timeline of short notes similar to Google Keep, without the notebooks, page hierarchies or team wikis that Notion, OneNote and Obsidian provide."
     }
    },
    {
     "project": "notegen",
     "fit": "partial",
     "note": "Young project; desktop-first Markdown notes",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because NoteGen is a complete local-first Markdown notes app with an editor, search, a knowledge base and sync across devices, which covers the main job of apps like Obsidian and Evernote."
     }
    },
    {
     "project": "notally",
     "fit": "partial",
     "note": "Android only; simple notes and lists"
    },
    {
     "project": "notabase",
     "fit": "partial",
     "note": "Browser app; slower updates"
    },
    {
     "project": "notesnook",
     "fit": "full",
     "note": null
    },
    {
     "project": "nextcloud-notes",
     "fit": "partial",
     "note": "Needs a Nextcloud server; basic notes"
    },
    {
     "project": "quillpad",
     "fit": "partial",
     "note": "Android only; basic notes and lists",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because it is an Android-only phone notes app, closer to Google Keep, with no desktop app or team wiki features."
     }
    },
    {
     "project": "xwiki",
     "fit": "partial",
     "note": "Heavy team wiki you host"
    },
    {
     "project": "yanknote",
     "fit": "partial",
     "note": "Markdown editor for tech users; no sync or phone app",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because it is a complete local Markdown notes app with document links, tags, full-text search and history, covering the main job of apps like Obsidian."
     }
    },
    {
     "project": "xournal",
     "fit": "partial",
     "note": "Handwriting and PDF markup only; phone app is a separate project"
    }
   ]
  },
  {
   "id": "tasks",
   "name": "Tasks & project boards",
   "category": "office",
   "job": "To-do lists, boards and project tracking",
   "closed": [
    "Trello",
    "Asana",
    "Jira",
    "Monday.com",
    "Todoist"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "plane",
     "fit": "full",
     "note": null
    },
    {
     "project": "openproject",
     "fit": "full",
     "note": null
    },
    {
     "project": "vikunja",
     "fit": "full",
     "note": null
    },
    {
     "project": "wekan",
     "fit": "full",
     "note": "Boards only",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because WeKan now offers calendar, Gantt, Scrum sprints and automation rules beyond boards, and updated the description to mention these views."
     }
    },
    {
     "project": "taiga",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Noted that this repository is the redesigned next version of Taiga rather than the established release."
     }
    },
    {
     "project": "bugzilla",
     "fit": "partial",
     "note": null
    },
    {
     "project": "kanboard",
     "fit": "full",
     "note": null
    },
    {
     "project": "leantime",
     "fit": "full",
     "note": null
    },
    {
     "project": "monomap",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Added that cross-device sync and sharing are paid hosted features, since the free version is local and single-user."
     }
    },
    {
     "project": "orbit",
     "fit": "full",
     "note": null
    },
    {
     "project": "redmine",
     "fit": "full",
     "note": null
    },
    {
     "project": "super-productivity",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "forms",
   "name": "Forms & surveys",
   "category": "office",
   "job": "Questionnaires and sign-up forms",
   "closed": [
    "Google Forms",
    "Typeform",
    "SurveyMonkey"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "limesurvey",
     "fit": "full",
     "note": null
    },
    {
     "project": "formbricks",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Replaced the vague 'free' wording with what the tool actually does and mentioned self-hosting, since some features need a paid enterprise key."
     }
    },
    {
     "project": "heyform",
     "fit": "full",
     "note": null
    },
    {
     "project": "formio",
     "fit": "partial",
     "note": null
    },
    {
     "project": "nextcloud-forms",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "scheduling",
   "name": "Calendar & scheduling",
   "category": "office",
   "job": "Calendars and booking meetings",
   "closed": [
    "Google Calendar",
    "Calendly",
    "Outlook Calendar",
    "Doodle"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "cal-com",
     "fit": "partial",
     "note": "Booking pages only; you host it, no calendar app",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because it replaces Calendly-style booking but is not a full calendar app, and added the project's non-production warning."
     }
    },
    {
     "project": "thunderbird",
     "fit": "partial",
     "note": "Desktop only; no phone calendar app",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Corrected the description because the page presents the Android app as email-only, so calendars are a desktop feature."
     }
    },
    {
     "project": "nextcloud-calendar",
     "fit": "full",
     "note": "Needs a Nextcloud server"
    },
    {
     "project": "fossify-calendar",
     "fit": "partial",
     "note": "Android only"
    },
    {
     "project": "etar-calendar",
     "fit": "partial",
     "note": "Android only"
    },
    {
     "project": "nextcloud-polls",
     "fit": "partial",
     "note": "Only for picking a date together, like Doodle"
    },
    {
     "project": "tymeslot",
     "fit": "partial",
     "note": "Booking pages only; you host it; young project",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because Tymeslot is a self-hosted booking tool like Calendly. It syncs with existing calendars but is not a calendar app itself, so it does not replace Google or Outlook Calendar."
     }
    }
   ]
  },
  {
   "id": "pdf",
   "name": "PDF tools",
   "category": "office",
   "job": "Reading, editing and signing PDFs",
   "closed": [
    "Adobe Acrobat"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "stirling-pdf",
     "fit": "full",
     "note": null
    },
    {
     "project": "okular",
     "fit": "partial",
     "note": "Reading and notes"
    },
    {
     "project": "pdf-arranger",
     "fit": "partial",
     "note": "Merge, split, reorder"
    },
    {
     "project": "offpdf",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full and updated the description because the app also covers editing text, annotations, form filling and OCR, which make up the core of what Acrobat is used for."
     }
    },
    {
     "project": "xournal",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "email",
   "name": "Email",
   "category": "office",
   "job": "Reading and sending email",
   "closed": [
    "Gmail",
    "Microsoft Outlook"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "thunderbird",
     "fit": "full",
     "note": "Desktop and Android apps; no iPhone app"
    },
    {
     "project": "roundcube",
     "fit": "partial",
     "note": "Inbox screen only; needs your own mail server",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Roundcube is a complete browser-based email client with folders, search and an address book, which covers the main job of reading and sending email."
     }
    },
    {
     "project": "mailspring",
     "fit": "partial",
     "note": "Desktop only; some features paid"
    },
    {
     "project": "fairemail",
     "fit": "partial",
     "note": "Android only"
    },
    {
     "project": "tuta",
     "fit": "full",
     "note": "Moves you to Tuta's own email service; other providers not supported",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Clarified that only the apps are open source and they work only with Tuta's hosted service."
     }
    }
   ]
  },
  {
   "id": "signing",
   "name": "Document signing",
   "category": "office",
   "job": "Sign documents online",
   "closed": [
    "DocuSign"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "documenso",
     "fit": "full",
     "note": null
    },
    {
     "project": "docuseal",
     "fit": "full",
     "note": null
    },
    {
     "project": "libresign",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full: it covers DocuSign's main job of sending documents to internal and external signers, setting signing order, sending reminders, and tracking and validating signatures, all self-hosted on Nextcloud."
     }
    }
   ]
  },
  {
   "id": "database-apps",
   "name": "Database apps",
   "category": "office",
   "job": "Building simple databases and tables, like a spreadsheet with more structure",
   "closed": [
    "Airtable"
   ],
   "source": "placement",
   "alternatives": [
    {
     "project": "apitable",
     "fit": "full",
     "note": null
    },
    {
     "project": "baserow",
     "fit": "full",
     "note": null
    },
    {
     "project": "rowy",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "team-chat",
   "name": "Team chat",
   "category": "social",
   "job": "Chat for workplaces and projects",
   "closed": [
    "Slack",
    "Microsoft Teams"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "zulip",
     "fit": "full",
     "note": null
    },
    {
     "project": "mattermost",
     "fit": "full",
     "note": null
    },
    {
     "project": "rocket-chat",
     "fit": "full",
     "note": null
    },
    {
     "project": "element",
     "fit": "full",
     "note": "Chat network (Matrix); some set-up needed"
    }
   ]
  },
  {
   "id": "community-chat",
   "name": "Community chat & voice",
   "category": "social",
   "job": "Servers with channels and voice rooms",
   "closed": [
    "Discord",
    "TeamSpeak"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "element",
     "fit": "partial",
     "note": "No drop-in voice rooms yet"
    },
    {
     "project": "mumble",
     "fit": "full",
     "note": "Voice only",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Mumble is a complete self-hosted equivalent of TeamSpeak, offering servers with voice channels, which is this group's main job."
     }
    },
    {
     "project": "spacebar",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "messaging",
   "name": "Messaging",
   "category": "social",
   "job": "Private messages and group chats on your phone",
   "closed": [
    "WhatsApp",
    "Telegram",
    "Facebook Messenger",
    "iMessage"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "signal",
     "fit": "full",
     "note": "Needs a phone number to sign up",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed the mention of web, since Signal offers Android, iOS and desktop apps but no web version."
     }
    },
    {
     "project": "simplex-chat",
     "fit": "full",
     "note": "No phone number needed; smaller network of users"
    },
    {
     "project": "delta-chat",
     "fit": "full",
     "note": "Works over email"
    },
    {
     "project": "element",
     "fit": "partial",
     "note": "Friends need Matrix accounts; less polished",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial and noted the separate phone apps, because this repository is the browser and desktop client, with mobile browsers only community-supported."
     }
    },
    {
     "project": "briar",
     "fit": "partial",
     "note": "Android only; for sensitive situations"
    },
    {
     "project": "snikket",
     "fit": "partial",
     "note": "You must run a server for your group",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Snikket is a complete self-hosted messaging service with phone apps for private and group chats."
     }
    },
    {
     "project": "tinode",
     "fit": "partial",
     "note": "Small user base; you host the server",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Tinode includes a server plus Android, iOS and web apps with private and group chats, voice and video calls, and channels, covering the main job of WhatsApp or Telegram."
     }
    }
   ]
  },
  {
   "id": "video-calls",
   "name": "Video calls",
   "category": "social",
   "job": "Meetings and calls with video",
   "closed": [
    "Zoom",
    "Google Meet",
    "Microsoft Teams"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "jitsi-meet",
     "fit": "full",
     "note": "Free public site or self-host; weaker for very big meetings"
    },
    {
     "project": "bigbluebutton",
     "fit": "partial",
     "note": "Built for classes; you host it"
    },
    {
     "project": "element-call",
     "fit": "partial",
     "note": "Needs a Matrix account; still maturing"
    },
    {
     "project": "jami",
     "fit": "partial",
     "note": "Quality drops in large groups"
    },
    {
     "project": "nextcloud-talk",
     "fit": "partial",
     "note": "Needs a Nextcloud server"
    },
    {
     "project": "galene",
     "fit": "partial",
     "note": "Plain interface; you host it",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Galene is a complete self-hosted videoconferencing system for browser-based group meetings."
     }
    }
   ]
  },
  {
   "id": "microblogging",
   "name": "Microblogging",
   "category": "social",
   "job": "Short public posts and follows",
   "closed": [
    "Twitter / X",
    "Threads"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "mastodon",
     "fit": "full",
     "note": null
    },
    {
     "project": "misskey",
     "fit": "full",
     "note": null
    },
    {
     "project": "bluesky",
     "fit": "full",
     "note": "The app is open; the main network is run by one company"
    },
    {
     "project": "friendica",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Friendica handles public posts and follows and federates with Mastodon, which covers the main job of Twitter/X and Threads."
     }
    }
   ]
  },
  {
   "id": "forums",
   "name": "Forums & link sharing",
   "category": "social",
   "job": "Communities, threads and voting",
   "closed": [
    "Reddit"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "lemmy",
     "fit": "full",
     "note": null
    },
    {
     "project": "piefed",
     "fit": "full",
     "note": null
    },
    {
     "project": "mbin",
     "fit": "full",
     "note": null
    },
    {
     "project": "discourse",
     "fit": "partial",
     "note": "Forum for one community"
    }
   ]
  },
  {
   "id": "photo-sharing",
   "name": "Photo sharing",
   "category": "social",
   "job": "Sharing photos with followers",
   "closed": [
    "Instagram"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "pixelfed",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "video-sharing",
   "name": "Video sharing",
   "category": "social",
   "job": "Posting and watching videos",
   "closed": [
    "YouTube",
    "TikTok"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "peertube",
     "fit": "full",
     "note": null
    },
    {
     "project": "loops",
     "fit": "partial",
     "note": "Short videos; early"
    },
    {
     "project": "freetube",
     "fit": "partial",
     "note": "A private way to watch YouTube"
    },
    {
     "project": "newpipe",
     "fit": "partial",
     "note": "A private way to watch YouTube on Android"
    }
   ]
  },
  {
   "id": "blogging",
   "name": "Blogs & newsletters",
   "category": "social",
   "job": "Publishing writing and email newsletters",
   "closed": [
    "Medium",
    "Substack"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "ghost",
     "fit": "full",
     "note": null
    },
    {
     "project": "writefreely",
     "fit": "partial",
     "note": "Blogging only"
    },
    {
     "project": "wordpress",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because WordPress handles blog publishing well, but email newsletters and paid subscriptions like Substack's are not built in and need add-ons."
     }
    },
    {
     "project": "btw",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "The description only mentioned the hosted sign-up, so I added the self-hosted option; fit stays partial because it has no email newsletter features."
     }
    },
    {
     "project": "plume",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Rewrote the description to say who it is for and to note that it lacks email newsletters, which is why the fit stays partial."
     }
    }
   ]
  },
  {
   "id": "pro-network",
   "name": "Professional networking",
   "category": "social",
   "job": "Profiles, jobs and work contacts",
   "closed": [
    "LinkedIn"
   ],
   "source": "starter",
   "alternatives": []
  },
  {
   "id": "dating",
   "name": "Dating",
   "category": "social",
   "job": "Meet people for dating",
   "closed": [
    "Grindr",
    "Badoo",
    "Lovoo"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "alovoa",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "events",
   "name": "Events & meetups",
   "category": "social",
   "job": "Organize and manage events",
   "closed": [
    "MeetUp",
    "EasyChair"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "gathio",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial: Gathio handles simple event pages and RSVPs, but not Meetup-style group discovery or EasyChair-style conference paper management."
     }
    },
    {
     "project": "indico",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Indico covers the group's main job of organizing and managing events, including EasyChair-style abstract and paper reviewing plus registration."
     }
    }
   ]
  },
  {
   "id": "social-scheduling",
   "name": "Social media scheduling",
   "category": "social",
   "job": "Planning and scheduling posts across social networks",
   "closed": [
    "Buffer",
    "Hootsuite"
   ],
   "source": "placement",
   "alternatives": [
    {
     "project": "openpost",
     "fit": "full",
     "note": null
    },
    {
     "project": "postiz",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "photo-editing",
   "name": "Photo editing",
   "category": "creative",
   "job": "Retouching and adjusting photos",
   "closed": [
    "Adobe Photoshop",
    "Adobe Lightroom",
    "Affinity Photo"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "gimp",
     "fit": "full",
     "note": "Different layout from Photoshop; no Lightroom-style library"
    },
    {
     "project": "darktable",
     "fit": "full",
     "note": "Raw photos, like Lightroom"
    },
    {
     "project": "rawtherapee",
     "fit": "partial",
     "note": "Raw development only; weaker photo library",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because RawTherapee handles raw development and photo adjustments like Lightroom's editing side, but not layer-based retouching like Photoshop or photo library management."
     }
    },
    {
     "project": "krita",
     "fit": "partial",
     "note": "Made for painting; weak at photo retouching"
    },
    {
     "project": "digikam",
     "fit": "partial",
     "note": "Sorting and light edits; not retouching"
    },
    {
     "project": "pinta",
     "fit": "partial",
     "note": "Simple edits only"
    }
   ]
  },
  {
   "id": "painting",
   "name": "Digital painting",
   "category": "creative",
   "job": "Drawing and painting",
   "closed": [
    "Procreate",
    "Clip Studio Paint",
    "Adobe Photoshop"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "krita",
     "fit": "full",
     "note": null
    },
    {
     "project": "mypaint",
     "fit": "partial",
     "note": "Simpler than Procreate; no text or animation",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because MyPaint covers the group's main job of drawing and painting, with configurable brushes, layers and tablet support."
     }
    }
   ]
  },
  {
   "id": "illustration",
   "name": "Illustration & vector",
   "category": "creative",
   "job": "Logos, icons and vector drawings",
   "closed": [
    "Adobe Illustrator",
    "Affinity Designer",
    "CorelDRAW"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "inkscape",
     "fit": "full",
     "note": null
    },
    {
     "project": "graphite",
     "fit": "partial",
     "note": "Early alpha; expect missing tools",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed layout building and image editing as current uses, since the page lists photo editing and desktop publishing as planned roadmap items."
     }
    }
   ]
  },
  {
   "id": "ui-design",
   "name": "Interface design",
   "category": "creative",
   "job": "Designing apps and websites",
   "closed": [
    "Figma",
    "Sketch",
    "Adobe XD"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "penpot",
     "fit": "full",
     "note": null
    },
    {
     "project": "plasmic",
     "fit": "partial",
     "note": "Builds live web pages, not design mockups"
    },
    {
     "project": "quant-ux",
     "fit": "partial",
     "note": "Clickable prototypes and user testing; basic drawing"
    }
   ]
  },
  {
   "id": "graphic-design",
   "name": "Graphic design & templates",
   "category": "creative",
   "job": "Posters, social posts and slides from templates",
   "closed": [
    "Canva",
    "Adobe Express"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "penpot",
     "fit": "partial",
     "note": "No template library like Canva's"
    }
   ]
  },
  {
   "id": "layout",
   "name": "Page layout",
   "category": "creative",
   "job": "Magazines, flyers and books",
   "closed": [
    "Adobe InDesign",
    "Affinity Publisher"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "scribus",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "video-editing",
   "name": "Video editing",
   "category": "creative",
   "job": "Cutting and editing videos",
   "closed": [
    "Adobe Premiere Pro",
    "Final Cut Pro",
    "CapCut",
    "DaVinci Resolve",
    "Vegas Pro"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "kdenlive",
     "fit": "full",
     "note": null
    },
    {
     "project": "shotcut",
     "fit": "full",
     "note": null
    },
    {
     "project": "openshot",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Rewrote the description to say it is open source and to drop the unsupported \"simple but capable\" judgment."
     }
    },
    {
     "project": "losslesscut",
     "fit": "partial",
     "note": null
    },
    {
     "project": "opencut",
     "fit": "partial",
     "note": "Early; fewer features than CapCut"
    }
   ]
  },
  {
   "id": "3d",
   "name": "3D & motion graphics",
   "category": "creative",
   "job": "3D models, animation and visual effects",
   "closed": [
    "Autodesk Maya",
    "Cinema 4D",
    "Adobe After Effects",
    "3ds Max"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "blender",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed the comparison to paid tools and added that it is open source and supports sculpting, as the page shows."
     }
    },
    {
     "project": "natron",
     "fit": "partial",
     "note": "Compositing only"
    },
    {
     "project": "friction",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "audio",
   "name": "Audio & music making",
   "category": "creative",
   "job": "Recording, editing and making music",
   "closed": [
    "Adobe Audition",
    "GarageBand",
    "FL Studio",
    "Ableton Live"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "audacity",
     "fit": "partial",
     "note": "Editing recordings",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because Audacity records and edits audio like Audition but lacks the MIDI and instrument tools of GarageBand, FL Studio or Ableton, and dropped the 'easy-to-use' claim."
     }
    },
    {
     "project": "ardour",
     "fit": "full",
     "note": "Recording studio"
    },
    {
     "project": "lmms",
     "fit": "partial",
     "note": "Making beats",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed the recording claim the page doesn't support and set fit to partial, since LMMS covers composing and beat-making but not audio recording or editing like Audition."
     }
    }
   ]
  },
  {
   "id": "recording",
   "name": "Screen recording & streaming",
   "category": "creative",
   "job": "Recording your screen and live streaming",
   "closed": [
    "Loom",
    "Camtasia",
    "Streamlabs"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "obs-studio",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "icons",
   "name": "Icon libraries",
   "category": "creative",
   "job": "Free icons for designs",
   "closed": [
    "Noun Project"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "bootstrap",
     "fit": "partial",
     "note": null
    },
    {
     "project": "tabler-icons",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "desktop-os",
   "name": "Computer operating systems",
   "category": "os",
   "job": "What runs your laptop or desktop",
   "closed": [
    "Microsoft Windows",
    "macOS"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "linux-mint",
     "fit": "full",
     "note": "Closest to Windows"
    },
    {
     "project": "fedora",
     "fit": "full",
     "note": "New versions every 6 months; fast-moving"
    },
    {
     "project": "ubuntu",
     "fit": "full",
     "note": null
    },
    {
     "project": "debian",
     "fit": "full",
     "note": "Very stable but older app versions; less beginner-friendly"
    },
    {
     "project": "arch-linux",
     "fit": "full",
     "note": "For experienced users: you set up every part"
    },
    {
     "project": "cachyos",
     "fit": "full",
     "note": "Rolling updates; best for people comfortable fixing things"
    },
    {
     "project": "pop-os",
     "fit": "full",
     "note": "Good for newer laptops and graphics cards"
    },
    {
     "project": "bazzite",
     "fit": "full",
     "note": "Great for gaming; updates apply safely"
    }
   ]
  },
  {
   "id": "phone-os",
   "name": "Phone operating systems",
   "category": "os",
   "job": "What runs your phone",
   "closed": [
    "Google Android",
    "Apple iOS"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "grapheneos",
     "fit": "full",
     "note": "Pixel phones only; you install it yourself"
    },
    {
     "project": "lineageos",
     "fit": "full",
     "note": "You install it yourself; Google apps are an optional add-on"
    },
    {
     "project": "e-os",
     "fit": "full",
     "note": "Some bank apps may not work; also sold pre-installed"
    },
    {
     "project": "postmarketos",
     "fit": "partial",
     "note": "Calls, camera or mobile data may not work on most phones"
    },
    {
     "project": "ubuntu-touch",
     "fit": "partial",
     "note": "Works on a short list of phones; few apps"
    }
   ]
  },
  {
   "id": "app-stores",
   "name": "App stores",
   "category": "os",
   "job": "Finding and installing phone apps",
   "closed": [
    "Google Play Store",
    "Apple App Store"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "f-droid",
     "fit": "full",
     "note": "Open-source apps only"
    },
    {
     "project": "aurora-store",
     "fit": "partial",
     "note": "A private way to use Google Play"
    },
    {
     "project": "accrescent",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial and noted early alpha status, because the project calls itself early alpha and offers far fewer apps than the closed stores."
     }
    },
    {
     "project": "fossdroid",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Clarified that this repo is self-hostable website code for browsing F-Droid apps, not an installer, and that it lacks the site's screenshot scraping and popularity data."
     }
    },
    {
     "project": "obtainium",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "keyboards",
   "name": "Phone keyboards",
   "category": "os",
   "job": "Typing on your phone",
   "closed": [
    "Gboard",
    "SwiftKey"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "florisboard",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial and updated the description because the project page says it is in beta and lacks word suggestions and spell checking, which are core features of Gboard and SwiftKey."
     }
    },
    {
     "project": "heliboard",
     "fit": "full",
     "note": null
    },
    {
     "project": "anysoftkeyboard",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because it is a complete Android keyboard with word suggestions, autocorrect, gesture typing, voice input and emoji, which covers the main job of Gboard and SwiftKey."
     }
    },
    {
     "project": "indic-keyboard",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because it is a complete Android keyboard that types in English and 23 languages, which is the main job of Gboard and SwiftKey."
     }
    },
    {
     "project": "openboard",
     "fit": "full",
     "note": null
    },
    {
     "project": "simple-keyboard",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "remote-desktop",
   "name": "Remote desktop",
   "category": "os",
   "job": "Control another computer remotely",
   "closed": [
    "TeamViewer",
    "AnyDesk"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "meshcentral",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because MeshCentral is a complete self-hosted remote desktop tool with remote screen control, terminal and file access, covering the main job of TeamViewer and AnyDesk."
     }
    },
    {
     "project": "rustdesk",
     "fit": "full",
     "note": null
    },
    {
     "project": "ultravnc",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because it covers the core job of viewing and controlling another Windows PC, including file transfer and no-install help-desk support through Single Click, though the computer being controlled must run Windows."
     }
    }
   ]
  },
  {
   "id": "browsers",
   "name": "Web browsers",
   "category": "web",
   "job": "Browsing the web",
   "closed": [
    "Google Chrome",
    "Safari",
    "Microsoft Edge"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "firefox",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed the promotional word \"fast\" and the \"on computers\" limit, since Firefox also runs on phones."
     }
    },
    {
     "project": "librewolf",
     "fit": "full",
     "note": null
    },
    {
     "project": "brave",
     "fit": "full",
     "note": null
    },
    {
     "project": "zen-browser",
     "fit": "full",
     "note": "Based on Firefox; no phone version"
    },
    {
     "project": "ungoogled-chromium",
     "fit": "partial",
     "note": "No built-in sync; updates arrive slower"
    },
    {
     "project": "tor-browser",
     "fit": "partial",
     "note": "Slower; built for anonymity, not daily use"
    }
   ]
  },
  {
   "id": "search",
   "name": "Search engines",
   "category": "web",
   "job": "Searching the web",
   "closed": [
    "Google Search",
    "Bing"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "searxng",
     "fit": "partial",
     "note": "Combines other engines' results"
    },
    {
     "project": "yacy",
     "fit": "partial",
     "note": "Its own index; smaller"
    },
    {
     "project": "librengine",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "passwords",
   "name": "Password managers",
   "category": "web",
   "job": "Storing and filling passwords",
   "closed": [
    "1Password",
    "LastPass",
    "Dashlane"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "bitwarden",
     "fit": "full",
     "note": null
    },
    {
     "project": "keepassxc",
     "fit": "partial",
     "note": "Offline file you sync yourself; no phone app",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "The old description said the file stays on your device, but the page says it can be stored anywhere, including cloud storage; it also left out password filling."
     }
    },
    {
     "project": "vaultwarden",
     "fit": "full",
     "note": "Needs your own server; uses Bitwarden apps"
    },
    {
     "project": "keepassdx",
     "fit": "partial",
     "note": "Android only; you sync the file yourself"
    },
    {
     "project": "aliasvault",
     "fit": "partial",
     "note": "Young project; smaller feature set"
    },
    {
     "project": "padloc",
     "fit": "partial",
     "note": "Less polished; smaller community"
    },
    {
     "project": "passbolt",
     "fit": "partial",
     "note": "Built for teams; you host it",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Passbolt stores passwords and fills them through browser extensions and mobile apps, which is the main job of 1Password, LastPass and Dashlane."
     }
    }
   ]
  },
  {
   "id": "2fa",
   "name": "Two-factor codes",
   "category": "web",
   "job": "Login codes for two-step sign-in",
   "closed": [
    "Google Authenticator",
    "Authy"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "aegis",
     "fit": "full",
     "note": "Android"
    },
    {
     "project": "ente-auth",
     "fit": "full",
     "note": null
    },
    {
     "project": "2fas",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "identity-proofs",
   "name": "Online identity proofs",
   "category": "web",
   "job": "Prove which online accounts are yours",
   "closed": [
    "Keybase"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "keyoxide",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Keyoxide does the group's main job, proving which online accounts are yours, and can be fully self-hosted; Keybase's chat and file features fall outside this group."
     }
    }
   ]
  },
  {
   "id": "security-scanning",
   "name": "Security scanning",
   "category": "web",
   "job": "Find and track security weaknesses",
   "closed": [
    "Plextrac",
    "Vulcan",
    "Tenable Nessus",
    "Prisma Cloud"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "deepfence-threatmapper",
     "fit": "partial",
     "note": null
    },
    {
     "project": "faraday",
     "fit": "partial",
     "note": null
    },
    {
     "project": "nuclei",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "vpn",
   "name": "VPN & private networks",
   "category": "web",
   "job": "Connect devices over a private network",
   "closed": [
    "OpenVPN Access Server",
    "Tailscale",
    "OpenVPN",
    "AWS VPC"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "gravitl",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because the open-source version is a complete self-hosted WireGuard VPN with mesh networks, remote access gateways and site-to-site links, the main job of Tailscale and OpenVPN."
     }
    },
    {
     "project": "netbird",
     "fit": "full",
     "note": null
    },
    {
     "project": "omniedge",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because it is a complete Tailscale-style mesh VPN with a self-hosted mode, and removed phones since the page lists only Linux, macOS, Windows and OpenWrt."
     }
    }
   ]
  },
  {
   "id": "link-shortening",
   "name": "Link shortening",
   "category": "web",
   "job": "Make short links",
   "closed": [
    "Bitly"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "dub",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Clarified that it can be self-hosted, which matters for an open-source listing, and tightened the wording."
     }
    },
    {
     "project": "kutt",
     "fit": "full",
     "note": null
    },
    {
     "project": "shlink",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Shlink is a complete self-hosted URL shortener with custom domains, click statistics and a web client, covering Bitly's main job."
     }
    },
    {
     "project": "yourls",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "ai-chat",
   "name": "AI chat apps",
   "category": "ai",
   "job": "Chatting with an AI assistant",
   "closed": [
    "ChatGPT",
    "Claude",
    "Google Gemini"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "jan",
     "fit": "full",
     "note": "Runs on your computer; needs a capable machine"
    },
    {
     "project": "librechat",
     "fit": "full",
     "note": "You host it; bring your own AI accounts"
    },
    {
     "project": "ollama",
     "fit": "partial",
     "note": "Runs models; chat window is basic"
    },
    {
     "project": "youcoded",
     "fit": "full",
     "note": "Desktop and Android app; any AI model"
    },
    {
     "project": "chatbox-community-edition",
     "fit": "full",
     "note": "Bring your own AI key or local model"
    },
    {
     "project": "anythingllm",
     "fit": "partial",
     "note": "Aimed at chatting with your own documents"
    },
    {
     "project": "leon",
     "fit": "partial",
     "note": "Early; for tinkerers"
    }
   ]
  },
  {
   "id": "ai-coding",
   "name": "AI coding assistants",
   "category": "ai",
   "job": "AI help writing and changing code",
   "closed": [
    "GitHub Copilot",
    "Cursor",
    "Windsurf",
    "Claude Code",
    "OpenAI Codex app"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "cline",
     "fit": "full",
     "note": "Works inside VS Code; you pay for the AI"
    },
    {
     "project": "aider",
     "fit": "full",
     "note": "Terminal only; you pay for the AI"
    },
    {
     "project": "openhands",
     "fit": "partial",
     "note": "Runs agents; heavier set-up"
    },
    {
     "project": "codex-cli",
     "fit": "full",
     "note": "Terminal only; needs an OpenAI plan or key",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Clarified that the tool runs locally but relies on OpenAI's online models through a ChatGPT plan or API key."
     }
    },
    {
     "project": "youcoded",
     "fit": "full",
     "note": "Desktop and Android app; any AI model"
    },
    {
     "project": "opencode",
     "fit": "full",
     "note": "Terminal and desktop app; any AI model"
    },
    {
     "project": "gemini-cli",
     "fit": "full",
     "note": "Terminal only"
    },
    {
     "project": "kilo-code",
     "fit": "full",
     "note": "Works inside VS Code; you pay for the AI"
    },
    {
     "project": "zed",
     "fit": "partial",
     "note": "Code editor with built-in AI; for programmers"
    },
    {
     "project": "tabby",
     "fit": "partial",
     "note": "Self-hosted code suggestions; you run the server"
    }
   ]
  },
  {
   "id": "ai-agents",
   "name": "AI agents for everyday work",
   "category": "ai",
   "job": "An AI assistant that works on your files and apps for you",
   "closed": [
    "Claude Cowork",
    "ChatGPT agent"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "youcoded",
     "fit": "full",
     "note": "Desktop and Android app; any AI model"
    },
    {
     "project": "goose",
     "fit": "full",
     "note": "Desktop app and terminal"
    },
    {
     "project": "open-interpreter",
     "fit": "partial",
     "note": "Terminal only; aimed at programmers"
    },
    {
     "project": "openclaw",
     "fit": "partial",
     "note": "Set-up needs a terminal; runs with broad access to your computer"
    },
    {
     "project": "hermes-agent",
     "fit": "partial",
     "note": "Terminal set-up; for technical users"
    }
   ]
  },
  {
   "id": "ai-images",
   "name": "AI image generation",
   "category": "ai",
   "job": "Making images from text",
   "closed": [
    "Midjourney",
    "DALL·E"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "comfyui",
     "fit": "full",
     "note": null
    },
    {
     "project": "invokeai",
     "fit": "full",
     "note": null
    },
    {
     "project": "stable-diffusion-web-ui",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "transcription",
   "name": "Transcription",
   "category": "ai",
   "job": "Turning speech into text",
   "closed": [
    "Otter.ai",
    "Rev"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "buzz",
     "fit": "full",
     "note": null
    },
    {
     "project": "whisper-cpp",
     "fit": "partial",
     "note": "For developers"
    },
    {
     "project": "whisper",
     "fit": "partial",
     "note": "For developers"
    }
   ]
  },
  {
   "id": "ai-search",
   "name": "AI search",
   "category": "ai",
   "job": "Asking questions answered from the web",
   "closed": [
    "Perplexity"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "vane-formerly-perplexica",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "ml-platforms",
   "name": "Machine learning platforms",
   "category": "ai",
   "job": "Build and run AI models and apps",
   "closed": [
    "AWS SageMaker",
    "AWS Kendra",
    "QnA Maker"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "cortex",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Added that the project is no longer actively maintained, as its page states."
     }
    },
    {
     "project": "deepset",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "music",
   "name": "Music streaming",
   "category": "media",
   "job": "Listening to music",
   "closed": [
    "Spotify",
    "Apple Music"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "navidrome",
     "fit": "partial",
     "note": "Plays only music files you own; no catalog"
    },
    {
     "project": "funkwhale",
     "fit": "partial",
     "note": "Plays only music you upload or others share; no catalog"
    }
   ]
  },
  {
   "id": "home-media",
   "name": "Home media server",
   "category": "media",
   "job": "Streaming your own films and shows",
   "closed": [
    "Plex",
    "Emby"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "jellyfin",
     "fit": "full",
     "note": null
    },
    {
     "project": "kodi",
     "fit": "partial",
     "note": "Player, not a server"
    }
   ]
  },
  {
   "id": "photo-backup",
   "name": "Photo backup & library",
   "category": "media",
   "job": "Backing up and browsing your photos",
   "closed": [
    "Google Photos",
    "iCloud Photos"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "immich",
     "fit": "full",
     "note": null
    },
    {
     "project": "ente-photos",
     "fit": "full",
     "note": null
    },
    {
     "project": "photoprism",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "podcasts",
   "name": "Podcasts",
   "category": "media",
   "job": "Following and playing podcasts",
   "closed": [
    "Apple Podcasts",
    "Spotify"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "antennapod",
     "fit": "full",
     "note": null
    },
    {
     "project": "pocket-casts",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "books",
   "name": "E-books & audiobooks",
   "category": "media",
   "job": "Reading e-books and listening to audiobooks",
   "closed": [
    "Amazon Kindle",
    "Audible",
    "Goodreads"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "calibre",
     "fit": "partial",
     "note": "Library and reader",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because Calibre manages and reads e-books but does not play audiobooks, which is part of this group's job."
     }
    },
    {
     "project": "koreader",
     "fit": "partial",
     "note": "E-reader app",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because it handles e-book reading but not audiobooks or book tracking, and clarified that desktop support is Linux only."
     }
    },
    {
     "project": "audiobookshelf",
     "fit": "full",
     "note": "Your own audiobooks"
    },
    {
     "project": "inventaire",
     "fit": "partial",
     "note": null
    },
    {
     "project": "open-library",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "live-streaming",
   "name": "Live streaming",
   "category": "media",
   "job": "Streaming live video to an audience",
   "closed": [
    "Twitch",
    "YouTube Live"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "owncast",
     "fit": "full",
     "note": "You run it yourself"
    },
    {
     "project": "peertube",
     "fit": "partial",
     "note": "Live streams are part of a video site"
    }
   ]
  },
  {
   "id": "feeds",
   "name": "News feeds & read-it-later",
   "category": "media",
   "job": "Follow sites and save articles to read",
   "closed": [
    "Feedly",
    "Inoreader",
    "Google News",
    "Pocket"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "fluent-reader",
     "fit": "full",
     "note": null
    },
    {
     "project": "freshrss",
     "fit": "full",
     "note": null
    },
    {
     "project": "miniflux",
     "fit": "full",
     "note": null
    },
    {
     "project": "newsboat",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Newsboat is a complete feed reader that does the main job of Feedly and Inoreader, even though it runs only in a terminal."
     }
    },
    {
     "project": "netnewswire",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed the podcasts claim, which the page doesn't support, and noted it is Apple-only; it stays partial because it is a feed reader with no read-it-later saving like Pocket."
     }
    },
    {
     "project": "wallabag",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because wallabag replaces read-it-later apps like Pocket but does not follow sites or feeds like Feedly or Inoreader."
     }
    }
   ]
  },
  {
   "id": "phone-gallery",
   "name": "Phone photo gallery",
   "category": "media",
   "job": "Browsing the photos and videos on your phone",
   "closed": [
    "Samsung Gallery",
    "Xiaomi Gallery",
    "Huawei Gallery"
   ],
   "source": "placement",
   "alternatives": [
    {
     "project": "aves",
     "fit": "partial",
     "note": null
    },
    {
     "project": "fossify-gallery",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "cloud-storage",
   "name": "Cloud storage & sync",
   "category": "files",
   "job": "Keeping files in sync across devices",
   "closed": [
    "Dropbox",
    "Google Drive",
    "Microsoft OneDrive",
    "iCloud Drive"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "nextcloud",
     "fit": "full",
     "note": "Needs a server or a hosting provider"
    },
    {
     "project": "seafile",
     "fit": "full",
     "note": null
    },
    {
     "project": "owncloud-infinite-scale",
     "fit": "full",
     "note": "Needs your own server"
    },
    {
     "project": "syncthing",
     "fit": "partial",
     "note": "No web access or share links; devices sync directly"
    },
    {
     "project": "filestash",
     "fit": "partial",
     "note": "Browser front-end for storage you already have",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because the page describes a browser file manager plus native clients that sync a folder across Mac, Windows, Linux and Android, which covers the main job of Dropbox-style apps."
     }
    },
    {
     "project": "owncloud",
     "fit": "partial",
     "note": "Older version; moving to Infinite Scale",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because ownCloud is a complete self-hosted file storage, sync and sharing server that does the main job of Dropbox or Google Drive."
     }
    }
   ]
  },
  {
   "id": "file-transfer",
   "name": "Sending big files",
   "category": "files",
   "job": "Sending a file too big for email",
   "closed": [
    "WeTransfer"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "localsend",
     "fit": "partial",
     "note": "Nearby devices only"
    },
    {
     "project": "psitransfer",
     "fit": "full",
     "note": "Needs a server"
    }
   ]
  },
  {
   "id": "backup",
   "name": "Backup",
   "category": "files",
   "job": "Backing up a computer",
   "closed": [
    "Backblaze",
    "Time Machine"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "restic",
     "fit": "full",
     "note": "For technical users"
    },
    {
     "project": "borgbackup",
     "fit": "full",
     "note": "For technical users"
    },
    {
     "project": "duplicati",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "maps",
   "name": "Maps & navigation",
   "category": "everyday",
   "job": "Maps, directions and places",
   "closed": [
    "Google Maps",
    "Apple Maps"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "organic-maps",
     "fit": "full",
     "note": "Offline maps; no live traffic",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed the claim that it runs on computers, since the page only lists phone app stores."
     }
    },
    {
     "project": "comaps",
     "fit": "full",
     "note": "Offline maps; no live traffic"
    },
    {
     "project": "osmand",
     "fit": "full",
     "note": "Powerful but busy interface; some features paid"
    },
    {
     "project": "openstreetmap",
     "fit": "partial",
     "note": "Web map with basic directions; no phone navigation app"
    }
   ]
  },
  {
   "id": "translation",
   "name": "Translation",
   "category": "everyday",
   "job": "Translating text",
   "closed": [
    "Google Translate",
    "DeepL"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "libretranslate",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "smart-home",
   "name": "Smart home",
   "category": "everyday",
   "job": "Controlling lights and devices at home",
   "closed": [
    "Google Home",
    "Amazon Alexa",
    "SmartThings"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "home-assistant",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "budgeting",
   "name": "Budgeting & personal finance",
   "category": "everyday",
   "job": "Tracking spending, budgets and savings",
   "closed": [
    "YNAB",
    "Monarch Money",
    "Quicken",
    "Empower Personal Wealth"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "actual-budget",
     "fit": "full",
     "note": null
    },
    {
     "project": "firefly-iii",
     "fit": "full",
     "note": "You run it yourself"
    },
    {
     "project": "ghostfolio",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "speed-test",
   "name": "Internet speed test",
   "category": "everyday",
   "job": "Check your internet speed",
   "closed": [
    "Speedtest.net"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "librespeed",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because LibreSpeed does the main job of Speedtest.net, measuring download, upload, ping and jitter, and it has a public instance plus self-hosting."
     }
    }
   ]
  },
  {
   "id": "shared-expenses",
   "name": "Shared expenses",
   "category": "everyday",
   "job": "Split bills with friends",
   "closed": [
    "Splitwise"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "spliit-app",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "code-hosting",
   "name": "Code hosting",
   "category": "dev",
   "job": "Hosting code and collaborating on it",
   "closed": [
    "GitHub"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "forgejo",
     "fit": "full",
     "note": null
    },
    {
     "project": "gitea",
     "fit": "full",
     "note": null
    },
    {
     "project": "gitlab-community-edition",
     "fit": "full",
     "note": null
    },
    {
     "project": "gerrit",
     "fit": "partial",
     "note": null
    },
    {
     "project": "gogs",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Gogs is a complete self-hosted Git service with repositories, issues, pull requests, wikis and organizations, which covers GitHub's main job."
     }
    },
    {
     "project": "gitlab",
     "fit": "full",
     "note": null
    },
    {
     "project": "pagure",
     "fit": "full",
     "note": null
    },
    {
     "project": "review-board",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "analytics",
   "name": "Website analytics",
   "category": "dev",
   "job": "Counting website visitors",
   "closed": [
    "Google Analytics"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "plausible",
     "fit": "full",
     "note": null
    },
    {
     "project": "umami",
     "fit": "full",
     "note": null
    },
    {
     "project": "matomo",
     "fit": "full",
     "note": null
    },
    {
     "project": "goatcounter",
     "fit": "full",
     "note": null
    },
    {
     "project": "openwebanalytics",
     "fit": "full",
     "note": null
    },
    {
     "project": "prisme-analytics",
     "fit": "full",
     "note": null
    },
    {
     "project": "shynet",
     "fit": "full",
     "note": null
    },
    {
     "project": "trench",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "shop",
   "name": "Online stores",
   "category": "dev",
   "job": "Selling things online",
   "closed": [
    "Shopify"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "woocommerce",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Rewrote the description to describe the store software for shop owners rather than only the developer code repository."
     }
    },
    {
     "project": "medusa",
     "fit": "full",
     "note": "For developers"
    },
    {
     "project": "saleor",
     "fit": "full",
     "note": "For developers"
    },
    {
     "project": "bagisto",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Dropped the marketplace claim because multi-seller marketplace features are a separate add-on sold by the developer, not part of the open-source core."
     }
    },
    {
     "project": "litekart",
     "fit": "partial",
     "note": null
    },
    {
     "project": "presta",
     "fit": "full",
     "note": null
    },
    {
     "project": "shuup",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Shuup is a complete self-hosted e-commerce platform with a storefront and admin for products and orders, covering Shopify's main job."
     }
    },
    {
     "project": "sylius",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Sylius ships a working storefront, checkout and admin panel for running a self-hosted shop, even though it needs a developer to set up."
     }
    },
    {
     "project": "vendure",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "support",
   "name": "Customer support",
   "category": "dev",
   "job": "Answering customers by chat and email",
   "closed": [
    "Zendesk",
    "Intercom"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "chatwoot",
     "fit": "full",
     "note": null
    },
    {
     "project": "zammad",
     "fit": "full",
     "note": null
    },
    {
     "project": "papercups",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because it covers the group's core job, answering customers by live chat and email with shared conversation management, as a self-hosted tool."
     }
    },
    {
     "project": "uvdesk",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because UVDesk handles email tickets and a support portal but has no built-in live chat, which is a core part of this group's job."
     }
    }
   ]
  },
  {
   "id": "automation",
   "name": "Automation",
   "category": "dev",
   "job": "Connecting apps so tasks run by themselves",
   "closed": [
    "Zapier",
    "Make"
   ],
   "source": "starter",
   "alternatives": [
    {
     "project": "node-red",
     "fit": "full",
     "note": null
    },
    {
     "project": "activepieces",
     "fit": "full",
     "note": null
    },
    {
     "project": "huginn",
     "fit": "full",
     "note": "For technical users",
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Huginn is a self-hosted Zapier-style tool that connects services through triggers and actions, which is the group's main job; the existing 'for technical users' note already covers its harder setup."
     }
    },
    {
     "project": "automatisch",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "app-hosting",
   "name": "App hosting & deployment",
   "category": "dev",
   "job": "Put your web apps online",
   "closed": [
    "Heroku",
    "Fly",
    "Render",
    "Netlify",
    "Vercel"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "abilian-hop3",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because it is a self-hosted platform-as-a-service that covers the main deployment job, and added a note that it is still early-stage."
     }
    },
    {
     "project": "abilian-nua",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because it builds, deploys, updates, backs up and logs apps like the closed platforms, and noted that the project itself says it is not production-ready."
     }
    },
    {
     "project": "coolify",
     "fit": "full",
     "note": null
    },
    {
     "project": "caprover",
     "fit": "full",
     "note": null
    },
    {
     "project": "dokku",
     "fit": "full",
     "note": null
    },
    {
     "project": "dyrector-io",
     "fit": "partial",
     "note": null
    },
    {
     "project": "kubero",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because Kubero is a complete self-hosted Heroku-style platform with git deploys, review apps, pipelines, add-ons and logs."
     }
    },
    {
     "project": "otomi",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Upgraded fit to full because it builds, deploys and publicly exposes apps on your own infrastructure; updated the description to mention the rename and removed the 'Heroku-style' claim, which the page does not make."
     }
    },
    {
     "project": "peon",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "api-tools",
   "name": "API tools",
   "category": "dev",
   "job": "Build, test and manage APIs",
   "closed": [
    "apigee",
    "Postman",
    "Checkly"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "apache-apisix",
     "fit": "partial",
     "note": null
    },
    {
     "project": "firecamp",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed 'documenting' because API documentation is only on the project's roadmap, and named the supported API types."
     }
    },
    {
     "project": "fusio",
     "fit": "partial",
     "note": null
    },
    {
     "project": "hoppscotch",
     "fit": "full",
     "note": null
    },
    {
     "project": "insomnia",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "The page describes a desktop app, not a web app, and says most features require an account, so the description was corrected."
     }
    },
    {
     "project": "step-ci",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "internal-tools",
   "name": "Internal tool builders",
   "category": "dev",
   "job": "Build admin panels and internal apps quickly",
   "closed": [
    "Retool"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "appsmith",
     "fit": "full",
     "note": null
    },
    {
     "project": "budibase",
     "fit": "full",
     "note": null
    },
    {
     "project": "dashpress",
     "fit": "partial",
     "note": null
    },
    {
     "project": "illa",
     "fit": "full",
     "note": null
    },
    {
     "project": "lowdefy",
     "fit": "partial",
     "note": null
    },
    {
     "project": "openblocks",
     "fit": "full",
     "note": null
    },
    {
     "project": "tooljet",
     "fit": "full",
     "note": null
    },
    {
     "project": "windmill",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "databases",
   "name": "Databases",
   "category": "dev",
   "job": "Store and query data",
   "closed": [
    "Firebase",
    "Kdb+",
    "TigerGraph",
    "Amazon Neptune",
    "Amazon Aurora",
    "Google Cloud Spanner",
    "Elastic Cloud",
    "Algolia",
    "Snowflake"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "appwrite",
     "fit": "full",
     "note": null
    },
    {
     "project": "acebase",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because AceBase is a complete self-hosted database with queries, indexes and realtime updates, which is the group's main job."
     }
    },
    {
     "project": "cratedb",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because CrateDB is a complete self-hosted distributed SQL database that does the group's main job of storing and querying data."
     }
    },
    {
     "project": "databend",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because Databend is a complete self-hostable SQL database for storing and querying data, with built-in full-text and vector search."
     }
    },
    {
     "project": "influxdb",
     "fit": "partial",
     "note": null
    },
    {
     "project": "kuzzle",
     "fit": "partial",
     "note": null
    },
    {
     "project": "manticore-search",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed the promotional word \"fast\" and noted Algolia, since it covers the search-engine apps in this group but not general-purpose databases."
     }
    },
    {
     "project": "mellisearch",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because Meilisearch is a search engine that replaces Algolia-style search, not a general-purpose database like most apps in this group."
     }
    },
    {
     "project": "neo4j",
     "fit": "partial",
     "note": null
    },
    {
     "project": "nhost",
     "fit": "full",
     "note": null
    },
    {
     "project": "pingcap",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because TiDB is a complete self-hostable distributed SQL database, directly comparable to Aurora and Cloud Spanner."
     }
    },
    {
     "project": "pocketbase",
     "fit": "partial",
     "note": null
    },
    {
     "project": "qdrant",
     "fit": "partial",
     "note": null
    },
    {
     "project": "questdb",
     "fit": "full",
     "note": null
    },
    {
     "project": "quickwit",
     "fit": "partial",
     "note": null
    },
    {
     "project": "semi",
     "fit": "partial",
     "note": null
    },
    {
     "project": "sonic",
     "fit": "partial",
     "note": null
    },
    {
     "project": "supabase",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Supabase is a complete, self-hostable Postgres database platform that does the group's main job and directly replaces Firebase."
     }
    },
    {
     "project": "terminusdb",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because TerminusDB is a complete self-hosted graph database that stores and queries data, comparable to Amazon Neptune or TigerGraph."
     }
    },
    {
     "project": "tdengine",
     "fit": "partial",
     "note": null
    },
    {
     "project": "typesense",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because Typesense replaces search services like Algolia and Elastic Cloud but not general-purpose databases like Aurora, Spanner or Firebase."
     }
    },
    {
     "project": "zinc-labs",
     "fit": "partial",
     "note": null
    },
    {
     "project": "yugabyte",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because YugabyteDB is a complete self-hosted distributed SQL database that directly replaces Amazon Aurora and Google Cloud Spanner."
     }
    }
   ]
  },
  {
   "id": "backend-service",
   "name": "App backends",
   "category": "dev",
   "job": "Ready-made backend for your app",
   "closed": [
    "Firebase"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "appwrite",
     "fit": "full",
     "note": null
    },
    {
     "project": "acebase",
     "fit": "partial",
     "note": null
    },
    {
     "project": "encore",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Clarified that automatic cloud setup is done by Encore's hosted platform, while the open-source part covers local development and Docker self-hosting."
     }
    },
    {
     "project": "kuzzle",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Kuzzle self-hosts the core Firebase jobs: a database with search, user logins with permissions, real-time updates and client SDKs."
     }
    },
    {
     "project": "nhost",
     "fit": "full",
     "note": null
    },
    {
     "project": "pocketbase",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because PocketBase covers Firebase's core backend job: a realtime database, user accounts, file storage and an admin dashboard in one self-hosted program."
     }
    },
    {
     "project": "supabase",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because Supabase covers Firebase's main job of database, login, file storage, realtime and functions, and it can be self-hosted."
     }
    }
   ]
  },
  {
   "id": "login-identity",
   "name": "Login & identity",
   "category": "dev",
   "job": "Let users sign in securely",
   "closed": [
    "Auth0",
    "Okta"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "authgear",
     "fit": "full",
     "note": null
    },
    {
     "project": "boxyhq",
     "fit": "partial",
     "note": null
    },
    {
     "project": "hanko",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Hanko is a complete self-hostable login and user management backend covering passwords, passkeys, MFA, social login and SAML SSO, which is the main job of Auth0 and Okta."
     }
    },
    {
     "project": "janssen",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Janssen is a complete self-hosted identity server with certified OpenID Connect, passkey login, user management and custom sign-in flows, which covers the main job of Auth0 and Okta."
     }
    },
    {
     "project": "keycloak",
     "fit": "full",
     "note": null
    },
    {
     "project": "logto",
     "fit": "full",
     "note": null
    },
    {
     "project": "ory",
     "fit": "partial",
     "note": null
    },
    {
     "project": "supertokens",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because SuperTokens is a complete self-hosted auth provider covering sign-up, login, social and passwordless login, sessions and roles, the main job of Auth0."
     }
    },
    {
     "project": "zitadel",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "ci",
   "name": "Automated builds & tests",
   "category": "dev",
   "job": "Build and test code automatically",
   "closed": [
    "CircleCI"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "buildbot",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Buildbot is a complete self-hosted continuous integration system that does the main job of CircleCI."
     }
    },
    {
     "project": "drone",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because its self-hosted pipelines (the successor to Drone CI) build and test code automatically, which is CircleCI's main job."
     }
    },
    {
     "project": "jenkins",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Jenkins is a complete self-hosted CI/CD server that builds, tests and deploys code like CircleCI."
     }
    }
   ]
  },
  {
   "id": "cms",
   "name": "Website builders & content management",
   "category": "dev",
   "job": "Build websites and manage their content",
   "closed": [
    "Contentful",
    "Wix",
    "Strikingly",
    "Webflow"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "concrete",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Concrete CMS is a complete self-hosted tool for building websites and managing their content, which is the main job of this group."
     }
    },
    {
     "project": "decap-cms",
     "fit": "partial",
     "note": null
    },
    {
     "project": "payload",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because Payload is a developer-oriented headless CMS that replaces Contentful, but it is not a drag-and-drop site builder like Wix, Strikingly or Webflow."
     }
    },
    {
     "project": "plasmic",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Plasmic is a complete visual website builder that can build and host whole sites, not just parts of them, which makes it a direct Webflow-style alternative."
     }
    },
    {
     "project": "silex",
     "fit": "full",
     "note": null
    },
    {
     "project": "sulu",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Sulu is a complete self-hosted CMS for building websites and managing their content, which is the main job of this group."
     }
    },
    {
     "project": "strapi",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial: Strapi replaces headless CMSs like Contentful, but it doesn't build or design the website itself the way Wix, Strikingly or Webflow do."
     }
    },
    {
     "project": "tina",
     "fit": "partial",
     "note": null
    },
    {
     "project": "webstudio",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because Webstudio is a complete visual website builder, open source and self-hostable, that does the main job of Webflow and Wix."
     }
    },
    {
     "project": "webiny",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Rewrote the description to mention the free edition's page builder and to drop multi-brand setups, which need the paid edition."
     }
    }
   ]
  },
  {
   "id": "data-pipelines",
   "name": "Data pipelines",
   "category": "dev",
   "job": "Move data between tools automatically",
   "closed": [
    "Fivetran",
    "Airflow",
    "Hightouch",
    "Segment"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "bruin",
     "fit": "partial",
     "note": null
    },
    {
     "project": "jitsu",
     "fit": "full",
     "note": null
    },
    {
     "project": "kestra",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because Kestra is a complete self-hosted workflow orchestrator like Airflow, with built-in plugins for moving data between databases, storage and APIs."
     }
    },
    {
     "project": "trench",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "monitoring",
   "name": "Server & app monitoring",
   "category": "dev",
   "job": "Watch servers and apps for problems",
   "closed": [
    "Datadog",
    "DataDog",
    "NewRelic",
    "Elastic Cloud"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "coroot",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Coroot is a self-hosted observability platform covering metrics, logs, traces, profiling, alerting and SLOs, which is the main job of Datadog and New Relic."
     }
    },
    {
     "project": "grafana",
     "fit": "partial",
     "note": null
    },
    {
     "project": "hyperdx",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because it is a self-hosted all-in-one stack covering logs, metrics, traces, APM, dashboards and alerts, which is the main job of Datadog and New Relic."
     }
    },
    {
     "project": "kubestellar-console",
     "fit": "partial",
     "note": null
    },
    {
     "project": "manticore-search",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed the marketing word 'fast' and clarified that it only covers log storage and search, not full monitoring."
     }
    },
    {
     "project": "matano",
     "fit": "partial",
     "note": null
    },
    {
     "project": "netdata",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because Netdata monitors servers and apps, collects logs, sends alerts and centralizes nodes, which covers the main job of tools like Datadog."
     }
    },
    {
     "project": "openstatus",
     "fit": "partial",
     "note": null
    },
    {
     "project": "quickwit",
     "fit": "partial",
     "note": null
    },
    {
     "project": "solidping",
     "fit": "partial",
     "note": null
    },
    {
     "project": "signoz",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because the free self-hosted version covers logs, metrics, traces, dashboards and alerts, the core job of Datadog and New Relic."
     }
    },
    {
     "project": "telemetry-tracker",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Clarified that it covers app errors and performance with alerts but not server metrics, logs or traces, which justifies the partial fit."
     }
    },
    {
     "project": "uptrace",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Uptrace is a self-hosted APM that covers traces, metrics, logs, dashboards and alerting, which is the main job of Datadog and New Relic."
     }
    },
    {
     "project": "victorialogs",
     "fit": "partial",
     "note": null
    },
    {
     "project": "victoriametrics",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "feature-flags",
   "name": "Feature flags",
   "category": "dev",
   "job": "Turn app features on and off safely",
   "closed": [
    "LaunchDarkly"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "flagsmith",
     "fit": "full",
     "note": null
    },
    {
     "project": "growthbook",
     "fit": "full",
     "note": null
    },
    {
     "project": "unleash",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "voice-apis",
   "name": "Phone & voice APIs",
   "category": "dev",
   "job": "Add calls and texts to apps",
   "closed": [
    "Twilio"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "fonoster",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Removed the SMS and video claims, which the project page does not support; it covers voice calls only, so fit stays partial."
     }
    },
    {
     "project": "livekit",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because LiveKit handles in-app voice and video and can connect phone calls over SIP, but it does not send or receive text messages the way Twilio does."
     }
    },
    {
     "project": "openvidu",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "saas-starters",
   "name": "SaaS starter kits",
   "category": "dev",
   "job": "Start a software business from a template",
   "closed": [
    "ShipFast",
    "Supastarter",
    "SaaS Pegasus"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "lastsaas",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because it is a complete MIT-licensed SaaS boilerplate covering the same core job as ShipFast, Supastarter and SaaS Pegasus: authentication, teams, Stripe billing and an admin dashboard."
     }
    }
   ]
  },
  {
   "id": "email-sending",
   "name": "Email sending for apps",
   "category": "dev",
   "job": "Sending an app's own emails, like sign-ups and password resets",
   "closed": [
    "Mailgun",
    "SendGrid"
   ],
   "source": "placement",
   "alternatives": [
    {
     "project": "postal",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "product-analytics",
   "name": "Product analytics & session replay",
   "category": "dev",
   "job": "Seeing how people use your app or website, step by step",
   "closed": [
    "Mixpanel",
    "Amplitude",
    "FullStory",
    "LogRocket"
   ],
   "source": "placement",
   "alternatives": [
    {
     "project": "highlight",
     "fit": "partial",
     "note": null
    },
    {
     "project": "openreplay",
     "fit": "full",
     "note": null
    },
    {
     "project": "posthog",
     "fit": "full",
     "note": null
    },
    {
     "project": "trench",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "push-notifications",
   "name": "Push notifications",
   "category": "dev",
   "job": "Sending notifications to people's phones and computers",
   "closed": [
    "OneSignal"
   ],
   "source": "placement",
   "alternatives": [
    {
     "project": "apprise",
     "fit": "partial",
     "note": null
    },
    {
     "project": "ntfy",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "translation-management",
   "name": "Translation management",
   "category": "dev",
   "job": "Translating an app or website into other languages, as a team",
   "closed": [
    "Lokalise",
    "Crowdin",
    "Transifex",
    "POEditor"
   ],
   "source": "placement",
   "alternatives": [
    {
     "project": "tolgee",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "bi",
   "name": "Business dashboards & reports",
   "category": "business",
   "job": "Turn business data into charts and reports",
   "closed": [
    "Tableau",
    "Looker",
    "Power BI",
    "PowerBI",
    "Mode Analytics",
    "AWS Lookout",
    "Anodot",
    "Sisu Data",
    "Outlier"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "cube-js",
     "fit": "partial",
     "note": null
    },
    {
     "project": "evidence",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Raised fit to full because Evidence is a complete self-hostable tool for turning data into charts and reports; writing code instead of dragging and dropping is a different approach, not a missing feature."
     }
    },
    {
     "project": "lightdash",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Rewrote the description to drop marketing wording and note that the AI features are mainly offered in the paid cloud and enterprise versions, not the open-source core."
     }
    },
    {
     "project": "metriql",
     "fit": "partial",
     "note": null
    },
    {
     "project": "mlcraft",
     "fit": "partial",
     "note": null
    },
    {
     "project": "metabase",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Metabase is a complete self-hostable BI tool for charts and dashboards, covering the main job of Tableau, Looker and Power BI."
     }
    },
    {
     "project": "preset",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Superset is a complete self-hosted business intelligence tool for charts and dashboards, comparable to Tableau, Looker and Power BI."
     }
    }
   ]
  },
  {
   "id": "customer-insights",
   "name": "Customer & community insights",
   "category": "business",
   "job": "See who engages with your product and community",
   "closed": [
    "Pocus",
    "Common Room",
    "Orbit",
    "Commsor"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "beton-inspector",
     "fit": "partial",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to partial because it only reads product usage from PostHog and does not track community activity, which is the core of Common Room, Orbit and Commsor."
     }
    },
    {
     "project": "crowd-dev",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because it collects member activity from community and product channels, matches profiles and shows contributors and their companies, which is the core job of Common Room and Orbit."
     }
    }
   ]
  },
  {
   "id": "erp",
   "name": "Business management (ERP)",
   "category": "business",
   "job": "Run accounting, stock and operations in one place",
   "closed": [
    "SAP",
    "Oracle Fusion ERP Cloud",
    "Odoo",
    "Microsoft Dynamics",
    "SAP Business One"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "dolibarr",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Dolibarr is a complete self-hosted ERP covering accounting, stock, sales, purchasing, manufacturing and HR."
     }
    },
    {
     "project": "erpnext",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because ERPNext is a complete ERP covering accounting, stock and operations. Updated the description to match the features listed on the page and removed the unsupported small-business claim."
     }
    },
    {
     "project": "idurar-erp-crm",
     "fit": "partial",
     "note": null
    },
    {
     "project": "odoo",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because the open-source edition integrates sales, invoicing and accounting, inventory, manufacturing and other operations into one ERP, which is the group's main job."
     }
    },
    {
     "project": "openbooks",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because it covers accounting, stock, manufacturing, payroll, HR and multi-company operations in one system, and noted its alpha status."
     }
    }
   ]
  },
  {
   "id": "invoicing",
   "name": "Invoicing & billing",
   "category": "business",
   "job": "Send invoices and get paid",
   "closed": [
    "FreshBooks",
    "QuickBooks",
    "Chargebee",
    "Stripe Billing"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "crater",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Crater covers invoices, estimates, recurring billing, a customer portal and Stripe payments, which is the group's main job."
     }
    },
    {
     "project": "lago",
     "fit": "partial",
     "note": "Billing for subscriptions and usage, not invoices"
    },
    {
     "project": "solidinvoice",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because it covers the group's main job of sending quotes, recurring invoices and reminders and taking online payments, even without full accounting."
     }
    }
   ]
  },
  {
   "id": "crm",
   "name": "Customer relationships (CRM)",
   "category": "business",
   "job": "Track customers and sales deals",
   "closed": [
    "Salesforce",
    "Hubspot"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "customermates",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because the free self-hosted edition covers the core CRM job of tracking contacts, organizations and deals; only extras like the unified inbox are cloud-only."
     }
    },
    {
     "project": "espocrm",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because EspoCRM is a complete self-hosted CRM covering leads, contacts, deals, campaigns and cases."
     }
    },
    {
     "project": "suitecrm",
     "fit": "full",
     "note": null
    },
    {
     "project": "twenty",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "time-tracking",
   "name": "Time tracking",
   "category": "business",
   "job": "Track hours spent on work",
   "closed": [
    "Toggl",
    "Clockify"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "kimai",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Kimai is a complete self-hosted time tracker covering the main job of Toggl and Clockify."
     }
    },
    {
     "project": "solidtime",
     "fit": "full",
     "note": null
    }
   ]
  },
  {
   "id": "investment-research",
   "name": "Investment research",
   "category": "business",
   "job": "Research stocks and markets",
   "closed": [
    "Bloomberg"
   ],
   "source": "lists",
   "alternatives": []
  },
  {
   "id": "pos",
   "name": "Point of sale",
   "category": "business",
   "job": "Ring up sales in a shop",
   "closed": [
    "Square POS",
    "Clover"
   ],
   "source": "lists",
   "alternatives": [
    {
     "project": "nexopos",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Clarified that restaurant and multi-store features come from separately distributed marketplace modules, not the open-source core."
     }
    },
    {
     "project": "posnic-pos",
     "fit": "full",
     "note": null,
     "review": {
      "by": "claude-opus-5-5",
      "reason": "Changed fit to full because Posnic covers the main point-of-sale job, including billing, barcode scanning, returns, stock, receipt printers, cash drawers and sales reports."
     }
    }
   ]
  },
  {
   "id": "newsletters",
   "name": "Newsletters & email marketing",
   "category": "business",
   "job": "Sending newsletters and marketing emails to a mailing list",
   "closed": [
    "Mailchimp",
    "Brevo",
    "ConvertKit"
   ],
   "source": "placement",
   "alternatives": [
    {
     "project": "keila",
     "fit": "full",
     "note": null
    },
    {
     "project": "listmonk",
     "fit": "partial",
     "note": null
    }
   ]
  },
  {
   "id": "feedback-boards",
   "name": "Feedback & feature requests",
   "category": "business",
   "job": "Collecting ideas and votes from customers on what to build next",
   "closed": [
    "Canny"
   ],
   "source": "placement",
   "alternatives": [
    {
     "project": "quackback",
     "fit": "full",
     "note": null
    }
   ]
  }
 ]
}