MOWGLI

mowglissh

Full stack, mostly the back. I build systems that read the web all day — crawlers that keep going, extraction that survives the page changing, and search over an archive that never stops growing. Lately, models that have to cite the document they answered from.

the legacy is still in production

Stack

pythonphpfastapimysqlrediselasticsearchvuedockerlangchain

Index

A/01 — monitoring

Watchtower

A media-monitoring platform for institutional clients. Saved searches, shared alerts, folders, deduplication — over an archive that only ever grows. PHP, MySQL, Redis, Elasticsearch.

A/02 — migration

The Long Port

Moving a live PHP 7.4 product to Python, endpoint by endpoint, with nobody logged out. No big-bang cutover, no parallel truth. The legacy is still in production, and that is the point.

A/03 — retrieval

Vector Room

Semantic search and question answering over the archive. Embeddings, vector search, and an assistant held to citing the document it answered from. Elasticsearch, FastAPI, LangChain.

A/04 — acquisition

Quarry

A fleet of crawlers and pluggable extractors: RSS where it exists, full text where it does not, and sites that would rather not be read. Scheduled, throttled, restartable. Python, Docker.

A/05 — editorial

Nightly

Newsletters written by a model and shaped by editorial rules — scoped per folder, per theme, per client, and sent on a schedule nobody has to remember. FastAPI, OpenAI, Mistral.

Frames, proofs, notebooks.

A/01 screen
01 — dashboard16:10
negative
05 — negative4:5
A/02 proof
02 — proof3:4
notebook
04 — notebook16:10
workshop
03 — workshop1:1
panorama
06 — panorama21:9
contact sheet
07 — contact1:1
spread
08 — spread4:3
colour bardo not trim
rev. Cok to print

Covers, spines, stacks

21 spines — drag them around

nightpress
The Shape of Data
M. Auger
01
atelier 9
Kerning by Hand
R. Vasquez
02
orbit books
Uptime
J. Okonkwo
03
nightpress
Ledgers & Other Fictions
S. Baumann
04
press 84
Cold Storage
A. Lindqvist
05
atelier 9
On Legibility
T. Moreau
06
orbit books
The Long Migration
P. Ekwueme
07
press 84
Static Binaries
K. Rees
08
nightpress
Rooms for Machines
D. Halvorsen
09
radio zero
Night Broadcast
C. Ferrand
10
atelier 9
Proofs
L. Barros
11
press 84
A Grammar of Interfaces
N. Salib
12
nightpress
Held by Hand
M. Auger
13
orbit books
Failure Modes
I. Kovač
14
atelier 9
The Setting Machine
R. Vasquez
15
nightpress
Ten Years Out
S. Baumann
16
orbit books
Edge Cases
J. Okonkwo
17
press 84
Hyphenation
T. Moreau
18
nightpress
The Reconciler
A. Lindqvist
19
atelier 9
Marginalia
L. Barros
20
radio zero
Sixty Hertz
C. Ferrand
21
B/00 — the handle

MOWGLI

The handle came from a shell prompt and never left. Everything here runs on somebody else's machines anyway — servers in a rack, pages that belong to other people, archives that grow whether or not anyone is watching.

mowgli@jungle — ssh -p 1998
mowgli@jungle:~$whoami
mowgli — full stack, mostly the back
mowgli@jungle:~$pwd
/dev/jungle
mowgli@jungle:~$ls ~/work
watchtower the-long-port vector-room
quarry nightly
mowgli@jungle:~$ps aux | grep legacy
php 7.4 still running, still paying
mowgli@jungle:~$cat /etc/motto
"migrate it while it is awake"
mowgli@jungle:~$
jungle plate — drop a photo
B/00 — plate

The workshop

monitor● NO SIGNAL
no clip wired up
tape deckspotify
Tape 01
placeholder
console
mowgli@ssh ~ %
2026.08 — another endpoint off PHP, nobody noticed
2026.07 — teaching the archive to answer questions
2026.06 — a crawler that finally backs off politely

A press run, in the other sense.

seeded from today's date — same level for everyone, until midnight

Press runarrow keys scroll the page
← → run · space jump · esc quitbest kept on your machine
MowgliSSH — MowgliSSH — MowgliSSH — MowgliSSH — MowgliSSH — MowgliSSH —
MOWGLISSHsubject 0x0000
file opened 00:00:00subject was not informed

THE VISITOR

what you took

scrolled
that's
changed your mind
time on premises
cards moved
paper shifted
most molested
…picked up
covers touched
links clicked
address hovered
address clicked
clicks that hit nothing
press runs started
time in the arcade
best distance
times trimmed
time actually reading
what you left
0

the rules

  1. 01you do not talk about the framework
  2. 02you DO NOT talk about the framework
  3. 03if someone says "just use React", the build is over
  4. 04as many divs as necessary
  5. 05one page at a time
  6. 06no shoes, no analytics
  7. 07if this is your first visit, you have to drag something

hello, friend.

you have been here . you picked up and never opened it. you hovered the address times.

i am going to make this easy.

hey@mowglissh.dev
the record is being destroyed
RECORD DELETED

None of this left your browser. There was no request, no cookie, no id — the numbers were counted in this tab and are gone the moment you close it. The only thing this page ever wanted was the line below.

hey@mowglissh.dev
MowgliSSH · Paris · 2026 · set in Archivo Black, Bodoni Moda and IBM Plex Mono