Wisp (wisp.blog) is a headless CMS purpose-built for developers adding a blog to a Next.js or React application, cutting out the usual pain points of managing Markdown files, hosting images separately, and building pagination and search from scratch. Where a general-purpose headless CMS like Contentful or Sanity is designed to handle any content type imaginable, Wisp narrows its focus to one job โ blogging โ and does the surrounding infrastructure (CDN-served images, related-post recommendations, SEO tags) automatically so a developer doesn't have to build it. That focus has made it popular with indie hackers, startup founders, and small teams who want a blog live in under a day without a founder personally reviewing every content pull request.
The editor is where non-technical writers benefit the most: a Medium-and-Notion-inspired writing interface with slash commands and drag-and-drop image upload means a marketing hire or founder can publish a post without ever touching Markdown syntax or a Git commit. On the developer side, integration is a matter of installing the SDK and dropping a few lines of TypeScript-typed code into a Next.js project, after which content is served through a global CDN and edge API for fast page loads that also help with SEO.
How Wisp Works
A Wisp account starts by generating a team ID, which gets wired into a Next.js, Vue, or Svelte project through Wisp's SDK or direct API calls. From there, content creation happens entirely inside Wisp's hosted editor โ a clean writing surface separate from the codebase, so publishing a post doesn't require a deploy. Images upload via drag-and-drop and are served automatically through a global CDN; pagination, tagging, and related articles work out of the box without extra plugins. Wisp's related-post recommendations use an embedding model to compare posts by actual content similarity rather than manual tagging, and multi-tenancy support lets one account manage several separate blogs, useful for agencies or indie hackers running more than one project.
Key Features
- Medium and Notion-inspired editor: a distraction-free writing interface with slash commands, so non-developers can publish without touching Markdown
- Drag-and-drop image handling: images upload and serve through a global CDN automatically, with no separate hosting or bucket configuration
- Next.js and React SDK: a few lines of TypeScript-typed code integrate Wisp into an existing site, with framework-specific guides for Vue and Svelte as well
- Built-in pagination, tagging, and search: the core mechanics of a real blog work by default without plugins or manual setup
- AI-recommended related articles: uses an embedding model to surface genuinely similar posts instead of relying on manual tag linking
- Multi-tenancy support: manage multiple separate blogs from a single account, suited to agencies handling several client sites
- Global CDN and edge API: content delivery infrastructure aimed at fast load times and stronger Core Web Vitals for SEO
- Automated SEO tagging: meta tags and structured data are generated automatically rather than configured post by post
Wisp Pricing

- Free Forever โ $0/month โ access to all core Wisp features, unlimited blogs and posts, and content delivery infrastructure. Requires a "Powered by Wisp" attribution link on published posts.
- Pro โ $16/user/month โ everything in Free plus removal of attribution requirements, early access to new features, and priority email support.
- Indie Hacker Pass โ $298 one-time, lifetime โ all Pro features for a single user, released in limited daily quantities for solo creators who prefer a one-time payment over an ongoing subscription.
The Indie Hacker Pass is released in limited quantities and may sell out; check the site directly if unavailable. Pricing is current as of publication and subject to change โ confirm the latest rates at wisp.blog.
Who Should Use Wisp?
Developers building or maintaining a Next.js or React site who need a blog without wanting to build image hosting, pagination, and search from scratch are the core audience, and the Free Forever tier is genuinely usable for hobby projects and small sites as long as the attribution link is acceptable. Pro removes that attribution requirement and adds priority support, which matters once a blog becomes part of a real product or client deliverable โ and the Indie Hacker Pass is a way for solo founders to skip recurring billing entirely for a fixed one-time cost, assuming a pass is available when they check. Teams that need a fully general-purpose CMS covering non-blog content types, or that are committed to a pure Markdown-and-Git workflow, may find Wisp's narrower focus either a perfect fit or an unnecessary layer, depending on how much they value not building that infrastructure themselves.
Frequently Asked Questions
What does "attribution required" mean on the Free plan?
It means a small "Powered by Wisp" link is automatically added to the end of each blog post published on the Free Forever plan. Upgrading to Pro removes this requirement.
Which frameworks does Wisp actually integrate with?
Wisp is built primarily for Next.js and React, with framework-specific integration guides also available for Vue, Svelte, and other JavaScript frameworks through its REST API and JavaScript SDK.
Is the Indie Hacker Pass always available to purchase?
No. It's released in limited quantities daily rather than on a fixed schedule, so it can be sold out at any given time. Checking back the next day is generally the best approach if a pass isn't currently listed.
Can one Wisp account manage several different blogs?
Yes, through Wisp's multi-tenancy feature, which is particularly useful for indie hackers running multiple projects or SEO agencies managing several clients' blogs from a single account.
How does Wisp decide which articles are "related" to each other?
Rather than relying on manually assigned tags, Wisp uses an AI embedding model to convert each post into a numerical representation and identify genuinely similar articles based on content, then surfaces those as related-post recommendations automatically.