Devlog
A running build diary for shipping sanger-viewer in small, testable steps.
- 2026-07-22 — v31 signal studio redesign: privacy-first landing experience, live trace stage, cohesive instrument-style workspace, responsive light/dark system, and large-AB1 visual review
- 2026-07-05 — v30 next-improvements research: evidence-grounded priorities for the post-workspace-shell build wave — competitor gap survey (Chromas, FinchTV, SnapGene, UGENE, Geneious, Benchling, ApE), bench-scientist pain points with citations, app's own merged evidence (#19 design-research, #20 perf-audit, v28 UX-gallery assessment), prioritized top-3 (batch queue, interactive trim boundary, region permalink), and an explicit "what NOT to build" section
- 2026-07-05 — v29 front-door polish: empty-state dropzone delight (exact copy + dashed border + drag-over class), loading banner with file name ("Loading your trace… filename"), and narrow-mobile keyboard/touch operability coverage (44 px targets, touch-action, keyboard-activatable CTAs)
- 2026-07-05 — v28 automated UX gallery + assessment gate: full state × theme × viewport Playwright capture, deterministic screenshots, self-contained HTML gallery CI artifact, mandatory UX assessment PR template, and initial current-state UX review
- 2026-07-05 — v28 workspace delight + responsive + state-persistence polish: reduced-motion shell transitions, denser sidebar density, sticky tabs, full-width narrow-viewport toggle, and permalink round-trip for sidebar open/tab state
- 2026-07-04 — v27 clone-screen stacked viewer: synchronized multi-trace base-call comparison, per-column mismatch highlighting, keyboard cursor navigation, and TSV mismatch-report export
- 2026-07-04 — v27 workspace-shell IA restructure: a 2-column shell with a hero chromatogram, collapsible tabbed sidebar, and all secondary tools moved out of the vertical wall
- 2026-07-04 — v26 manual assembly controls: strand override (force forward/reverse per read), min-overlap tuning, min-match-% threshold, live re-assembly on control change
- 2026-07-04 — v25 plasmid/linear map + exact trace-linked navigation: 1-based restriction-site model, circular/linear topology toggle, viewport-synced overlays, and exact click/keyboard base-range jumps
- 2026-07-04 — v24 design-system cohesion + launch readiness: unified tokens, consistent focus/motion polish, reduced-motion spinner guard, and animated README hero flow
- 2026-07-04 — v23 primer design + Tm + in-silico PCR: nearest-neighbor Tm/GC%/hairpin/self-dimer, mismatch-tolerant binding search, amplicon prediction (linear + circular), FASTA export
- 2026-07-04 — v22 annotation lanes + dark-mode accessibility: contextual ORF/restriction track visibility, measured contrast thresholds, stronger focus rings, and desaturated dark blues
- 2026-07-04 — v22 contig assembly: ungapped greedy overlap, paired-read consensus with IUPAC mismatch resolution, FASTA export
- 2026-07-04 — v21 reference alignment + variant/SNP calling: in-browser banded NW aligner, IUPAC scoring, variant review table, CSV/VCF export
- 2026-07-04 — v20 perf hot-path hardening: binary-search hover lookup, zero-swap edit window, and visible-range canvas loops
- 2026-07-04 — v19 progressive disclosure + toolbar hierarchy: four labelled groups (View/Export/Edit/Search), seven export actions collapsed into a single Export ▾ menu, keyboard-accessible dropdown with Escape/click-outside close
- 2026-07-04 — v19 shareable permalinks: copy/open exact viewer state from URL hash with local-file privacy-safe reattach flow
- 2026-07-04 — v19 perf harness: representative large/diverse fixtures, explicit numeric budget tests, and baseline numbers grounded in the #20 perf-audit
- 2026-07-04 — v18 first impression pass: bundled sample auto-load, dismissible sample ribbon, and theme-aware chromatogram canvas surface
- 2026-07-04 — v18 print / PDF-friendly export: "Print / Save as PDF" action renders the active zoom window, revcomp, and quality track via a clean print stylesheet with metadata header
- 2026-07-04 — v17 multi-trace consensus & mismatch view: positional consensus with IUPAC tie-codes, per-position mismatch highlighting, mismatch-count summary, Export Consensus FASTA
- 2026-07-04 — v17 competitor-grounded design research: comparative UI/UX study of Chromas, FinchTV, SnapGene, UGENE, Geneious, and Benchling, plus a concrete IA/layout/design-system proposal for sanger-viewer
- 2026-07-04 — v17 performance + reliability + consistency audit: measurement-backed built-bundle timings, named bottlenecks, cross-feature reliability matrix, prioritized hardening plan
- 2026-07-04 — v16 keyboard base inspector: focus/Enter/Space open path, exact per-base metadata dialog, Escape/focusout close, light-dark parity
- 2026-07-04 — v15 live-site QA + polish pass: comprehensive Playwright walkthrough over both fixtures, all 14 feature slices verified end-to-end, gaps and follow-ups documented
- 2026-07-03 — per-base quality bar track: theme-aware quality tiers, toggleable QA lane, exact render-mapping assertions
- 2026-07-03 — editable base calls with undo/redo + FASTQ/QUAL export: in-place double-click edit, Ctrl+Z/Ctrl+Shift+Z, edited-base highlight, propagation to FASTA/FASTQ
- 2026-07-03 — viewport-windowed annotation track: 6-frame ORFs, restriction-site chips, keyboard/click jump navigation
- 2026-07-03 — mixed-base / heterozygote calling: thresholded secondary-peak IUPAC calls, ambiguity highlights, FASTA sync
- 2026-07-03 — multi-trace workspace + high-res SVG export: tab strip, LRU eviction, vector export
- 2026-07-03 — trace metadata + peak amplitudes: instrument/sample/dye/date panel, per-base channel amplitudes in tooltip
- 2026-07-03 — PHRED quality trimming: Mott algorithm, live threshold slider, canvas shading, mode-aware FASTA export
- 2026-07-03 — reverse-complement / strand view: one-click flip, IUPAC-aware, hover/export consistent
- 2026-07-03 — true E2E validation: pixel-sampling, zoom/pan, hover/tap, export magic-bytes, all fixtures, both viewports
- 2026-07-03 — performance hardening: viewport decimation, Web Worker parsing, rAF-throttled readout
- 2026-07-03 — frictionless UX + a11y: empty states, error handling, keyboard nav, dark mode
- 2026-07-03 — tablet/touch pass makes the viewer feel handheld-ready
- 2026-07-03 — v0 foundation shipped, next steps mapped