A look at ddnexus/pagy: 5.0k stars on GitHub, written primarily in Ruby, tracked under the Backend category. Agnostic pagination in plain ruby
Snapshot summary built from the project's own GitHub metadata — there's no written TopGit review yet. The page will update automatically when a full review is published.
WHY NO REVIEW YET
TopGit writes full reviews for the most-starred, most-requested repositories. This page is a snapshot until then — see the READ ME tab for the original README in full.
[!TIP]
⭐ If you like Pagy, please support it with a Star! ⭐
Version 43
We needed a leap version to unequivocally signal that it's not just a major version: it's a complete redesign of the legacy code at all levels, usage and API included.
Why 43? Because it's exactly one step beyond "The answer to the ultimate question of life, the Universe, and everything." 😉
Improvements
This version introduces several enhancements, such as new :countish and :keynav_js paginators and improved automation and configuration processes, reducing setup requirements by 99%. The update also includes a simpler API and new interactive development tools, making it a comprehensive upgrade from previous versions.
New :countish Paginator
Faster than OFFSET and supporting the full UI
New Keynav Pagination
The pagy-exclusive technique using the fastest keyset pagination alongside all frontend helpers.
New interactive dev-tools
New PagyWand to integrate the pagy CSS with your app themes.
New Pagy AI available right inside your own app.
Intelligent automation
Configuration requirements reduced by 99%.
Simplified JavaScript setup.
Automatic I18n loading.
Simpler API
You solely need the pagy method and the @pagy instance to paginate any collection and use any navigation tag and helper.
Methods are autoloaded only if used, and consume no memory otherwise.
Methods have narrower scopes and can be overridden without deep knowledge.
New documentation
Very concise, straightforward, and easy to navigate and understand.
Upgrade to 43
See the Upgrade Guide
Take a look at the Examples for a quick overview of the new API.
💚 v3 was already quite snappy...
... and now it's more, with less.
Compatible with all environments and collection types
It can use OFFSET, COUNTISH, COUNTLESS, KEYSET, KEYNAV, SEARCH, CALENDAR, pagination techniques
It supports server-side rendering or faster client-side rendering for popular CSS frameworks and APIs
It autoloads ONLY the methods that you actually use, with almost zero configuration
It boasts 100% test coverage for Ruby, HTML, and JavaScript end-to-end (E2E)
[!TIP]
⭐ If you like Pagy, please support it with a Star! ⭐
💚 Examples
Pagination code
# Include pagy in your code (usually application_controller.rb)
include Pagy::Method
# Offset-based pagination
@pagy, @records = pagy(:offset, Product.all)
# Keyset-based pagination (fastest technique)
@pagy, @records = pagy(:keyset, Product.order(my_order).all)
# Paginate your collection with one of several paginators
@pagy, @records = pagy(...)
Default :pagy, :bootstrap and :bulma styles shown.
<!-- Render client side nav bar helpers with different html and styles -->
<%== @pagy.series_nav %> <!-- pagy style -->
<%== @pagy.series_nav(:bootstrap) %>
<%== @pagy.series_nav(:bulma) %>
Client side rendering
# pagy.rb initializer
javascript_dir = Rails.root.join('app/javascripts')
Pagy.sync_javascript(javascript_dir, 'pagy.mjs') if Rails.env.development?
series_nav_js
Faster and responsive
Dynamically fills the container width.
<!-- Render client side nav bar helpers with different html and styles -->
<%== @pagy.series_nav_js %> <!-- pagy style -->
<%== @pagy.series_nav_js(:bootstrap) %>
<%== @pagy.series_nav_js(:bulma) %>
input_nav_js
Fastest! Combines navigation and info in minimum space.
<!-- Render client side nav inout helpers with different html and styles -->
<%== @pagy.input_nav_js %> <!-- pagy style -->
<%== @pagy.input_nav_js(:bootstrap) %>
<%== @pagy.input_nav_js(:bulma) %>
💚 Dev Tools
Integrate pagy with your app's themes interactively (watch demo), and ask specific questions to the Pagy AI right in your app! You need only a single line in your page/layout head to get the Pagy Wand and the Pagy AI:
<%== Pagy.dev_tools %>
See Dev Tools
💚 Support and Docs
Quick Start
How To (quick recipes)
Migrate from WillPaginate and Kaminari (practical guide)
Discussions
Issues
Changelog
[!TIP]
⭐ If you like Pagy, please support it with a Star! ⭐
Top 💯 Contributors
💚 Credits
Special thanks to:
JetBrains for their free OpenSource license.
Ben Koshy for his contributions to the documentation, user support and interaction with external frameworks.
The Stargazers for their support.
💚 Repository Info
How to contribute
See Contributing
Versioning
Pagy follows the Semantic Versioning 2.0.0. Please check the Changelog for breaking changes introduced by major versions. Using pessimistic version constraint in your Gemfile will ensure smooth upgrades.
Branches
The master branch is the latest rubygem-published release. It also contains docs and comment changes that don't affect the published code. It is never force-pushed.
The dev branch is the development branch with the new code that will be merged in the next release. It could be force-pushed.
Expect any other branch to be internal, experimental, force-pushed, rebased and/or deleted even without merging.
The most recent commit recorded on ddnexus/pagy was 26 days ago, based on the GitHub push timestamp. The repository has 445 forks — one of the better signals of community interest.
How many stars does ddnexus/pagy have?
ddnexus/pagy has 5.0k GitHub stars — refresh the page for the live number, or check github.com/ddnexus/pagy. TopGit mirrors GitHub's count but does not claim minute-by-minute accuracy.
What else is in the Backend space?
ddnexus/pagy is tracked by TopGit under the Backend category, alongside 12 GitHub-tagged topics. Trending and Topics pages list peer repositories of comparable stars and language.
What language is ddnexus/pagy written in?
ddnexus/pagy is written primarily in Ruby. GitHub's language field is based on the largest share of bytes in the default branch.
This TopGit page is a snapshot — the READ ME tab shows the project's own README content (links stripped, images preserved). The GitHub repository at github.com/ddnexus/pagy is the definitive source.
Why is ddnexus/pagy categorized under Backend?
TopGit places ddnexus/pagy in the Backend category based on its GitHub topics and description (tagged: "bootstrap", "bulma", "elasticsearch-rails"). Categories are assigned from real repository metadata, not editorial guesswork.
Read full README in the tab above.
Still deciding about pagy?
One click hands the question to an AI along with this page — see what it says about pagy.