finds.dev← search

// the find

Linen-dev/linen.dev

★ 2,774 · TypeScript · AGPL-3.0 · updated Dec 2024

Lightweight Google-searchable Slack alternative for Communities

Linen takes your Slack or Discord community and mirrors the public channels onto an SEO-friendly website so people can find past answers through Google instead of asking the same question for the fifth time. It's a full Next.js SaaS codebase (multi-tenant, billing, mailers) rather than a weekend sync script, aimed at open-source maintainers and community owners tired of answering duplicate questions.

Real multi-tenancy via the s/[communityName] route tree with a parallel ssr/ variant, which tells you they actually thought about crawlability instead of bolting SEO on after the fact. It ships with jest tests against the actual API routes (auth, search, invites, merge) rather than just component snapshot tests. The bin/factory seed scripts generate fake communities with threads and messages, so you can get a populated dev environment running without touching a real Slack or Discord token. Bridges to GitHub, Linear and email plus a Stripe webhook show the billing and integration layers are implemented, not stubbed out.

Last commit was December 2024 — almost two years stale as of now, so if you self-host it you're inheriting unpatched Next.js and dependency drift with no indication anyone's merging PRs. The README is upfront that the custom-domain SEO redirect (the actual point of the product for anyone who isn't fine with a linen.dev subdomain) is paywalled, so the free self-hosted path doesn't get you the headline feature. There's a Dockerfile but no docker-compose, so you're left guessing at Postgres/service wiring from .env.example alone. generateSimilarity.ts and the search pipeline have zero documentation — you'd be reading the route handler cold to understand how ranking works.

View on GitHub → Homepage ↗

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →