Need help with progressive_render?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

126 Stars 7 Forks MIT License 139 Commits 8 Opened issues


Load slow content after the rest of the page has loaded with minimal effort

Services available


Need anything else?

Contributors list

ProgressiveRender Gem Version

ProgressiveRender Demo

Slow content got you down? Load it later! Use this gem to defer loading of portions of your page until after load. They will be fetched via AJAX and placed on the page when ready.

For a quick start, see Drifting Ruby #033 - Progressive Render based on version 0.3.0. Note the controller changes are no longer required in 0.4.0.


You wrote all your code and it got a bit slow with all that production data. Or perhaps you have less important content that you want on the view, but it's not worth blocking the entire page for. With this gem there's almost no developer work to make this happen. All requests go through your controller and your normal filters so you're permissions are respected. The only added overhead is an additional round-trip for each partial and duplicated rendering of the main view.

State of Project

Build Status Code Climate Test Coverage

This gem follows semantic versioning. The important part of that being the API will not make breaking changes except for major version numbers. Please use released versions via RubyGems for production applications. Old versions do not have a maintenance plan. See open issues. Report any issues you have!


Add this line to your application's Gemfile and run

bundle install
gem 'progressive_render'

Then add the following to your

//= require progressive_render

If you plan on using the default placeholder, add this to your

 *= require progressive_render

Basic Usage

Wrap slow content in your view with a call to



Example Application

For a more in-depth example, see the test application located within this repository in


Customizing the Placeholder


call in the view can specify its own placeholder by providing a path to the partial you'd like to initially display to the user:


The placeholder defaults to rendering the partial

so if you'd like to override it globally create the file
. It will also work at the controller level, eg,


After checking out the repo, run

to install dependencies. Then, run
to run the tests. There is a dummy application located in
that demonstrates a sample integration and can be used for interactive testing.

CI Environment is used to validate changes to the github project. The CI build runs the gem against multiple versions of rails/ruby. When making a change to any dependencies or the version number of the application, be sure to run

to update the dependent Gemfile.locks.


Bug reports and pull requests are welcome on GitHub. Any contribution should not decrease test coverage significantly. Please feel free to reach out if you have an issues contributing.

Release Process

gem install gem-release
gem bump --version [major, minor, patch]
cd spec/dummy
bundle install
cd ../../
appraisal install
git add spec/dummy/Gemfile.lock
git add gemfiles/*.lock
git commit -am "Bumping collateral for new gem version"
gem release --tag


MIT License.

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.