The production source repository is generated from the unified source package and hosted beside these docs:
https://df.criccadamus.eu/paperback/extensions/0.9/stable/Add that URL in Paperback under Settings → Extensions → Add repository. The repository currently publishes one source:
| Source | Preference | Status |
|---|---|---|
| Manga Sync | MangaDex, then Comix | beta |
First-run setup
After installing Manga Sync, open its settings in Paperback and provide the
PERSONAL_SYNC_TOKEN value from the production Alchemy environment. The source
stores it in Paperback secure state and uses it only for the personal API.
When a title has no MangaDex match, the source searches Comix. If Comix presents a Cloudflare check, use Open Comix in the same settings form and complete the check in Paperback’s in-app browser. Those cookies remain on the device and are not sent to the Worker.
Provider selection
Search results keep their canonical ID (anilist:<id> or mal:<id>) as the
Paperback manga ID. Opening a result creates the personal entry if necessary,
then links the first exact or alias title match. An existing MangaDex link wins;
Comix is used only when MangaDex is unavailable.
Repository contract
The published repository provides the Paperback metadata and installable artifact. The API hostname remains separate from those artifacts:
| Surface | URL |
|---|---|
| Documentation | https://df.criccadamus.eu/ |
| Sync API | https://df.criccadamus.eu/api/v1/ |
| Health | https://df.criccadamus.eu/api/health |
| Repository manifest | https://df.criccadamus.eu/paperback/extensions/0.9/stable/versioning.json |
The source bundle is generated during the production catalog build from
packages/paperback-source. There is no dev repository or dev endpoint.
Read progress syncs through the Manga Sync source itself: finish a chapter on a library title and the source queues the read to the personal API. The expected request chain is:
Paperback → POST /api/v1/entries/:entryId/read
→ Durable Object outbox → MangaDex POST /manga/:mangaId/read