Hyrax is a Ruby on Rails engine for building digital repository applications, part of the Samvera community. It provides core functionality for managing scholarly works, collections, file sets, and administrative sets with full lifecycle support: ingest, metadata management, access control (permissions, embargoes, leases), workflow (mediated deposit), analytics (GA4, Matomo), IIIF manifests, fixity checking, and derivatives generation. The architecture is a monolith with a modular actor middleware stack (chain of responsibility) for work creation/update/destroy, dry-transaction steps for resource operations, and a pub/sub event system for decoupled side effects. It supports dual persistence via ActiveFedora (Fedora) and Valkyrie (PostgreSQL, Fedora 6), with migration infrastructure (Wings, Freyja) and a Solr indexing layer. Key entry points include Rails controllers (Blacklight-based search, admin dashboard, API), the actor stack, and transaction steps. The codebase is heavily engineered with reusable patterns but carries significant technical debt from the ongoing migration to Valkyrie, deprecation warnings, and conditional code paths.
Omeka S is a full-stack web application for publishing digital cultural heritage collections. Built on the Laminas (Zend) MVC framework with Doctrine ORM, it provides a comprehensive admin interface for managing items, media, item sets, vocabularies, and sites, along with a RESTful JSON-LD API. The system supports linked data (RDF/OWL), IIIF viewers, full-text search, and a plugin/theme architecture for extensibility. It is a mature, well-structured codebase with clear separation of concerns (MVC, adapters, representations, services) but shows signs of technical drift from its Laminas foundation and outdated frontend dependencies like jQuery and CKEditor 4.