π Batteries included. Screens refresh every morning at 06:00 UTC.
- Developer by day, designer by night
- Currently studying International Business Management
- π Researching: Language, CNF, and how they can be applied to LLM system prompts
- π― Collaboration: Actively looking to contribute to open-source projects involving UI components
- πΌ Work: Open for remote work and freelancing
πΉοΈ How the console works
GitHub strips <style>, <script> and class attributes out of every README, so
the usual answer β build it in CSS β is off the table. But an SVG loaded through
an <img> renders as its own little document, and SMIL animation inside that
document still runs. So the whole handheld is one self-contained SVG file:
shell, buttons, hinge, both screens, every animation.
Two details worth stealing:
The text is a real bitmap font. Web fonts don't load inside a README-embedded
SVG, and system fonts render differently on every machine. So scripts/lib/glyphs.mjs
defines a 5Γ7 pixel font by hand, each glyph compiled to an SVG <path> in <defs>
and stamped out with <use>. Genuinely pixelated, identical for everyone, and
cheap enough that ~700 characters of text costs about 30 KB.
Every animation is discrete. A browser rasterises an embedded SVG as one
texture, so anything that moves continuously β a crossfade, a sweeping second
hand β redraws the entire console 60 times a second. An early version made
laptop fans audible. Now the second hand ticks, panels snap, and the whole
thing repaints about once a second. It reads as more of a real handheld, not
less. There are no filters either: the shadow is three offset rectangles,
because feDropShadow recomputes a full-canvas blur on every repaint.
Nothing renders from empty. Bars are drawn at their final width and the first slot of each rotation starts visible, so if animation is stripped or the image is captured as a still, the screens read as finished rather than blank.
Five shell colours (lime, noir, snow, cobalt, coral), two avatars, and
screens that follow whichever theme the visitor has GitHub set to β so a black
console can show a light UI, or a white one a dark UI. All of it is two lines in
content.json.
content.json |
Everything the top screen says. Edit this, not the code. |
scripts/lib/glyphs.mjs |
The 5Γ7 font, as ASCII art. |
scripts/lib/sprites.mjs |
The avatars, same idea at 24Γ24. |
scripts/lib/ds.mjs |
Shell geometry and both screen layouts. |
scripts/lib/data.mjs |
GitHub API β numbers. Degrades to public data, then to demo data. |
.github/workflows/refresh-ds.yml |
Redraws and commits both themes daily. |
Want one on your own profile? SETUP.md walks through it β about ten minutes, no dependencies to install.



