After struggling with the limitations of Ghost’s default search on my own blog, I decided to build something better. I’m excited to share my Ghost-Meilisearch integration that brings lightning-fast, feature-rich search to Ghost blogs.
What does it do?
This integration replaces Ghost’s default search with a Meilisearch-powered solution that delivers:
Full-content search (not just titles and excerpts)
Blazing fast results (under 50ms, even for large sites)
Search-as-you-type functionality
Typo tolerance (users can misspell words and still find results)
Dark/light mode support that matches your theme
Keyboard shortcuts and fully accessible UI
Real-time index updates via webhooks
Why I built this
We all know Ghost’s built-in search has limitations - it only searches titles, excerpts, authors and tags. For content-rich sites, this means readers often can’t find what they’re looking for even when it exists.
I wanted a solution that would:
Work with ANY Ghost theme
Be easy to set up (even for non-developers)
Deliver a premium search experience
Stay in sync with content automatically
How to get started
The integration is fully open-source and includes:
A drop-in search UI component
A CLI tool for initial content syncing
A webhook handler for real-time updates
I’ve created detailed documentation for both standard Ghost installations and Ghost(Pro) hosted sites. You can either replace the default search completely or add it via code injection.
I’d love to hear your feedback or answer any questions you might have. Has anyone else addressed search limitations in their Ghost sites? What solutions have you tried?
I feel like I’m seeing double today! Nice to have options.
You’re missing a license file in your repo. That’s a key part of being an open source project.
But I guess I’m left wondering: Rather than having two packages for search-ui and two packages for webhooks, whether it might have been better to join @jannis’ existing effort and add a second search option. It feels like duplicated effort for webhooks and ui, given how similar they are.
I think it’d be neat if someone forked one of these two repo’s slick UI offerings (which are really similar) and made it hook up to Algolia, which would be a huge service to Ghost users who can’t afford an additional paid service.
@Cathy_Sarisky
Good suggestion! I just updated MIT license to the repo. I forgot that lol.
For the merging into one, I was thinking about it even before started doing it, but however since I am not super experienced in NodeJS project, it was hard for me to make everything perfectly merged, that is the reason why I chose to use some of the similar UI but different backend search logic and etc. Dealing with how to handle both options will slow down my development speed. But now, since the first version is stable, I am open for discussion on it tho, would love to learn more
After a ton of wrestling with the native Ghost search, I’ve finally been able to remove it so only your meilisearch implementation is executed.
However, I’m unable to use this because it leaks drafts, and that’s a big no-no. Also, there seem to be multiple issues indexing posts, one of them will populate their properties with information that the UI does not use and therefor returns 0 results. Right now this solution requires to be a helicopter parent and clean up after it because it can’t clean up after itself. Until your indexing pipeline can filter out unpublished posts, I’ll have to stick with native ghost search, which sucks. But I’m hoping you can get this sorted out.