- NEXT.JS
- WEBASSEMBLY
- CLOUDFLARE
- CI/CD
This very site

This portfolio is hand-built with Next.js and deployed on Cloudflare Workers, with a model lab that runs entirely in the browser and continuous deployment on every commit. Code at github.com/jmweb-org/jmweb-pag-web.
Building this site is an engineering project in its own right: the Cloudflare Workers free plan sets a hard 3 MB compressed limit on all server code, so everything heavy — models, visualisations, a Python interpreter — has to live and run in the visitor's own browser.
- Worker size1.73 MB
- Plan limit3 MB
- In-browser demos9+
Everything heavy runs in your browser
The lab's models (an MNIST digit classifier, word embeddings, an attention map) and the WebAssembly playground never touch a server: weights are served as static files, the forward pass runs in JavaScript, and the Python interpreter runs compiled to wasm, all inside the visitor's tab.
A worker on a diet
The code that runs on the server cannot exceed the free plan's 3 MB compressed limit. Libraries like three.js, tokenizers and audio or video players live behind client-only dynamic imports so they never reach the server bundle, and CI watches the worker's weight on every deploy.
It deploys and watches itself
Every push to master triggers automatic tests, a build and a deploy. The PyPI download counts shown on the site refresh on every pipeline run, and a separate workflow checks the credit-risk model every 12 hours to catch anything that stops responding. The code is public at github.com/jmweb-org/jmweb-pag-web.
Next projects:

Credit Risk Platform
End-to-end MLOps platform for credit-default scoring: reproducible training with a versioned model registry, a FastAPI inference API with input validation, PSI drift monitoring and a Prometheus and Grafana observability stack, all containerised with CI. Code at github.com/delcenjo/credit-risk-platform.

Transformer from scratch
A GPT-style language model implemented from scratch in PyTorch: multi-head attention, causal masking and residual blocks written by hand, plus a byte-pair tokenizer and an ablation study. Code at github.com/delcenjo/transformer-from-scratch.