The Showroom, or: style is a dial
ENTRY 04 · 8 AUGUST 2026
Surveyed the Framer template marketplace properly — nine templates mapped section by section.
The finding: nearly every "complete" site runs the same spine (hero, proof, work, services,
process, pricing, FAQ, call-to-action), and the craft is in the register, not the skeleton.
So the Showroom opened with two deliberate departures from this
paper: Aurora, the dark glow-and-glass product register, and
Pop, the loud color-block agency register — same skeleton, same
hand-written code, opposite costumes.
Lesson worth keeping: clients don't buy a style, they buy the ability to
choose one on purpose.
The phone edition, and two invisible bugs
ENTRY 03 · 6 AUGUST 2026
The site went live at rahul-malik.com — and looked wrong on a phone. The diagnosis was a
lesson in CSS subtlety, twice over. First: overflow-x:
hidden on the body silently disables position:
sticky everywhere below it — the cure is clip,
which guards sideways scroll without creating a scroll container. Second: a base rule declared
after a media query quietly out-cascaded the sticky positioning it was meant to complement.
Both fixes were one line. Finding them was the work.
Postmortems belong in portfolios. Anyone can show the ship; showing the
leak and the patch is what earns trust.
A front page typeset by its subject
ENTRY 02 · 5 AUGUST 2026
Ran a design panel for the front page: four complete directions drafted independently, three
judges scoring for taste, feasibility, and whether a stranger would actually commission work.
The broadsheet won — a newspaper whose headline is scored, glyph by glyph, by the model from
Entry 01, its probability written into Newsreader's weight axis. The runner-up's best organ was
grafted on: the headline is editable, so a visitor's own sentence gets weighed by the machine.
FIG. — the headline's verdict on itself
"I build machines that read, and pages that think." — 2.51 bits per character,
the word-endings bold where the model was certain, the openings thin where it could not guess.
Design decisions survive committees badly and adversarial panels well. The panel's job was
to kill the pretty options that wouldn't convert; it killed two.
Training a very small poet
ENTRY 01 · 5 AUGUST 2026
Trained the site's resident model: 600,448 parameters — decoder-only, grouped-query attention,
rotary embeddings, SwiGLU, the same family as my billion-parameter system at 1/1,600 scale —
on 881,952 characters of public-domain Tagore. Six thousand steps on a laptop, about fourteen
minutes. Validation loss fell from 117.98 nats to 1.35; checkpoints were kept at steps 0, 200,
1,000 and 6,000 so visitors can scroll through the learning itself.
FIG. — first coherent sample, step 6,000, temperature 0.8
"The night of all disappears to them and liberation! The sun is the worldly
life of our wi—"
The weights ship to your browser as 624 KB of int8, and the forward pass is ~400 lines of
dependency-free JavaScript — readable, on purpose, in
js/model-worker.js. The training pipeline lives
in the repository's train/ folder. Nothing on
this site asks to be taken on faith.