Skip to content

Architecture decision records ​

An ADR records one structural decision: the context, what was decided, and what it costs. ADRs are immutable once accepted: to change a decision, write a new ADR that supersedes the old one and update the old one's status.

#DecisionStatus
0001Strict Electron process isolation, one preload bridgeAccepted
0002Local storage in a SQLite file through node:sqliteAccepted
0003Database location in a pointer file, never moved automaticallyAccepted
0004PDF pages rasterized in the main process with pdf.js + @napi-rs/canvasAccepted
0005Book metadata looked up on demand in public APIs, from the main processAccepted
0006Bédéthèque album pages read from a pasted linkAccepted
0007Cover thumbnails in a disk cache, outside the databaseAccepted
0008Interface translations with i18next, locales split by areaAccepted
0009IPC arguments validated in the main processAccepted
0010Schema migrations versioned with PRAGMA user_versionAccepted
0011A mandatory handle() wrapper for IPC, and opaque tokens instead of pathsAccepted
0012Comic files decoded in a utility process, not in the main processAccepted
0013One renderer data store, kept current by a data:changed pushAccepted
0014Achievements evaluated in the renderer, only unlocks persistedAccepted
0015Library organization: the app moves files into one subfolder per comicAccepted
0016Library structure: a tree of up to three metadata levelsAccepted
0017Library file names: a template of metadata fieldsAccepted
0018Decoder calls bounded by a timeout, archives tied to their windowAccepted
0019Several users on one library, without passwordsAccepted
0020Library paths relative to the library foldersAccepted
0021Metadata lookup dialog: explicit search, more page sources, saved to the .nfoAccepted
0022Watched folders per user, and settings split in two groupsAccepted
0023Cleaning the books by rewriting the CBZ archivesAccepted
0024Database backups in a .tankobon folder, restored at start-upAccepted
0025Converting the CBR of the organized library to CBZAccepted
0026Bédéthèque: finding the album from the series nameAccepted

These first four ADRs were written after the fact, from the code and its comments, then checked by the maintainer.

Writing a new ADR ​

Copy the template to NNNN-short-title.md (next number), fill it in, add it to the table above, and ship it in the same pull request as the change it describes.