Websites and web apps
Sites and applications with Next.js or SvelteKit and TypeScript. Headless CMS so clients edit their own content, internationalisation, and forms that land where they should.
Full-stack developer
I'm Arnau. I sign as nauran. I design and build products end to end: from the API contract to the phone screen, and from the container to the backup.
01
Sites and applications with Next.js or SvelteKit and TypeScript. Headless CMS so clients edit their own content, internationalisation, and forms that land where they should.
Native clients with React Native and Expo for iOS and Android, built to work offline and to share the data contract with the server.
Docker, Cloudflare Tunnel, CI/CD on self-hosted runners, backups and monitoring. Services that run on a Raspberry Pi at home and are reachable from anywhere.
Workflows built on language models: extracting data from images, bots, and coding-agent sessions coordinated under clear rules.
02
What I have going on. Some are for clients, others are personal products I use every day and that double as my testing ground.
Multilingual website with a CMS for a tattoo artist
Sales landing for her online course, gallery, blog, booking and contact in four languages (EN, RU, HY, JA). The artist manages every piece of content from an embedded Sanity Studio, no code involved.
VisitPersonal expense manager with receipt OCR and bank reconciliation
Replaces a years-old spreadsheet. Snap the receipt, a vision model extracts the data and you review it before saving; bank statements are imported and matched against what was logged. Naufull is the native mobile client, sharing an API contract across repos.
Real-time workout logging with stats
Sets, reps, weight and technique notes from your phone, with rest timer, supersets and a plate calculator. Keeps working on flaky gym Wi-Fi thanks to an idempotent write queue. Pyreon is the Expo app consuming the same API.
A personal digital self-control platform
A Raspberry Pi signs blocking policies and native agents on Windows and Linux enforce them locally. The server is never on the browsing path: no VPN, no proxy, no history collected, and blocking keeps working offline.
Maritime trade simulator set in the 3rd-century-BC Mediterranean
Cities, goods, markets, ships and routes in a pure Rust simulation core with no graphics engine, consumed by the UI layer. In the spirit of Patrician and Port Royale.
Downloads and an ebook library, self-hosted
Self-hosted app on the Raspberry Pi to download from hosters and keep a classifiable book library, served with Calibre-Web. Spec-driven and Docker-first from day one.
Control plane for autonomous coding agents
A deterministic orchestrator, not an LLM, that hands out tasks to agent sessions, demands a green gate before integrating and leaves a trail of everything it does.
Music bot for Discord
Playback with audio filters, genre autoplay and sticky messages. Runs on the Raspberry Pi and deploys from the home runner.
03
Every non-trivial change starts with a short document: what, why and how it is verified. Architecture decisions are written down as ADRs.
Nothing gets integrated without typecheck, lint, tests and build passing on the actual commit. Linear history, one task per branch.
No secret in a commit or on the command line. One identity per machine, keys in hardware, and an audit trail of what goes in and out.
Every repo states where it stands and what is missing, so anyone, human or agent, can pick up where it was left.
04
Have a project, or want to talk about one of these? Drop me a line.