Practical infrastructure for Ruby apps.
Search. Messaging. Sitemaps. Tenancy. Each gem is small, scoped, and documented — a constellation of tools built the way I wish they'd existed when I first needed them.
Core libraries
Standalone gems. Each solves a different class of problem — search, messaging, SEO, and multi-tenancy — with no shared runtime.
- 01
Esse
· esseAn Elasticsearch/OpenSearch toolkit for Ruby applications — ETL-style indices, repositories, and documents.
- 02
Lepus
· lepusRabbitMQ-backed producer/consumer framework for Ruby — supervisor, middleware, CLI, and a live web dashboard.
- 03
SiteMaps
· site_mapsConcurrent, adapter-based sitemap.xml generation with full SEO extensions — image, video, news, hreflang.
- 04
Multitenancy · Rails
· multitenancy-railsWhite-label, multi-tenant Rails applications — per-tenant themes, view namespaces, and isolated asset pipelines.
The Esse ecosystem
Extensions that let Esse speak ActiveRecord, Sequel, Rails, Sidekiq, Jbuilder, Kaminari, Pagy — and hook deeply into your indexing pipeline.
ActiveRecord integration for Esse — auto-index on record lifecycle.
Rails integration, generators, and Railtie for Esse.
Sequel integration — auto-index records from Sequel models.
Background-job indexing via Sidekiq or Faktory.
Lifecycle callbacks around index operations.
Define documents with Jbuilder templates.
Kaminari pagination for Esse search queries.
Pagy pagination backend for Esse.
RSpec matchers and index stubs for testing Esse-backed code without a live cluster.
WillPaginate pagination for Esse search queries.
Every gem here is open source, MIT-licensed, and maintained in the open. Pull requests, issues, and stars are welcome — github.com/marcosgz.