You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@@ -22,7 +24,7 @@ All notable changes follow Keep a Changelog and Semantic Versioning.
22
24
- Local Playwright uses the system Chrome channel; CI retains the full managed Chromium/Firefox/WebKit matrix, and local QA can explicitly exercise the built production server without downloading managed browsers.
23
25
- Local project reopening now passes only an IndexedDB project ID between routes instead of duplicating the whole design in session storage.
24
26
- Production PWA registration warms the currently loaded Next.js static assets for stronger first-session offline behavior.
25
-
- Batch and Dynamic roadmap pages remain accessible but are `noindex`and omitted from the sitemap until they ship.
27
+
- Batch is now a real indexed static tool; Dynamic remains a `noindex`Phase 3 roadmap route.
26
28
- Design tabs now use a keyboard-friendly roving tab stop with Arrow/Home/End navigation, and advanced range controls match the renderer/import schema limits.
27
29
28
30
### Fixed
@@ -53,7 +55,7 @@ All notable changes follow Keep a Changelog and Semantic Versioning.
53
55
- Release and CI installs use the committed lockfile with `--frozen-lockfile`; release verification also runs the production dependency audit, and CI uses bounded job timeouts with stale-run cancellation.
- Added regressions for v1/v2→v3 migration/import safety, payload edge cases, QR capacity failure, favorite/history persistence, logo MIME/SVG hardening, region/frame rendering, design-share privacy, batch parsing/limits, print planning, Auto Fix, resolution-invariant obstruction scoring, finder/gradient contrast, runtime renderer hardening, PWA behavior, dynamic-roadmap `noindex`, keyboard tab navigation, RTL and responsive overflow.
57
59
- Browser QA covers renderer→scanner round trips, all shipped presets, advanced styles, exports, accessibility, and mobile/desktop behavior.
58
60
59
61
> The first public release, `v0.1.0`, remains gated on a clean install from the committed lockfile and the complete lint, typecheck, unit, production-build, browser, accessibility, dependency-audit, and security acceptance matrix. Roadmap phase numbers do not determine SemVer major versions.
-60 data-defined presets with search, category filters and local favorites; every preset is covered by automated decode regression tests
40
+
- live preview, advanced Undo/Redo, Reset, Surprise Me, keyboard shortcuts, project tags, duplicate/search and 40-revision local design history
41
+
- versioned JSON design import/export with explicit v1/v2 → v3 project migration plus privacy-safe design-only share URLs
42
42
- custom raster export from 256–8192 px plus 512/1024/2048/4096 presets
43
43
- SVG, PNG, JPEG, WebP and PDF export through the same renderer
44
+
- mockup preview, printer-aware sizing guidance, Scan Safety v2 stress simulations and deterministic scan-first Auto Fix
45
+
- local CSV/TSV/JSON batch generation up to 500 rows with templates, Worker preparation, ZIP exports and PDF sheets
44
46
45
47
### Scan → Redesign
46
48
47
-
The local scanner accepts uploaded, dropped or pasted raster images. It detects the decoded content type, previews normalized HTTP(S) URLs before navigation, and can send the payload into the Designer using same-tab `sessionStorage` instead of putting sensitive content into the URL.
49
+
The local scanner accepts live camera input plus uploaded, dropped or pasted raster images. It detects the decoded content type, previews normalized HTTP(S) URLs before navigation, and can send the payload into the Designer using same-tab `sessionStorage` instead of putting sensitive content into the URL.
48
50
49
51
## Scan safety
50
52
51
-
The current score is deterministic and explainable. It evaluates contrast, weakest gradient-stop contrast, inherited and customized finder contrast, quiet zone, QR density/version, output module size, logo pressure, higher-risk geometry, encoding failure and — most importantly — whether the final browser-rasterized SVG can actually be decoded.
53
+
Scan Safety v2 is deterministic and explainable. It evaluates contrast, weakest gradient-stop contrast, finder and per-region contrast, quiet zone, QR density/version, output module size, logo pressure, higher-risk geometry, encoding failure and — most importantly — whether the final browser-rasterized SVG can actually be decoded. Optional local degradation tests exercise blur, down/up-scaling, rotation and reduced contrast; Auto Fix applies conservative styling changes and is regression-tested to improve deliberately risky designs.
52
54
53
55
Every export performs a decode preflight. Raster exports are checked again after image compression before the download is allowed. The score is a risk signal, not a guarantee for every printer, surface, camera or lighting condition.
54
56
55
57
See [Scan Safety](docs/SCAN_SAFETY.md).
56
58
57
59
## Local projects
58
60
59
-
Projects are stored in IndexedDB and carry an explicit document schema version. The Projects view supports search, sorting, favorites, rename, duplicate, delete and reopen. Transactions are treated as complete only after IndexedDB commits them. JSON export is the portable backup format.
61
+
Projects are stored in IndexedDB and carry an explicit document schema version. The Projects view supports search across names/tags/content, sorting, tags, favorites, rename, duplicate, delete and reopen. Saved edits retain the latest 40 local revisions for explicit restore-as-working-copy history. Transactions are treated as complete only after IndexedDB commits them. JSON export is the portable backup format.
60
62
61
63
## Privacy & security
62
64
@@ -120,13 +122,13 @@ Set `NEXT_PUBLIC_SITE_URL` to the public HTTPS origin before a production deploy
A new visual style is not releaseable merely because it looks good: it must survive automated decode regression coverage.
126
128
127
129
## SEO
128
130
129
-
Useful landing pages exist for static features that actually ship. Batch and Dynamic routes remain accessible as roadmap documentation but are `noindex` and omitted from the sitemap until those features ship. Metadata includes canonical URLs, sitemap, robots, raster OpenGraph/Twitter artwork and structured SoftwareApplication/FAQ data.
131
+
Useful landing pages exist for static features that actually ship. Batch is a shipped Phase 2 static feature and is indexed; the Dynamic route remains roadmap documentation, is `noindex`, and stays out of the sitemap until Phase 3 server mode ships. Metadata includes canonical URLs, sitemap, robots, raster OpenGraph/Twitter artwork and structured SoftwareApplication/FAQ data.
Copy file name to clipboardExpand all lines: ROADMAP.md
+5-5Lines changed: 5 additions & 5 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -5,12 +5,12 @@
5
5
## Phase 1 — Foundation & Static QR Studio
6
6
Release-candidate static generator foundation: custom SVG renderer, image scanner, scan-safety v1, local projects, offline PWA, exports, accessibility and SEO. Public release remains gated by the complete clean-install and browser/security QA matrix.
7
7
8
-
## Phase 2 — Professional Designer — In progress
9
-
Neighbour-aware rendering, richer frames/gradients, 50+ validated presets, mockups, print assistant, safety simulations/Auto Fix, camera scanner, batch generation and advanced history.
The Phase 2 implementation now contains neighbour-aware Connected/Fluid rendering, independent finder controls, per-region styling, advanced gradients/frames, 60 searchable/favoritable presets, Surprise Me, project tags/search/duplicate/history, design-only sharing, schema-v3 migration, mockups, Print Safety Assistant, Scan Safety v2 simulations/Auto Fix, camera/upload/drop scanner flows, Scan → Redesign, and a local 500-row CSV/TSV/JSON batch pipeline with Worker preparation, templates, ZIP/PDF exports and capacity analysis.
10
10
11
-
Current Phase 2 foundation includes neighbour-aware Connected/Fluid modules, independent finder overrides, multi-stop module/background gradients, schema-v2 project migration, and matching scan-safety regression coverage.
11
+
Phase 2 does **not** become release-complete until the clean-install lint/typecheck/unit/build/a11y/E2E/browser matrix, 500-row batch acceptance run, dependency/security checks, performance/bundle audit and Phase 1 regressions are green.
12
12
13
-
## Phase 3 — Dynamic & Developer Platform
14
-
Optional PostgreSQL server mode, dynamic redirects, privacy-respecting analytics, REST/OpenAPI, API keys, SDK/React/CLI/embed/MCP packages and Docker self-hosting.
13
+
## Phase 3 — Dynamic & Developer Platform — Next after Phase 2 gate
14
+
Optional PostgreSQL server mode, dynamic redirects, privacy-respecting analytics, REST/OpenAPI, API keys, SDK/React/CLI/embed/MCP packages and Docker self-hosting. Static generation must remain server-independent.
15
15
16
16
Each phase is gated by regression, accessibility, performance, dependency and security audits.
Copy file name to clipboardExpand all lines: apps/web/app/about/page.tsx
+1-1Lines changed: 1 addition & 1 deletion
Original file line number
Diff line number
Diff line change
@@ -8,6 +8,6 @@ export default function AboutPage() {
8
8
<h1>A QR tool built around the part other editors hide: reliability.</h1>
9
9
<p>ModuQR separates QR encoding from visual rendering, keeps static generation local, and treats scanability as a product feature rather than an afterthought.</p>
10
10
<h2>Current scope</h2>
11
-
<p>The static QR studio, local image scanner, local projects, exports, PWA behavior, accessibility, SEO, and open-source quality form the current release-candidate foundation. Phase 2 is expanding the professional designer while the optional dynamic server platform remains a later milestone.</p>
11
+
<p>The static QR studio, local camera/image scanner, local projects, exports, PWA behavior, accessibility, SEO, professional design controls, safety simulations, and local batch generation form the current Phase 2 release-candidate foundation. The optional dynamic server platform remains a later milestone.</p>
0 commit comments