Save Substack posts in formats you can read anytime.
SubstackDownloader helps writers, researchers, and readers keep their subscribed articles easy to access, so they can read whenever they want.
- Export a single article as a
.mdfile - Export entire publications as a ZIP of Markdown files
- Export directly to a local folder (Chrome/Edge) for easier long reading lists
- Keep readable formatting and metadata
- Works with paywalled content you are authorized to access (via your session cookie:
substack.sidon*.substack.com, orconnect.sidon custom domains) - Optional browser capture for posts that only fully render after Substack's app hydrates
- Fast, simple UI with no signup and no database required
- Paste a Substack article URL.
- Click convert.
- Download Markdown instantly.
- Paste a Substack publication URL.
- Add your session cookie (see below).
- Click Step 1: Load all articles.
- Select posts and use Step 2 export actions.
- Prefer Export Markdown to folder (Chrome/Edge) for large archives; use ZIP as fallback.
Substack uses different cookie names depending on the site:
| Site | Cookie name | Where to find it |
|---|---|---|
*.substack.com (e.g. author.substack.com) |
substack.sid |
Cookies for https://substack.com or your publication host |
Custom domain (e.g. lennysnewsletter.com) |
connect.sid |
Cookies for that exact domain |
- Sign in to the publication in your browser.
- Open DevTools (
Ctrl+Shift+I) → Application → Cookies → select the site you’re using. - Copy the value of
substack.sidorconnect.sid(whichever exists for that site). - Paste it into Connect Substack in SubstackDownloader.
npm install
npx playwright install chromium
npm run devOpen http://localhost:3000.
npm run build
npm run lint
npm testDeploy on Vercel by importing this repository.
- No environment variables required
- Bulk export route uses
maxDuration = 300 - Browser capture needs Playwright Chromium available on the host
- For large exports, run locally when possible (hosted/serverless ZIP jobs may time out)
- Built with Next.js 14 (App Router) + React 18
- Conversion powered by cheerio and turndown
- Optional browser capture powered by Playwright
- Bulk ZIP generation via archiver
- Unit tests with Jest
- SubstackDownloader is not affiliated with Substack.
- Export only content you are legally and ethically authorized to access.