
Costs
The checked list of platform alternatives directory
A platform alternatives directory entry names a real incumbent, a real candidate, and the job the candidate cannot do, with dates on every tested row.
What to take away
- A platform alternatives directory entry is a tripleincumbent, job, candidate. One candidate can be excellent for one job and useless for another on the same incumbent.
- The row that earns the entry is what the candidate does not replace. Everything else is on a marketing page.
- Test the incumbent's export and the candidate's import separately, against the same file. They fail independently, and only one is advertised.
- Name real services. An entry that says "a forum platform" instead of naming one is a schema, not a directory.
- Date every checked row. A "covers" line from two years ago reads like last month's unless the date sits beside it.
- The checked list below names six incumbents and their candidates: a Facebook group, Mailchimp, Google Analytics 4, Salesforce, Dropbox, and Evernote.
Why one service rarely replaces another
Large services accumulate. A product starts as one thing. It adds messaging, then scheduling, then storage, then a directory. It adds payments through ordinary feature accumulation. Every successful product does this. By the time anyone wants to leave, it does six jobs and the user has stopped noticing five.
A candidate usually does one of those six jobs well. The honest answer to "what can I use instead" is two or three services plus an accepted loss. A directory that pretends otherwise sets up a migration that fails in week three, when someone finds the sixth job was load-bearing.
So the triple: for this job, on this service, these candidates, with these gaps.
The entry
| Field | Content | Source |
|---|---|---|
| Incumbent | The service being replaced, by stable key | The catalog's own entry |
| Job | One sentence naming the outcome, in the reader's terms | Editor, not marketing |
| Candidate | The service proposed, by stable key | The catalog's own entry |
| Covers | Which parts of the job it does, specifically | Reader check against vendor docs |
| Does not replace | Which parts it does not, specifically | Reader check, and the important row |
| Import path | What the candidate takes in, in what format, and whether it worked | Reader runs it |
| Export path from incumbent | What the incumbent gives out, and whether the two formats meet | Reader runs it |
| Audience carried | Whether any contactable audience transfers, or none | Reader check, and usually none |
| Ongoing cost shape | Free, paid, self-hosted, or a mix | Pricing pages |
| Checked | Date, tier, and region | Reader's record |
Ten fields, two of them tests the reader runs and one a judgment. A directory of relationships with no checks is a directory of opinions about relationships.
Ten fields per entry
- Incumbentservice replaced, stable key
- Jobone sentence, reader's terms
- Candidateproposed service, stable key
- Coverswhich parts it does
- Does not replacewhich parts it does not
- Import pathformat and whether it worked
- Export pathformats meet or not
- Checkeddate, tier, region
The schema follows the same logic as the fields a single-service entry needs, with a source class and half-life per field.
What changes here is that half the fields decay when either end moves, so an entry's half-life is the shorter of the two.
Checked entries: five incumbents and their candidates
Five incumbents sit in the table below, with a sixth in the worked example after it. Prices are the list rates on vendor pages in early 2026, so check the current number before you decide. The date column is when the row was last checked. Every figure moves.
| Incumbent | Job | Candidate and what it does | Does not replace | Checked |
|---|---|---|---|---|
| Mailchimp | Send a weekly newsletter to a list I own | MailerLite: free up to 1,000 subscribers and 12,000 emails a month, paid from about $10 a month | Mailchimp's template library; segments get rebuilt by hand | Vendor page, Feb 2026 |
| Mailchimp | Send a weekly newsletter to a list I own | Brevo: free 300 emails a day, Starter from about $9 a month for 5,000 emails | Automation branches above the entry tier | Vendor page, Feb 2026 |
| Mailchimp | Send a weekly newsletter to a list I own | Kit, formerly ConvertKit: free up to 10,000 subscribers, paid from about $29 a month | Drag-and-drop template design; Kit is text-first | Vendor page, Feb 2026 |
| Mailchimp | Send a weekly newsletter to a list I own | Buttondown: free up to 100 subscribers, $9 a month above that | Visual templates and hosted landing pages | Vendor page, Feb 2026 |
| Google Analytics 4 | Count pageviews and referrers on my site | Plausible: from $9 a month for 10,000 pageviews, cookie-free | A free tier; the 10,000-view ceiling arrives fast | Vendor page, Feb 2026 |
| Google Analytics 4 | Count pageviews and referrers on my site | Fathom: $15 a month for 100,000 pageviews, and its vendors say no cookie banner is needed in the EU | Event-level modeling and audience exports to ad platforms | Vendor page, Feb 2026 |
| Google Analytics 4 | Count pageviews and referrers on my site | Matomo: self-hosted free, cloud from about $23 a month | Setup time on the self-hosted route; you run the database | Vendor page, Feb 2026 |
| Google Analytics 4 | Count pageviews and referrers on my site | Umami: self-hosted free, cloud from about $20 a month | Managed hosting on the free tier is small | Vendor page, Feb 2026 |
| Salesforce | Track deals through a pipeline | Pipedrive: from about $14 a user a month | Salesforce's report builder and its app marketplace | Vendor page, Feb 2026 |
| Salesforce | Track deals through a pipeline | Zoho CRM: free up to 3 users, paid from about $14 a user a month | Complex territory rules and custom objects | Vendor page, Feb 2026 |
| Salesforce | Track deals through a pipeline | HubSpot Sales Hub: free tier, Starter from about $20 a seat a month | Deep customization; HubSpot pushes you into its own workflow | Vendor page, Feb 2026 |
| Dropbox | Sync files across devices | Google Drive: 15GB free, 100GB for $1.99 a month | Dropbox's block-level sync and its file-request links | Vendor page, Feb 2026 |
| Dropbox | Sync files across devices | OneDrive: 5GB free, 100GB for $1.99 a month | Selective sync behaves differently on macOS | Vendor page, Feb 2026 |
| Dropbox | Sync files across devices | Proton Drive: free tier, 200GB for about $3.99 a month | Shared-folder permissions and Office co-editing | Vendor page, Feb 2026 |
| Dropbox | Sync files across devices | Nextcloud: self-hosted free, managed hosting from about 5 euros a month | Nothing is free once you count admin time | Vendor page, Feb 2026 |
| Evernote | Keep searchable notes | Obsidian: free for personal use, Sync from about $4 a month | Web clipper parity; plugins cover part of it | Vendor page, Feb 2026 |
| Evernote | Keep searchable notes | Notion: free for personal use, Plus $10 a seat a month | Offline reliability and fast search across large vaults | Vendor page, Feb 2026 |
| Evernote | Keep searchable notes | Joplin: free and open source, Joplin Cloud about 6 euros a month | The Evernote clipper needs the desktop app's extension | Vendor page, Feb 2026 |
Every row names a real incumbent and a real candidate. The job column decides the winner, and the same candidate can lose against the same incumbent on a different job.
Worked example: leaving a Facebook group
Say the incumbent is a Facebook group, the job is "host discussion my members can find by search", and the audience is 4,000 people who joined over six years.
Leaving a Facebook group
Discourse self-hosted
- Covers
- Threads, search, categories
- Does not replace
- Facebook identity
- Cost shape
- Server and admin time
Discord
- Covers
- Chat, roles, voice
- Does not replace
- Searchable archive
- Cost shape
- Free tier, paid boosts
Mighty Networks
- Covers
- Community, courses, payments
- Does not replace
- Existing member list
- Cost shape
- Per-member monthly fee
Circle
- Covers
- Community, events, directory
- Does not replace
- Public discoverability
- Cost shape
- Per-member monthly fee
| Candidate | Covers | Does not replace | Cost shape |
|---|---|---|---|
| Discourse, self-hosted | Threaded discussion, search, categories, member accounts | The Facebook identity people already have; nobody re-registers without a reason | Your server and admin time |
| Discord | Real-time chat, roles, voice | Searchable long-form archive; threads scroll away | Free tier, paid boosts |
| Mighty Networks | Community, courses, payments in one place | Your existing member list; import is a CSV you build yourself | From about $41 a month for 100 members |
| Circle | Community and events with a clean member directory | Public discoverability; nothing here is findable by a stranger | From about $89 a month for 100 members |
| Discourse hosted by a vendor | Same as self-hosted, without the server | Nothing extra, but you rent rather than own the instance | From about $100 a month on the vendor's plan |
Four of these five are real products with public pricing pages. Check the current per-member rate yourself; it changes, and the number that matters is the one on the page the day you decide.
The row doing the work is "does not replace". Discord is a fine answer to "where do we talk" and a poor answer to "where does the archive live". Same incumbent, same members, different job, different candidate.
The "does not replace" line
Write specifics, not warnings. "Does not carry your existing audience" is true of everything and helps nobody. "Import brings post text and dates, and not replies, so a conversation arrives as orphaned statements" is a finding someone can act on.
Four gaps recur across almost every category.
The audience. Almost never transfers. Where a candidate claims it does, find out whether it means contact details or a count.
The archive's addresses. Old links pointing at the incumbent do not follow you. Whether the candidate accepts a redirect, or preserves identifiers, is a real difference between candidates and is almost never mentioned.
The surrounding tooling. Whatever else you connected to the incumbent will not connect to the candidate on day one. This gap closes fastest and should be weighted least.
Other people's habits. Not yours, theirs. This gap ends migrations, and it belongs in the entry as a plain sentence, not a hope.
Import and export are two tests
Import and export are built by different people with different incentives, and they meet in the middle by accident.
Two tests, one join
- Run incumbent export first
- Inspect format, authorship, dates, media
- Run candidate import on that exact file
- Record both results and the join
- Usual outcome: formats do not meet
- Add conversion step, name who wrote it
Run the incumbent's export first and look at what you actually have: format, completeness, whether authorship and dates survived, whether media came as files or as links back to the service you are leaving. Then run the candidate's import against that exact file, not a sample the candidate provides.
Record both results and the join. The usual outcome is that both features work and the formats do not meet, so the migration needs a conversion step. Whether that step exists, and who wrote it, belongs in the entry.
This is the cost people are really asking about when they ask whether to switch. Naming it as a switching cost rather than an inconvenience makes it comparable with the cost of staying, which is the actual decision.
Keeping the directory current
Two ends move independently, so an entry is rechecked when either does. In practice it inherits the recheck triggers of both services: changes to export, import, pricing tiers, and ownership.
Never let an entry drift into a recommendation as it ages. Per-field checked dates are the fix, and the method runs through the catalog, including the four-source approach to building an entry.
Retire entries rather than leaving them. A triple whose incumbent has closed is history and belongs in an archive section with its dates. A triple whose candidate has closed is actively misleading and should be marked so the day you notice.
What this directory should not do
It should not rank candidates. The axes that decide a substitution are the structural ones in the six-axis comparison method, and they do not order. A candidate better on export and worse on discovery is not further up a list; it is a different trade.
It should not carry a "best alternative" field. The best one depends on the job, and the job is already a column, so the format has answered the question by construction.
It should not call anything a drop-in replacement. For a tool, occasionally true. For a network, never, for the reason the overview of what an alternative has to replace gives: a tool has users, and a network is its users.
Common questions
How many candidates per triple?
Two to four. Beyond that the entry stops being a decision aid and becomes a list, and the marginal candidate is usually one nobody checked. If you can only vouch for two, publish two and say what you did not check.
Can one candidate appear against many incumbents?
Yes, with a separate triple each time. The same service replaces different things to different degrees, and collapsing that into one entry loses exactly the information the format exists to carry.
What if no candidate covers the job?
Say so, in an entry with an empty candidate field and a filled "does not replace" line explaining what is missing from everything available. That is the page no commercial list will publish, and it is often the most useful one in the directory.
Is "keep using it and add something alongside" an entry?
It is often the right answer, and it fits the format: the candidate covers part of the job, the incumbent keeps the rest, and the entry says which parts go where. Recording it as a legitimate outcome stops the directory reading as an argument for leaving.







