StPageFlip vs zinejs
StPageFlip is a free, MIT-licensed page-flip library with no dependencies, and with its React wrapper, react-pageflip, it is the most installed flipbook package on npm. It is the better choice for flipping HTML or JSX pages at no cost. zinejs is the better choice for PDF and image books that need zoom, right-to-left reading, a reader toolbar, or keyboard access.
Facts checked October 2026. zinejs is built by Awecode, which publishes this site. Competitor facts link to their sources, and each page says where the competitor is the better choice.
Side by side
| StPageFlip / react-pageflip | zinejs | |
|---|---|---|
| License | MIT, free for commercial use | Free for non-commercial use; $20 one-time per site for commercial use |
| Weekly npm downloads | About 138,000 (page-flip) and 87,000 (react-pageflip) | About 350 (@zinejs/core) |
| Latest release | 2.0.7 and 2.0.3, both April 2021 | 1.0.0, September 2026 |
| Page content | HTML elements, JSX, or images | Images or PDF pages |
| Rendering | Canvas 2D for images, CSS clip-path for HTML | WebGL2 curl with six curl models, CSS fallback |
| Build it yourself, usually with pdf.js or react-pdf | Built in (@zinejs/pdf), including text search and outline | |
| Zoom | No | Pinch, wheel, and double-click, with pan |
| Right-to-left | No | Yes |
| Reader toolbar | None | Built in, optional |
| Keyboard and ARIA | None found in source | Arrow keys, Home/End, live page announcements |
| TypeScript | Types in react-pageflip; none shipped in page-flip | Types shipped |
| Size, min+gzip | 10.2 KB (page-flip) plus a 0.9 KB React wrapper | 16.4 KB entry; about 43 KB with the WebGL renderer and toolbar |
StPageFlip wins on price, size, and content flexibility. zinejs wins on reading features, so the choice follows from what the pages are.
Where StPageFlip is the better choice
StPageFlip flips real DOM, so a page can hold a form, a link, a video, or any React component. Its hard and soft page modes give a stiff cover with flexible inner pages in one book. The MIT license means no fee and no license check for commercial work, and the core is about 10 KB with no dependencies.
Popularity also counts. About 3.25 million downloads over the past year mean most layout problems already have a GitHub thread or a blog post. zinejs is too new to offer that.
The gaps in StPageFlip
Both packages were last released on 18 April 2021. An open issue from May 2024 (#54) asks the author to mark the project as abandoned, and pull requests from 2024 remain unmerged.
The missing features are the ones users ask for most. Right-to-left reading has been requested since 2020 (#13), and the RTL pull request #45 has been open since January 2024. There is no zoom (#15). The page-flip package ships no TypeScript declarations (#19, #67), so TypeScript projects rely on the community @types/page-flip.
react-pageflip adds its own issues. Pages cannot be added or removed after mount (#2), all optional props are typed as required (#32), and PDF users wire react-pdf in by hand and report pages that render without the flip animation (#54). Forks such as react-pageflip-enhanced now exist because the original no longer takes changes.
Where zinejs is the better choice
zinejs is built for documents. PdfSource renders pages on demand through pdf.js, and the toolbar adds text search, an outline from the PDF bookmarks, thumbnails, print, and download. Zoom works with pinch, wheel, and double-click, and the reader can pan while zoomed.
It also covers the requests that StPageFlip leaves open: right-to-left reading with mirrored controls, shipped TypeScript types, and keyboard navigation with page changes announced through an aria-live region. Page turns use a WebGL2 curl and fall back to CSS when WebGL2 is not available.
The trade-offs are real. zinejs cannot flip HTML or JSX pages, commercial use costs $20 per site, and there are no React or Vue component wrappers; it mounts on a DOM element, as shown in the React guide.
Switching from react-pageflip
A react-pageflip book with image pages maps to a useEffect that mounts zinejs on a ref:
import { useEffect, useRef } from 'react'
import { Zine, ImageSource } from '@zinejs/core'
export function Book({ pages }) {
const ref = useRef(null)
useEffect(() => {
const book = new Zine(ref.current, { source: new ImageSource(pages) })
return () => book.destroy()
}, [pages])
return <div ref={ref} style={{ height: 600 }} />
}For a PDF, swap ImageSource for PdfSource from @zinejs/pdf and pass the file URL. The pdf.js setup that react-pdf needed is handled inside the package.
Which to pick
- HTML or JSX pages, or no budget for a license: StPageFlip or react-pageflip.
- PDFs, zoom, right-to-left, or accessibility requirements: zinejs.
- A maintained library with an MIT license and PDF support: none exists among the popular options as of October 2026.
StPageFlip remains the right default for a free flip effect on HTML pages. For a document reader, zinejs does the work that StPageFlip leaves to the developer.
Questions
Is StPageFlip still maintained?
No release has shipped since 2.0.7 in April 2021. Issues and pull requests continue to arrive, but none have been merged since then.
Does StPageFlip support PDF?
Not directly. Each PDF page has to be rendered to an image or canvas first, usually with pdf.js or react-pdf, and then passed to StPageFlip.
Does StPageFlip support right-to-left books?
No. RTL has been requested since 2020, and a pull request adding it has been open since January 2024. zinejs supports it with direction: 'rtl'.
Is react-pageflip compatible with React 19?
The package does not declare React as a peer dependency and has not been updated since 2021, so compatibility is not documented. Test it in StrictMode before relying on it.
Is zinejs free like StPageFlip?
Only for non-commercial projects. Personal, education, and non-profit use is free under PolyForm Noncommercial 1.0.0; commercial use needs a $20 one-time license per site or product.