Fisqua is an open-source cataloguing platform for archives — describing materials, managing authority records and controlled vocabularies, and assembling the hierarchies that hold a collection together. It runs on Cloudflare Workers with D1 and R2, and is designed to scale from community-led initiatives to major libraries.
Fisqua is one of four open-source primitives developed by AMPL with its partners, alongside the Digitization Toolkit (which captures), Zasqua (which publishes), and Telar (which tells). The four are designed to work together as a full pipeline, but each can be used independently.
Fisqua describes materials in ISAD(G), authorities in ISAAR(CPF), serves images as IIIF, wraps preservation metadata in METS, and exports to EAD and EAC-CPF. These are not Fisqua's inventions — they are the standards the international archival community has settled on — and using them means that a collection catalogued in Fisqua is portable from day one. The schema, the data formats, and the workflow are open regardless of what software an archive uses to run them.
One feature at the heart of Fisqua distinguishes it from most archive-management platforms: it is designed to open description work to volunteers, students, and community members under professional archival review. A convenor assigns items; contributors describe them against the catalogue's controlled fields and vocabularies; the convenor reviews and approves entries before they enter the catalogue. Three things come out of this at once: archival description produced at a scale few institutions can resource on their own; hands-on training in the core skills of historical archival work — palaeography, description, and authority work — that are otherwise hard to come by outside professional programmes; and a practice of archiving that stays open to the communities and publics whose materials are being described.
- Virtualised continuous-scroll IIIF viewer with OpenSeadragon tiles and zoom
- Page and within-page boundary placement with click-to-place, drag-to-move, and autosave
- Outline panel with tree structure, ISAD(G) metadata editing, QC flags, and region-anchored comments
- Assignment workflow with three roles (Lead, Reviewer, Cataloguer) and status progression
- Entity, place, and repository administration with linked-descriptions cards
- Vocabularies hub with draft / review / approve flow for controlled terms
- Publish pipeline that exports fonds-level JSON, METS, and manifests to R2 through a durable Cloudflare Workflow
- Role-dependent dashboards with progress tracking
- Bilingual interface (English / Spanish)
AMPL operates a hosted, multi-tenant Fisqua at fisqua.org that partners use without maintaining servers of their own. It currently supports cataloguing across five partner repositories in Colombia and Peru — ranging from community-held collections to the Peruvian National Library — comprising over 106,000 archival descriptions. Further partner deployments are planned through UCSB's Robinson Archives Initiative.
For institutions that prefer to run the primitive themselves, the code in this repository is the whole thing: schema, server, UI, and the tooling that turns catalogued data into an exportable archive. A partner that begins on the hosted Fisqua can leave with everything they have put in.
- Node.js 18+
- npm
- A Resend API key (for magic-link authentication emails)
npm installCreate a .dev.vars file for local secrets:
RESEND_API_KEY=re_your_key_here
Set your app identity in wrangler.jsonc under vars:
Initialise the local database and start the dev server:
npx wrangler d1 migrations apply DB --local
npm run devnpm run deploySet secrets for production:
npx wrangler secret put RESEND_API_KEYApply migrations to production D1:
npx wrangler d1 migrations apply DB --remoteBuilt on Cloudflare Workers with D1 (SQLite) for data, R2 for blob storage, Drizzle ORM for typed queries, React Router v7 for SSR, and Vite for the build. Styling is Tailwind; validation is Zod; testing is Vitest. The publish pipeline runs as a Cloudflare Workflow so each step gets a fresh runtime budget.
The viewer renders IIIF Image API tiles from existing Zasqua volumes on R2 — no image processing or storage is needed inside Fisqua. Only visible pages plus a two-page buffer are rendered at any time, enabling smooth scrolling through volumes of 500+ pages.
Fisqua is a verb from the Muisca language of Suba, roughly "to gather scattered things" — related to forms for searching, gathering, and traversing. It names both the work the tool enables and the historical processes the resulting catalogues help document. The name pairs with Zasqua, "to settle" or "to remain in a given place".
Fisqua is licensed under the GNU Affero General Public License v3.0.
Anyone may use, modify, and self-host Fisqua under AGPL terms. If you run a modified version of Fisqua as a network service for others, you must publish your modifications under the same license — this protects the upstream commons that AMPL, Neogranadina, and partner archives depend on.
The license governs the software. Catalogued data — the descriptions, authority records, and vocabularies you create using Fisqua — belongs to you and your institution.
"Fisqua", "Zasqua", "AMPL", and the associated logos are not covered by the AGPL-3.0 license. Forks may use the code freely under AGPL terms but should not present themselves as official Fisqua, Zasqua, or AMPL releases.
Fisqua is developed by Juan Cobo Betancourt at the Archives, Memory, and Preservation Lab (AMPL) of the University of California, Santa Barbara, and Neogranadina.
Thank you to Jairo Melo Flórez, whose Django-based prosopographical work at Neogranadina and AMPL — developed for the UC MRPI Routes of Enslavement in the Americas project and now powering Trayectorias Afro and the Sondondo Parish Records Project — first bore the name "Fisqua" within Neogranadina.