Compare

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-pageflipzinejs
LicenseMIT, free for commercial useFree for non-commercial use; $20 one-time per site for commercial use
Weekly npm downloadsAbout 138,000 (page-flip) and 87,000 (react-pageflip)About 350 (@zinejs/core)
Latest release2.0.7 and 2.0.3, both April 20211.0.0, September 2026
Page contentHTML elements, JSX, or imagesImages or PDF pages
RenderingCanvas 2D for images, CSS clip-path for HTMLWebGL2 curl with six curl models, CSS fallback
PDFBuild it yourself, usually with pdf.js or react-pdfBuilt in (@zinejs/pdf), including text search and outline
ZoomNoPinch, wheel, and double-click, with pan
Right-to-leftNoYes
Reader toolbarNoneBuilt in, optional
Keyboard and ARIANone found in sourceArrow keys, Home/End, live page announcements
TypeScriptTypes in react-pageflip; none shipped in page-flipTypes shipped
Size, min+gzip10.2 KB (page-flip) plus a 0.9 KB React wrapper16.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.

Related comparisons

Sources