Documents and notes decision

PDF.ai

A capable technical user can reproduce the core PDF->OCR->embed->chat pipeline and a basic UI in about a week; no proprietary moat is evident so self-hosting is realistic.

Visit website
You pay

Not priced

No pricing page we fetched carried a figure, so there is nothing to compare against. The build side is still real.

You’d pay instead

$50one-off30 h to build

$50/mo6 h/mo upkeep

No published price to break even against.

Open-source builds that already do this

Every project below is open source and already does this job today. Fork one, self-host it, or take the parts you need - the build prompt further down assumes an empty file, and this is the shortcut past that. Licences differ; check the one on each card before you ship. All PDF.ai alternatives, with the arithmetic →

What a replacement has to do

  • Upload PDF → extract text/ocr → chunk + embed → query via LLM → return answer and source spans

What it still won’t have

  • Polished hosted UI/branding and onboarding flows
  • High-availability, horizontal scaling and enterprise SLAs
  • Any proprietary models or vendor-managed optimizations
  • Built-in payment, team management, and analytics dashboards

What remains hard

  • Product polish and ongoing maintenance
Read the build prompt

First-year cost

No published price

PDF.ai does not publish a price we could read, so there is nothing to compare against. What building costs is below.

Money you would actually spend

Keep paying
—

Subscription price × seats × 12

Build it
—

AI build —APIs + hosting —

Time you would spend

—

—

What you would spend

What we assumed

The verdict above measures whether you could build it. This one is only about money.

Runnable build prompt

Not run yet
Build a minimal self-hosted PDF chat service using FastAPI, PostgreSQL (+pgvector), Redis (optional), and a React or simple HTMX frontend. Core features: (1) REST endpoint to upload PDFs and store them in S3-compatible storage; (2) pipeline that detects scanned vs text PDFs, runs OCR with PaddleOCR/Tesseract or extracts text with pypdf/pdfminer, normalizes text and splits into chunks; (3) compute embeddings (OpenAI or local embedding model) and store vectors in pgvector; (4) chat/query endpoint that retrieves nearest chunks, constructs a prompt, calls an OpenAI-compatible LLM API, and returns an answer with source spans; (5) minimal UI to upload PDFs and chat with citations; (6) expose simple PDF API endpoints: /parse, /extract, /split. Out of scope: multi-tenant billing, advanced access controls, analytics dashboards, enterprise SLA. Include error handling, retries and tests for upload, extraction, embedding, and query flows.
How we checked3 sources · 3/3 runs agreed · evidence score 90

How the score was reached

  • Build verdict base78
  • An open-source build was found+5
  • 3 cited sources+3
  • 3/3 assessment runs agreed+4
  • Evidence score90

The base comes from the verdict. Everything under it is a check that either happened or did not, and each one is a fact frozen in this record rather than a judgement made at render time - so the same evidence always produces the same number.

How scoring works →

Cited sources · 3

Every page the run actually retrieved.

Integrity checks

What held up, and what did not.

✓ 3 independent runs, one answer✓ Citations limited to fetched pages! 1 moat recorded