docs(quality-house): add Freewrite Smart Typewriter to perception zone

This commit is contained in:
Julien Calixte
2026-05-16 11:21:29 +02:00
parent 8b161cc808
commit 5e476a9651

View File

@@ -15,7 +15,7 @@ Out of scope here: §5 component mapping (would need a second house),
§6 critical performance budget (already a curated rank), §7 tradeoffs
(narrative), §8 inconsistencies (history).
The perception zone scores four products against the WHATs on a 05 scale.
The perception zone scores five products against the WHATs on a 05 scale.
**These are educated guesses, not measurements** — see the
[scoring rationale](#perception-scores-guessed) below for what each cell
is based on. Useful for self-positioning ("where do we land vs the
@@ -264,6 +264,7 @@ market"), not as a fair head-to-head buyer's guide.
\definecolor{qfdcRem}{RGB}{213,94,0}
\definecolor{qfdcFrw}{RGB}{0,158,115}
\definecolor{qfdcPom}{RGB}{204,121,167}
\definecolor{qfdcFrwS}{RGB}{86,180,233}
\tikzset{
qfdalt1mk/.style={circle, draw=qfdcOurs, fill=qfdcOurs!55!white,
@@ -280,6 +281,10 @@ market"), not as a fair head-to-head buyer's guide.
fill=qfdcPom!50!white,
minimum size=7pt, inner sep=0pt, line width=1.0pt},
qfdalt4ln/.style={line width=0.8pt, dash dot, qfdcPom},
qfdalt5mk/.style={star, star points=5, star point ratio=0.55,
draw=qfdcFrwS, fill=qfdcFrwS!55!white,
minimum size=7.5pt, inner sep=0pt, line width=0.9pt},
qfdalt5ln/.style={line width=0.8pt, dash dot dot, qfdcFrwS},
}
\begin{document}
@@ -457,34 +462,37 @@ market"), not as a fair head-to-head buyer's guide.
\node[anchor=east, font=\scriptsize\itshape]
at ({-0.1}, {-\qfdNW - \k + 0.5}) {\lbl};
% ---------- Perception zone: 4 products x 13 WHATs (0-5 scores) ----------
% ---------- Perception zone: 5 products x 13 WHATs (0-5 scores) ----------
% Columns: \so=Ours target, \st=reMarkable 2 + Type Folio,
% \sf=Freewrite Traveler, \sg=Pomera DM250.
% \sf=Freewrite Traveler, \sg=Pomera DM250,
% \sh=Freewrite Smart Typewriter.
% Pass 1: stash each score as a named coordinate so the profile lines
% below can reuse it without recomputing.
\foreach \r/\so/\st/\sf/\sg in {%
1/4/3/3/5,
2/5/4/4/2,
3/4/4/2/2,
4/5/2/2/5,
5/4/3/3/5,
6/3/3/4/5,
7/5/2/5/5,
8/4/3/4/5,
9/4/3/1/1,
10/5/4/2/1,
11/1/5/5/4,
12/3/1/2/3,
13/3/5/2/2%
\foreach \r/\so/\st/\sf/\sg/\sh in {%
1/4/3/3/5/2,
2/5/4/4/2/4,
3/4/4/2/2/2,
4/5/2/2/5/2,
5/4/3/3/5/3,
6/3/3/4/5/4,
7/5/2/5/5/5,
8/4/3/4/5/4,
9/4/3/1/1/1,
10/5/4/2/1/2,
11/1/5/5/4/5,
12/3/1/2/3/2,
13/3/5/2/2/2%
} {
\pgfmathsetmacro{\xo}{\qfdNH + (\so + 0.5)*\qfdCmpW/6}
\pgfmathsetmacro{\xt}{\qfdNH + (\st + 0.5)*\qfdCmpW/6}
\pgfmathsetmacro{\xf}{\qfdNH + (\sf + 0.5)*\qfdCmpW/6}
\pgfmathsetmacro{\xg}{\qfdNH + (\sg + 0.5)*\qfdCmpW/6}
\pgfmathsetmacro{\xs}{\qfdNH + (\sh + 0.5)*\qfdCmpW/6}
\coordinate (po-\r) at (\xo, {-\r + 0.5});
\coordinate (pr-\r) at (\xt, {-\r + 0.5});
\coordinate (pf-\r) at (\xf, {-\r + 0.5});
\coordinate (pp-\r) at (\xg, {-\r + 0.5});
\coordinate (ps-\r) at (\xs, {-\r + 0.5});
}
% Pass 2: profile lines per alternative. Drawn before markers so the
@@ -493,6 +501,7 @@ market"), not as a fair head-to-head buyer's guide.
\draw[qfdalt2ln] (pr-1) \foreach \r in {2,...,\qfdNW} { -- (pr-\r) };
\draw[qfdalt3ln] (pf-1) \foreach \r in {2,...,\qfdNW} { -- (pf-\r) };
\draw[qfdalt4ln] (pp-1) \foreach \r in {2,...,\qfdNW} { -- (pp-\r) };
\draw[qfdalt5ln] (ps-1) \foreach \r in {2,...,\qfdNW} { -- (ps-\r) };
% Pass 3: markers on top of the lines.
\foreach \r in {1,...,\qfdNW} {
@@ -500,13 +509,14 @@ market"), not as a fair head-to-head buyer's guide.
\node[qfdalt2mk] at (pr-\r) {};
\node[qfdalt3mk] at (pf-\r) {};
\node[qfdalt4mk] at (pp-\r) {};
\node[qfdalt5mk] at (ps-\r) {};
}
% ---------- Manual legend (4 alternatives, placed right of zones) ----------
% ---------- Manual legend (5 alternatives, placed right of zones) ----------
\pgfmathsetmacro{\qfdLegX}{\qfdNH + \qfdCmpW + 0.7}
\begin{scope}[shift={(\qfdLegX, \qfdHdrH - 0.4)}]
\draw[qfdmed, rounded corners=2pt]
(-0.15, 0.4) rectangle (5.1, -7.05);
(-0.15, 0.4) rectangle (5.1, -7.50);
% Relations
\node[anchor=west, font=\footnotesize\bfseries] at (0, 0.1)
{Relation};
@@ -539,10 +549,13 @@ market"), not as a fair head-to-head buyer's guide.
\draw[qfdalt3ln] (0.05, -5.70) -- (0.45, -5.70);
\node[qfdalt3mk] at (0.25, -5.70) {};
\node[anchor=west] at (0.55, -5.70) {Freewrite Traveler};
\draw[qfdalt4ln] (0.05, -6.15) -- (0.45, -6.15);
\node[qfdalt4mk] at (0.25, -6.15) {};
\node[anchor=west] at (0.55, -6.15) {Pomera DM250};
\node[anchor=west, font=\scriptsize\itshape] at (0, -6.70)
\draw[qfdalt5ln] (0.05, -6.15) -- (0.45, -6.15);
\node[qfdalt5mk] at (0.25, -6.15) {};
\node[anchor=west] at (0.55, -6.15) {Freewrite Smart Typewriter};
\draw[qfdalt4ln] (0.05, -6.60) -- (0.45, -6.60);
\node[qfdalt4mk] at (0.25, -6.60) {};
\node[anchor=west] at (0.55, -6.60) {Pomera DM250};
\node[anchor=west, font=\scriptsize\itshape] at (0, -7.15)
{0 = poor, 5 = excellent};
\end{scope}
@@ -552,31 +565,33 @@ market"), not as a fair head-to-head buyer's guide.
## Perception scores (guessed)
Four products on the 05 scale, scored against each WHAT. Reference
Five products on the 05 scale, scored against each WHAT. Reference
configurations: **reMarkable 2 + Type Folio**, **Freewrite Traveler**,
**Pomera DM250** (DM250 has a reflective monochrome LCD, not e-ink — flagged
in W1 / W8). "Ours" is the v0.1 target from `qfd.md` §2, not measured yet.
**Freewrite Smart Typewriter**, **Pomera DM250** (DM250 has a reflective
monochrome LCD, not e-ink — flagged in W1 / W8). "Ours" is the v0.1
target from `qfd.md` §2, not measured yet.
| ID | WHAT (truncated) | Ours | reM. | Frw. | Pom. | Rationale (shortest defensible) |
| --- | ----------------------------------------------- | :--: | :--: | :--: | :--: | ---------------------------------------------------------------------------------------------------------------- |
| W1 | Sub-second response to typing | 4 | 3 | 3 | 5 | Ours targets ≤200 ms; reMarkable + Freewrite (e-ink) are visibly laggy; Pomera's reflective LCD is near-zero. |
| W2 | Publishing is one deliberate action away | 5 | 4 | 4 | 2 | Ctrl-G atomic; reMarkable + Freewrite cloud-sync is one-tap but not git; Pomera = USB/SD copy or QR transfer. |
| W3 | Pulling power never corrupts the file | 4 | 4 | 2 | 2 | Ours: atomic-rename + fsync. reMarkable journals. Freewrite + Pomera: forum reports of corruption on yank. |
| W4 | Provisioning never interrupts writing | 5 | 2 | 2 | 5 | Ours v0.1: build-time config (dev-only). reM/Frw need Wi-Fi + account. Pomera: literally none. |
| W5 | Quick boot to a writing cursor | 4 | 3 | 3 | 5 | Ours target ≤5 s. reMarkable cold-boots ~20 s (great from sleep). Pomera ~3 s. |
| W6 | Long sessions without crash / lag / drift | 3 | 3 | 4 | 5 | Ours unproven (1 h target). Freewrite famously stable. Pomera firmware is decades-mature. |
| W7 | Nothing on the device competes with prose | 5 | 2 | 5 | 5 | reMarkable has apps, menus, drawing, PDFs. Freewrite + Pomera are single-purpose; ours by design. |
| W8 | The UI never moves except when I move it | 4 | 3 | 4 | 5 | reMarkable animates more; ours uses dirty-rects; Freewrite minimal motion; Pomera near-static LCD. |
| W9 | Codebase absorbs the planned roadmap | 4 | 3 | 1 | 1 | Modular Rust ours; reMarkable is hackable Linux; Freewrite + Pomera are closed firmware. |
| W10 | I can repair or fork it with hobbyist tools | 5 | 4 | 2 | 1 | Ours: open BOM + ESP32. reMarkable: rooted Linux + community ROMs. Freewrite + Pomera: closed. |
| W11 | Multi-day battery life (v0.8 onward) | 1 | 5 | 5 | 4 | Ours v0.1 = wall-powered (battery deferred). reMarkable + Freewrite Traveler legendary. Pomera ~24 h. |
| W12 | Local-only files coexist with git scope | 3 | 1 | 2 | 3 | Ours v0.5+ design. reMarkable cloud-only. Freewrite has local + Postbox but no VCS. Pomera = pure local. |
| W13 | Typography sets a writing-tool tone | 3 | 5 | 2 | 2 | Ours v0.1: single mono (serif option in v1.0). reMarkable: rich type rendering. Freewrite + Pomera: utilitarian. |
| ID | WHAT (truncated) | Ours | reM. | Frw.T | Frw.S | Pom. | Rationale (shortest defensible) |
| --- | ----------------------------------------------- | :--: | :--: | :---: | :---: | :--: | ---------------------------------------------------------------------------------------------------------------------------- |
| W1 | Sub-second response to typing | 4 | 3 | 3 | 2 | 5 | Ours targets ≤200 ms; reMarkable + Frw.S (e-ink) visibly laggy, Smart's larger panel slower than Traveler; Pomera LCD ~zero. |
| W2 | Publishing is one deliberate action away | 5 | 4 | 4 | 4 | 2 | Ctrl-G atomic; reMarkable + Freewrite cloud-sync is one-tap but not git; Pomera = USB/SD copy or QR transfer. |
| W3 | Pulling power never corrupts the file | 4 | 4 | 2 | 2 | 2 | Ours: atomic-rename + fsync. reMarkable journals. Freewrite + Pomera: forum reports of corruption on yank. |
| W4 | Provisioning never interrupts writing | 5 | 2 | 2 | 2 | 5 | Ours v0.1: build-time config (dev-only). reM/Frw need Wi-Fi + account. Pomera: literally none. |
| W5 | Quick boot to a writing cursor | 4 | 3 | 3 | 3 | 5 | Ours target ≤5 s. reMarkable cold-boots ~20 s (great from sleep). Both Freewrites ~1015 s e-ink wake. Pomera ~3 s. |
| W6 | Long sessions without crash / lag / drift | 3 | 3 | 4 | 4 | 5 | Ours unproven (1 h target). Freewrite famously stable (both variants). Pomera firmware is decades-mature. |
| W7 | Nothing on the device competes with prose | 5 | 2 | 5 | 5 | 5 | reMarkable has apps, menus, drawing, PDFs. Freewrite + Pomera are single-purpose; ours by design. |
| W8 | The UI never moves except when I move it | 4 | 3 | 4 | 4 | 5 | reMarkable animates more; ours uses dirty-rects; Freewrites minimal motion; Pomera near-static LCD. |
| W9 | Codebase absorbs the planned roadmap | 4 | 3 | 1 | 1 | 1 | Modular Rust ours; reMarkable is hackable Linux; Freewrite + Pomera are closed firmware. |
| W10 | I can repair or fork it with hobbyist tools | 5 | 4 | 2 | 2 | 1 | Ours: open BOM + ESP32. reMarkable: rooted Linux + community ROMs. Freewrite + Pomera: closed. |
| W11 | Multi-day battery life (v0.8 onward) | 1 | 5 | 5 | 5 | 4 | Ours v0.1 = wall-powered (battery deferred). reMarkable + both Freewrites legendary (~4 weeks). Pomera ~24 h. |
| W12 | Local-only files coexist with git scope | 3 | 1 | 2 | 2 | 3 | Ours v0.5+ design. reMarkable cloud-only. Freewrites have local + Postbox but no VCS. Pomera = pure local. |
| W13 | Typography sets a writing-tool tone | 3 | 5 | 2 | 2 | 2 | Ours v0.1: single mono (serif option in v1.0). reMarkable: rich type rendering. Freewrite + Pomera: utilitarian. |
**Totals** (sum across 13 WHATs, no weighting): Ours 50, Pomera 45,
reMarkable 42, Freewrite 39. Pomera ranking second is the useful signal —
we're effectively building "Pomera + Wi-Fi + git + hackable BOM", which
re-confirms the differentiation thesis from `README.md`.
reMarkable 42, Freewrite Traveler 39, Freewrite Smart Typewriter 38.
Pomera ranking second is the useful signal — we're effectively building
"Pomera + Wi-Fi + git + hackable BOM", which re-confirms the
differentiation thesis from `README.md`.
Weighted totals (Σ score × W weight) tell the same story with more
contrast — left as exercise; the unweighted view is enough to read the
@@ -587,9 +602,10 @@ picture.
- **Single-rater bias.** All thirteen rows are scored from the project
author's POV. A reMarkable buyer would weight W11 (battery) at 10 and
W12 (git) at 1, flipping the totals.
- **Configuration matters.** Freewrite Smart Typewriter (e-ink) scores
differently from Traveler (LCD) on W1 / W5. The table picks Traveler
as the most direct competitor.
- **Configuration matters.** Freewrite Smart Typewriter and Traveler are
both tracked; they diverge most on W1 / W5 because of display tech
(Smart's larger panel is slower to refresh). Traveler is still the
more direct competitor on form factor.
- **W3 / W6 Freewrite scores are anecdotal.** Forum reports, not bench
data. Treat the 2 / 4 as "we'd need to test this" rather than fact.
- **No price column.** Ours-as-BOM is materially cheaper than the