Spotlight enables librarians, curators, and others who are responsible for digital collections to create attractive, feature-rich websites that highlight these collections.
Ruby HTML JavaScript CSS
Latest commit 26afa29 Feb 15, 2017 @jkeck jkeck Bump version to 0.34.1.
Failed to load latest commit information.
app Override typeahead z-index with a big enough value (restores #1588) Feb 15, 2017
bin generate the rails mountable engine Nov 19, 2013
config Re-use the report_a_problem partial in both Feedback form contexts. Feb 11, 2017
db/migrate Add configuration and UI for selected themes for an exhibit Feb 7, 2017
lib Bump version to 0.34.1. Feb 16, 2017
solr_conf/conf Use solr_wrapper and Solr 6 Jul 5, 2016
spec Migrate Upload Resources to IIIF. (#1755) Feb 15, 2017
vendor/assets Replace leaflet-areaselect with leaflet-editable Feb 10, 2017
.coveralls.yml add code coverage stats and coveralls integration Feb 1, 2014
.gitignore Add modern RSpec niceties Dec 6, 2016
.hound.yml Add hound configuration for javascript and css styling Nov 22, 2015
.javascript-style.json Auto-populate the exhibit slug from the title, unless a slug is expli… Nov 23, 2015
.rspec Cleanup rspec (#1477) Jul 8, 2016
.rubocop.yml Merge spotlight_resources_iiif gem into this project (#1716) Feb 7, 2017
.rubocop_todo.yml Store IIIF manifest url, canvas id, and image id. (#1686) Feb 2, 2017
.scss-lint.yml Add hound configuration for javascript and css styling Nov 22, 2015
.solr_wrapper Use solr_wrapper and Solr 6 Jul 5, 2016
.travis.yml Add travis `before_install` steps for updating dependencies Jan 23, 2017
Gemfile Update engine_cart stanza Dec 6, 2016
LICENSE Update meta-artifacts with content Jan 28, 2014 Fix first-run instructions Feb 9, 2017
Rakefile Fail the build more quickly if Rubocop fails (#1541) Aug 2, 2016
blacklight-spotlight.gemspec RIIIF and iiif_manifest are runtime dependencies Feb 6, 2017
template.rb Explicitly require bundler dependency in the application template (#1528 Jul 31, 2016


Build Status | Coverage Status | Gem Version | Release Notes | Design Documents

Spotlight is open source software that enables librarians, curators, and other content experts to easily build feature-rich websites that showcase collections and objects from a digital repository, uploaded items, or a combination of the two. Spotlight is a plug-in for Blacklight, an open source, Ruby on Rails Engine that provides a basic discovery interface for searching an Apache Solr index.

Read more about what Spotlight is, our motivations for creating it, and how to install and configure it in the wiki pages. You might also want to take a look at our demo videos, especially the tour of a completed Spotlight exhibit and the walkthrough of building an exhibit with Spotlight.


  1. Ruby (2.2.0 or greater)
  2. Rails (4.2.0 or greater)
  3. Java (7 or greater) for Solr
  4. ImageMagick ( due to carrierwave


To bootstrap a new Rails application:

$ rails new app-name -m

or from an existing Rails application:

$ rake rails:template LOCATION=

During this process you will be prompted to enter an initial administrator email and password (this is a super-admin that can administer any exhibit in the installation). If you choose not to create one, the first user will be given administrative privileges.

Change directories to your new application:

$ cd app-name

Run the database migrations:

$ rake db:migrate

Start Solr (possibly using solr_wrapper in development or testing):

$ solr_wrapper 

and the Rails development server:

$ rails server

Go to http://localhost:3000 in your browser.


Default ActionMailer configuration

Spotlight introduces functionality that depends on being able to send emails to exhibit curators and contacts. Be sure to configure your application's environments appropriately (see the Rails Guide for Action Mailer Configuration).


See the Spotlight wiki for more detailed information on configuring Spotlight.

Developing Spotlight


  • is a Rails engine and needs to be used in the context of a Rails application. We use engine_cart to create an internal test application at .internal_test_app/
  • uses Solr as part of its integration tests. We use solr_wrapper to manage the Solr instance used for development and test.

Our $ rake ci and $ rake spotlight:server tasks utilize Solr and the testing rails app automatically.

More Information for Developers



PhantomJS ( is an addition requirement for testing javascript.

Run all the tests:

$ rake

This utilizes Solr and the testing rails app automatically.