searchengine.life
Public beta · Self-host or searchengine.life Cloud

Launch a niche search engine in a weekend.

searchengine.life is the search platform for independent builders. Declare your sources in TypeScript, commit to git, and ship a hosted hybrid index — BM25 plus embeddings — with a search UI at <slug>.searchengine.life.

Reference engine: indie-saas.searchengine.life — 83 hand-curated indie SaaS tools, fully open-source.

Source adapters
8
Ranking signals
12
Sitemap → index
< 60s
Price per public engine
$0
The adapters

Six adapters. Crawl anything that holds still for a second.

Every adapter is a typed TypeScript module you import from @se/sources. Compose them into a search engine with a single defineEngine() call.

Sitemap· Web

@se/sources

Crawl any sitemap.xml. Follow pagination, respect robots.txt, dedupe via canonical.

<!-- sitemap.xml -->
<url>
  <loc>https://blog.example/ai-eval-101</loc>
  <lastmod>2026-04-21</lastmod>
</url>
 412 urls discovered · 12 queued

RSS · Atom · JSON feed· Feeds

@se/sources

Follow a feed. Pull full-text, author, tags. Fires on new items with a webhook.

  1. 12:04New item · Agentic retrieval, a primer
  2. 08:22New item · Vector DB benchmark v4
  3. 07:10Reindexed · 14 docs re-embedded

GitHub repos· Code

@se/sources

Index READMEs, releases and issues across an org or topic. Token-scoped, rate-aware.

RepoStarsLast push
anthropic/agent-sdk4.1k2h
vercel/ai-sdk12k5h
searchengine/runtimenow

OpenAPI· APIs

@se/sources

Point at a spec — every operation becomes a searchable document with typed facets.

# openapi.yaml
paths:
  /v1/search:
    get:
      summary: Hybrid search
      tags: [search, public]
 38 operations indexed

Markdown · MDX · Notion· Docs

@se/sources

A directory of .md(x) or a Notion workspace. Headings, code blocks, frontmatter facets.

/getting-started.mdx
/adapters/sitemap.mdx
/concepts/ranking.mdx
/changelog.mdx (draft)

Generic HTTP· Any API

@se/sources

Write a 10-line fetcher. Paginator, header signer and schema mapper built in.

httpSource({
  url: "https://api.example/items",
  paginate: "?page={{n}}",
  map: (r) => ({ id: r.id, title: r.name })
})
One file, one engine

An engine is a file. A reindex is a commit.

Drop a TypeScript file in engines/, export a defineEngine() result, and searchengine.life crawls, embeds and hosts it — with typed sources, hybrid ranking and a search UI you can theme or replace.

  • Preview URL per PR — review a changed ranker the same way you review code.
  • Ranking is data — rank.hybrid(), rank.bm25() or a callable.
  • Sources are typed adapters — sitemap, RSS, GitHub, OpenAPI, Notion, your own.
// engines/ai-papers.ts
import { defineEngine, rank } from "@se/runtime";
import { sitemap, rss, github } from "@se/sources";

export default defineEngine({
  slug: "ai-papers",
  title: "AI papers — independent index",
  audience: "public",
  sources: [
    sitemap("https://arxiv.org/sitemap.xml", { filter: (u) => u.includes("/abs/2026") }),
    rss("https://papers.cool/feed.xml"),
    github.repos({ topic: "ai-papers", stars: ">=25" }),
  ],
  ranking: rank.hybrid({
    bm25: 0.4,
    vectors: 0.5,
    recency: 0.1,
  }),
  facets: ["year", "author", "topic"],
});
From repo to production index

Three steps. One git workflow. Zero infra to run.

  1. 01
    Install the CLI

    pnpm add -D @se/cli and run searchengine init. Your repo gets an engines/ folder and a GitHub App hook.

  2. 02
    Declare an engine

    An engine is one TypeScript file. Wire sources, pick a ranker, set access — commit the file.

  3. 03
    Merge the PR

    The platform crawls, embeds and hosts your engine at <slug>.searchengine.life or a custom domain.

# bootstrap searchengine in any Next.js repo
pnpm add -D @se/cli
pnpm searchengine init

# add your first engine
pnpm searchengine new ai-papers

# ship it
git checkout -b feat/ai-papers && git commit -am "feat: ai-papers engine" && gh pr create
What builders ship

Four search engines most of us have almost built.

Dev

API docs search

Index every OpenAPI spec + SDK README your team ships. One /search endpoint that replaces four half-broken docs searches.

Live

Indie SaaS directory

83 hand-seeded indie SaaS tools, live at indie-saas.searchengine.life. This is the reference engine — ships with the same defineEngine() contract you get.

Visit the live engine →
Research

AI paper finder

ArXiv + papers.cool + GitHub repos, hybrid ranked with a recency boost. Subscribers get a daily digest via webhook.

Community

Forum + wiki search

Crawl a Discourse instance and a /docs Notion. One unified search UI, SSO-scoped for members.

The stack

Opinionated where it matters. Boring where it should be.

TypeScript-first

Engines are typed. Sources are typed. Facets and ranking signals are typed. Autocomplete every field, catch regressions at build time.

Git-native

Version, review, revert. Every PR spins up a preview index. Rollbacks are `git revert`, not a form in a SaaS UI.

Hybrid ranking

BM25 for keyword precision, embeddings for meaning, recency and authority signals you can weight — blended per engine.

Next.js 16 runtime

Server Components by default, Cache Components per engine, streamed results. Installs into any Next.js repo.

Vercel Fluid Compute

Crawlers reuse instances with graceful shutdown. 300s default timeouts for the deepest sitemap.

Self-host or Cloud

Ship to your own Next.js app with @se/runtime, or point the CLI at searchengine.life Cloud. Same code either way.

Pricing

Free to self-host. Paid when you want crawl + index off your plate.

Open core

$0self-host

The searchengine runtime, sources and ranker — MIT-licensed. Drop into any Next.js repo.

  • @se/runtime · @se/sources · @se/rank
  • MIT licence, MIT-forever
  • Public engines on your own domain
  • GitHub App for PR previews

Cloud

Most popular
$19/ engine / month

Hosted crawl, embeddings, hybrid index and a tunable /search UI at <slug>.searchengine.life.

  • Everything in Open core
  • Managed crawl on a schedule
  • Hosted embeddings (OpenAI · Voyage · Cohere)
  • Search analytics + zero-result reports
  • Custom domain per engine

Business

$99/ month

SSO, private engines, private source adapters and an SLA — for teams running search as infra.

  • Everything in Cloud
  • Unlimited private engines
  • SSO (SAML · OIDC) + SCIM
  • Private source adapters
  • 99.95% uptime SLA

Your corner of the web deserves its own search engine.

Install the CLI, commit one file, merge the PR. That's the whole loop. No cluster to babysit, no Algolia invoice at the end of the month.