Why pagination exists Imagine a workers table with 1,000,000 rows. A request like GET /workers that returns all of them would: send a huge JSON payload over the wire crash the browser trying to render it hammer the database The fix is simple: send a small slice at a time. That slice is called a page . That is all pagination is. We will build the rest from this idea. Cute mental model Think of a deck of 100 cards. You cannot hand someone the whole deck and ask them to find one card fast. Instead you say: "Take 10 cards at a time. When you finish, ask me for the next 10." 10 cards = page size "which group of 10" = page number "ask me for the next 10" = next page link That is the whole game. Step 1: the two numbers we always need To grab a slice from a database, every ORM needs two things: take — how many rows to return (the slice size) skip — how many rows to ignore from the start In SQL these are LIMIT and OFFSET .…