
Description
Copying text out of a PDF paper to paste into your notes or feed to a model is a small disaster every time: line breaks land mid-sentence, tables collapse into loose lines of text, formulas come out as garbage. Scanned pages don't even let you select. FileMarkd hands the job to an OCR model — Mistral OCR by default — which reads text, tables, formulas and heading hierarchy together and returns Markdown you can actually use. Header rows, merged cells and alignment survive the trip, and the page headers and footers that repeat on every page are stripped out. Each recognized block carries a confidence score, so the passages that may have been misread are obvious at a glance instead of forcing a full reread.
The input side is wide: PDF, Word, PowerPoint, Excel, CSV, EPUB, LaTeX, Jupyter notebooks, HTML, RTF, ODT and XML, plus PNG, JPG, WebP, HEIC, TIFF, AVIF, GIF and BMP — roughly forty formats, with forty-odd recognition languages behind them, which covers papers, contracts, invoices and scans. Drop a file in, or paste a public document URL and let the server fetch it. And this repository is the open-source build of the whole product: not just the converter but auth, Stripe subscriptions and credits, an affiliate program, five-language i18n and an admin console, written in Next.js — fill in the environment variables, push to Vercel, and you have a site that can take payments. MIT licensed.
Forty-odd input formats: office documents, ebooks, notebooks, markup languages and the usual image types go in directly, with no detour through a separate PDF converter first.
Confidence scoring: every recognized block is scored on its own, so the weak spots are easy to locate and a human review covers only those passages instead of the whole file.
Table reconstruction: header rows, merged cells and alignment still hold after conversion, so a spreadsheet or a scanned table comes out as a working Markdown table rather than broken lines.
Header and footer stripping: the running headers, footers and metadata on each page are detected and removed, so page numbers and institution names stop cutting the body text into fragments.
Three ways in: local drag-and-drop upload, a pasted public document URL that the server fetches after checking protocol, SSRF, format and size, and three built-in sample documents you can run through the full interface without signing in.
Split view and direct editing: source on the left, result on the right, with a toggle between rich preview and raw Markdown; the Markdown panel is editable and exports to .md or .txt, and both sides stay in sync.
Credits and subscriptions: billing is per page — one credit per page, held against an estimate before OCR and settled against the real page count afterwards. Granted credits are spent before purchased ones and purchased credits never expire. Stripe handles both subscriptions and one-off packs, with a self-service customer portal.
Five-language site and SEO: English, Simplified and Traditional Chinese, Japanese and Korean, with hreflang, sitemap, JSON-LD and share cards in place — and no forced redirect by browser language, since the root path always stays English.
Affiliate program: users generate an eight-character referral code and earn 30% on a first order, with earnings frozen for seven days before release, rolled back on refund, and referral links valid for thirty days.
Admin console: users, orders, credit ledgers and affiliate earnings are all queryable, Umami is wired in for traffic, and a cron job handles win-back email for dormant users.
Free local runs: without a Mistral API key, or with mock mode switched on, the conversion endpoint falls back to deterministic sample output, so local development and demos cost nothing.
The input side is wide: PDF, Word, PowerPoint, Excel, CSV, EPUB, LaTeX, Jupyter notebooks, HTML, RTF, ODT and XML, plus PNG, JPG, WebP, HEIC, TIFF, AVIF, GIF and BMP — roughly forty formats, with forty-odd recognition languages behind them, which covers papers, contracts, invoices and scans. Drop a file in, or paste a public document URL and let the server fetch it. And this repository is the open-source build of the whole product: not just the converter but auth, Stripe subscriptions and credits, an affiliate program, five-language i18n and an admin console, written in Next.js — fill in the environment variables, push to Vercel, and you have a site that can take payments. MIT licensed.
Features
Forty-odd input formats: office documents, ebooks, notebooks, markup languages and the usual image types go in directly, with no detour through a separate PDF converter first.
Confidence scoring: every recognized block is scored on its own, so the weak spots are easy to locate and a human review covers only those passages instead of the whole file.
Table reconstruction: header rows, merged cells and alignment still hold after conversion, so a spreadsheet or a scanned table comes out as a working Markdown table rather than broken lines.
Header and footer stripping: the running headers, footers and metadata on each page are detected and removed, so page numbers and institution names stop cutting the body text into fragments.
Three ways in: local drag-and-drop upload, a pasted public document URL that the server fetches after checking protocol, SSRF, format and size, and three built-in sample documents you can run through the full interface without signing in.
Split view and direct editing: source on the left, result on the right, with a toggle between rich preview and raw Markdown; the Markdown panel is editable and exports to .md or .txt, and both sides stay in sync.
Credits and subscriptions: billing is per page — one credit per page, held against an estimate before OCR and settled against the real page count afterwards. Granted credits are spent before purchased ones and purchased credits never expire. Stripe handles both subscriptions and one-off packs, with a self-service customer portal.
Five-language site and SEO: English, Simplified and Traditional Chinese, Japanese and Korean, with hreflang, sitemap, JSON-LD and share cards in place — and no forced redirect by browser language, since the root path always stays English.
Affiliate program: users generate an eight-character referral code and earn 30% on a first order, with earnings frozen for seven days before release, rolled back on refund, and referral links valid for thirty days.
Admin console: users, orders, credit ledgers and affiliate earnings are all queryable, Umami is wired in for traffic, and a cron job handles win-back email for dormant users.
Free local runs: without a Mistral API key, or with mock mode switched on, the conversion endpoint falls back to deterministic sample output, so local development and demos cost nothing.


