DEV.co
Vector Databases · neonwatty

meme-search

Meme Search is an open-source semantic search engine for indexing and retrieving memes based on image content and text. Built with Ruby, Python, and Docker, it runs entirely on self-hosted infrastructure with local AI models for image-to-text extraction and vector embeddings.

Source: GitHub — github.com/neonwatty/meme-search
690
GitHub stars
27
Forks
Ruby
Primary language
Apache-2.0
License (OSI-approved)

Key facts

Objective fields from the source. Values we can't verify are shown as “Unknown” rather than guessed.

FieldValue
Repositoryneonwatty/meme-search
Ownerneonwatty
Primary languageRuby
LicenseApache-2.0 — OSI-approved
Stars690
Forks27
Open issues3
Latest releasev2.2.0 (2026-05-31)
Last updated2026-07-07
Sourcehttps://github.com/neonwatty/meme-search

What meme-search is

Rails 8 backend with PostgreSQL + pgvector for semantic search, offering multiple vision-language models (Florence-2, SmolVLM, Moondream2) for local image captioning, and Solid Queue for async job processing. Drag-and-drop upload, tagging, filtering, and keyword/vector search modes supported.

Quickstart

Get the meme-search source

Clone the repository and explore it locally.

terminalbash
git clone https://github.com/neonwatty/meme-search.gitcd meme-search# follow the project's README for install & configuration

Need it deployed, integrated, or customized instead? DEV.co ships production installs.

Best use cases

Self-hosted Meme/Image Library Management

Organize and retrieve personal or team meme collections using semantic search without sending images to external APIs.

Homelab ML/Vector DB Experimentation

Learn semantic search, embeddings, and vision models in a practical, self-contained project with Docker deployment.

Privacy-First Image Indexing

Index sensitive image collections locally while maintaining full control over model inference and data storage.

Implementation considerations

  • Provision persistent storage for PostgreSQL data, model downloads, and uploaded images; Docker Compose bind-mounts documented but may need pre-creation on some platforms (e.g., Synology).
  • Choose image-to-text model based on hardware constraints: Florence-2-base (~250M params) for balanced systems, Moondream2-INT8 for CPU-only/memory-limited setups, Moondream2 (~2B params) for best accuracy.
  • Plan for initial model download and embedding generation overhead; time-to-first-generation not specified in README—benchmark before production indexing.
  • Leverage Solid Queue for non-blocking bulk description generation and directory rescans to avoid blocking the UI during large library updates.
  • Test OpenAI-compatible vision API integration if using external models for descriptions while keeping embeddings and search local.

When to avoid it — and what to weigh

  • High-Throughput Production Search — Project maturity (v2.2.0, ~18 months old) and small community (690 stars, 27 forks) suggest limited production hardening and scaling validation.
  • Managed Cloud-Only Deployment — Designed for self-hosted local deployment; no managed SaaS offering or first-class cloud vendor support documented.
  • Minimal DevOps/Infrastructure Expertise — Requires Docker Compose, PostgreSQL with pgvector, model management, and Python/Ruby environment understanding; not a zero-config solution.
  • Low-Resource Environments — Model downloads and inference (even with INT8 quantization) demand non-trivial CPU/RAM; smallest models still require 1.5–2GB memory.

License & commercial use

Apache License 2.0 (Apache-2.0). Permissive OSI-approved license allowing commercial use, modification, and distribution with standard Apache conditions (attribution, license notice retention, no liability/warranty).

Apache-2.0 permits commercial use including in proprietary products. However, verify compliance with any optional external dependencies (e.g., third-party vision model licenses). No proprietary restrictions noted in the GitHub data; review dependencies in package managers for secondary licensing constraints.

DEV.co evaluation signals

Editorial assessment — not user reviews. Directional, with an explicit confidence level.

SignalAssessment
MaintenanceActive
DocumentationAdequate
License clarityClear
Deployment complexityModerate
DEV.co fitGood
Assessment confidenceHigh
Security considerations

Local processing default mitigates data exfiltration risk compared to cloud-based search. PostgreSQL and Rails best practices should be applied (network isolation, connection pooling, input validation). No explicit security audit, vulnerability disclosure policy, or hardening guide documented. Drag-and-drop upload accepts JPG/PNG/WEBP without published file validation details—assess upload path permissions and virus scanning needs for sensitive environments. Supports OpenAI-compatible APIs for optional external vision models; assess token/credential management when using external APIs.

Alternatives to consider

Weaviate / Milvus

Managed vector databases with native ML/search pipelines; more production-hardened and scalable, but require additional infrastructure and lack domain-specific meme UI.

Elasticsearch + Custom ML Pipeline

More mature ecosystem, proven at scale, extensive documentation; requires custom integration of vision models and semantic search logic.

Perplexity / ChatGPT (Cloud-based Search)

Zero infrastructure burden and advanced multimodal models; trades privacy, per-query costs, and vendor lock-in for convenience.

Software development agency

Build on meme-search with DEV.co software developers

Devco's AI and custom software teams can help you deploy, customize, and scale Meme Search or design a similar semantic search solution for your image library.

Talk to DEV.co

Related open-source tools

Surfaced by semantic similarity across the DEV.co open-source index.

Related on DEV.co

Explore the category and the services that help you build with it.

meme-search FAQ

Can I use this without Docker?
Yes; local dev requires Ruby 3.4.2, Rails 8.0.4, Python 3.12, Node.js 20 LTS, and PostgreSQL 17 with pgvector. Mise recommended for version management; see CLAUDE.md for setup.
Does this send images to the cloud?
By default, no. Image-to-text, embeddings, and search happen locally. Optional: use OpenAI-compatible vision API for description generation only while keeping embeddings local.
What hardware do I need?
Minimum: 2–4 GB RAM for smaller models (Florence-2-base, SmolVLM-256, Moondream2-INT8), SSD for model cache and database. GPU optional but speeds inference significantly.
How many memes can I index?
Unknown; no published benchmarks. PostgreSQL + pgvector typically handle millions of vectors, but first-generation time and total model inference load not documented.

Software developers & web developers for hire

Need help beyond evaluating meme-search? DEV.co is a software development agency offering software development services and web development for teams of every size. Our software developers and web developers build custom software, web applications, APIs, and vector databases integrations — and maintain them long-term.

Ready to Build a Self-Hosted Meme Search System?

Devco's AI and custom software teams can help you deploy, customize, and scale Meme Search or design a similar semantic search solution for your image library.