@alankherron/bisac-coloring
v0.1.0
Published
Curated BISAC subject headings for coloring + activity book publishers, mapped to Amazon browse-tree paths, with a popularity heuristic and audience-aware ranker.
Maintainers
Readme
@alankherron/bisac-coloring
Curated BISAC subject headings for coloring + activity book publishers, each mapped to its closest Amazon browse-tree path, with a popularity heuristic and an audience-aware ranker.
The full BISAC catalogue is ~3,800 codes. This package is a focused subset for coloring / activity / low-content books — surfaces only what's load-bearing for that niche so KDP authors don't have to skim the whole list.
Zero dependencies. ESM + CJS + types.
npm i @alankherron/bisac-coloringWhy this exists
KDP listing pickers expect a BISAC code + 3 Amazon browse-tree categories. Authors building coloring books by hand bounce between the BISG PDF, the KDP help docs, and Amazon's category browse. This package collapses that to a typed array you can pipe straight into a metadata picker.
No commercial competitor; no maintained open-source equivalent at this slice.
Quick start
import { suggestBisac, BISAC_COLORING } from "@alankherron/bisac-coloring";
// All curated entries.
BISAC_COLORING;
// → [
// { code: "GAM004000", label: "Games & Activities / Coloring Books", amazonPath: "...", popularity: 3 },
// { code: "JNF021040", label: "Juvenile Nonfiction / Activity Books / Coloring", audienceHint: "kids", popularity: 3 },
// …
// ]
// Top-6 recommendations for an adult coloring book in the "mandala" style.
suggestBisac({ audience: "adults", style: "mandala" });
// → [
// { code: "ART038000", label: "Art / Mandalas", audienceHint: "adults", popularity: 3 },
// { code: "CRA013000", label: "Crafts & Hobbies / Coloring Books for Adults", … },
// …
// ]
// Limit / audience-only / style-only all work too:
suggestBisac({ limit: 3 });
suggestBisac({ audience: "kids" });API
Types
BisacEntry—{ code, label, amazonPath, audienceHint?, popularity }.BisacAudience—"kids" | "teens" | "adults" | "family".BisacPopularity—1 | 2 | 3.
Functions
suggestBisac({ audience?, style?, limit? = 6 }): BisacEntry[]— ranks entries bypopularity × 10 + audience-match (+5) + style-substring-match (+3). Deterministic.
Data
BISAC_COLORING: readonly BisacEntry[]— the curated 13-entry list (as of v0.1).
Popularity heuristic
| Score | Meaning | |---|---| | 3 | Among the listings actually winning the category on Amazon — high-confidence picks. | | 2 | Common, but not the dominant strategy for this niche. | | 1 | Adjacent / "if it fits, use it" niches. |
The heuristic is hand-curated from KDP listing audits and is not an Amazon ranking signal — Amazon doesn't expose one. Treat it as a starting point.
BISAC vintage
The codes and labels match BISG's 2026 release. BISG updates yearly; file an issue if any of these codes have been retired or renamed.
License
MIT © alanherron — use freely in commercial work, no attribution required (but appreciated).
Related
This package was extracted from starofthepage — a coloring-book studio that turns photos into KDP-ready coloring books. See also:
@alankherron/kdp-cover-geometry— KDP paperback cover-wrap + interior-page math.
