ChronicleCraft is an editorial web application and static publishing pipeline created by Dennis Jeffrey. It transforms rough bullet notes, milestone memories, and photos into elegant digital magazines using Google Gemini AI as a writing partner and compiles them into zero-dependency, long-term preserved static HTML issues.
Transforms disjointed bullet points and memories into warm, cohesive prose with headlines, subheads, and multi-style variations.
Raw notes live on the left while a live, interactive contenteditable magazine canvas updates instantaneously on the right.
In-browser canvas processing automatically shrinks 10–20MB camera photos below 500KB and calculates aspect-ratio flex packing before upload.
One-click compiler produces self-contained static HTML issues with bundled CSS and lightbox scripts—requiring zero database calls for decades to come.
A custom editorial cockpit engineered for rapid family storytelling: raw notes on the left, live magazine canvas on the right, and single-click static compilation.
The top command bar organizes the entire drafting lifecycle into three ergonomic capsules. The left cluster manages multi-publication scoping and instant month/year navigation with live Draft vs. Published status pills. The central cluster provides deep multi-level Undo/Redo history and debounced cloud autosaving (navigator.sendBeacon). The right cluster provides one-click access to the reader archive, Gemini settings with live connectivity status, and the one-click frozen static HTML compiler.
Stories begin as rough bullet points and memories. Authors can reorder boxes with drag handles, lock finished drafts with lock guards, and switch narrative tiers between Lead Features, Secondary Cards, and Snippets with a single click. Google Gemini drafts full prose on-demand without overriding manual touches.
isLocked): Shield polished copy against batch generative passes.
The right canvas displays the exact paper magazine layout with authentic Outfit and Plus Jakarta Sans typography. Click any headline or caption to edit inline. An automated horizontal "In This Issue" ribbon smoothly scrolls readers to story anchors with glowing highlights, while canvas zoom controls allow zooming from 50% to 150% scale.
Uploading modern multi-megabyte smartphone photos (10–20MB each) is instantaneous and bulletproof. The in-browser HTML5 canvas downsamples images to under 500KB before transmission, extracts EXIF orientation, and preserves layout aspect ratios. The dedicated media tray displays compression badges, live inline captions, "In Moments" filter counters, and one-click "Set as Hero" cover toggles.
A look beneath the hood of a private, zero-database family publishing studio.
Rather than replacing human authorship, ChronicleCraft treats Google Gemini as a collaborative muse. The author injects rough bullet points, milestones, and personal memories; Gemini drafts structured journalistic prose without ever overriding polished manual copy.
isLocked): Any story marked locked by the author is completely skipped during AI generation passes, guaranteeing that human edits are never overwritten.
DOMPurify / rich-text-sanitize.js) before mounting to the DOM.
Modern mobile devices generate 10–20MB camera captures with proprietary HEIC metadata that can cripple web servers and crash PHP upload pipelines. ChronicleCraft solves this by executing lossless aspect scaling and compression entirely inside the reader's browser.
upload_max_filesize failures.
aspectRatio = width / height) on ingest for layout math.
One of the greatest challenges in editorial magazine design is placing mixed portrait, landscape, and panoramic photos in a row without ugly letterbox bars or awkward white gaps. ChronicleCraft employs a flex-growth proportional layout engine.
flex-grow is dynamically assigned based on each photo's aspect ratio (flex: {ratio} 1 0px).
The studio features an uninterrupted pair-editing experience: typing into the left sidebar immediately updates the live magazine canvas, while editing text inline on the magazine canvas immediately reflects back into the structured story models.
sendBeacon): If the author accidentally closes the tab or navigates away, a background beacon call guarantees the working draft is saved without delay.
Ctrl+Z / Ctrl+Y): A robust immutable history stack tracks up to 50 states across story mutations, milestone additions, and photo reorderings.
Preserving family history shouldn't require maintaining a SQL database server that can crash or demand schema migrations in twenty years. ChronicleCraft's compiler packages every finalized issue into a 100% self-contained static HTML file.
theme-photos.css, theme-stories.css, theme-ticker.css, theme-print.css) directly into an internal <style> tag.
Esc to dismiss).
.story-target-highlight).
Beyond a single-family editor, ChronicleCraft is built as a true multi-publication studio. Independent family branches, hobby clubs, and author personas each manage their own isolated publications, photo assets, and public issue catalogs.
newsletters/{user}/{publication}/) with scoped draft storage and media buckets.
@media print stylesheet that suppresses web navigation and reformats typography for paper reproduction.
break-inside: avoid rules prevent story cards, milestone boxes, or photo frames from awkwardly splitting across page boundaries.
Explore a live sample issue compiled using ChronicleCraft's authentic frozen time capsule engine. Experience the typography, horizontal ticker ribbon, aspect-ratio photo packing, and full-screen lightbox modal in action.
Private family tools and historical archives. Password required.