Site system / 01

The machine
behind this site.

This portfolio runs on a 2014 Mac mini with an Intel i5 and 8 GB of RAM. It runs Void Linux, without a desktop, and serves the site through a small Rust application.

Hardware / 01

An older machine.
A useful job.

The mini was already on. A portfolio is a good place to keep it working and try a different server stack while keeping the interface intact.

The build runs on a separate development machine. The mini receives the finished pages and executable, so it can spend its time serving requests.

Machine
Mac mini · 2014
Processor
Intel Core i5-4260U · 1.4 GHz
Cores / threads
2 / 4
Memory
8 GB
Storage
500 GB mechanical drive
Operating system
Void Linux
Service supervisor
runit

Software / 02

Svelte builds the interface.
Rust serves it.

Build time

The existing interface.

SvelteKit generates the pages, styles, and browser code. The typography, layouts, project filters, and motion stay part of the Svelte interface. Node runs during this build.

Request time

A small Rust application.

Axum serves the generated HTML and assets. It also validates contact submissions and passes accepted messages to Resend for delivery. The mini runs a single static Linux executable.

Between releases

A supervised service.

runit starts the server and keeps it running. Each release lives in its own directory, with a previous release retained for rollback. A deployment replaces the active release and restarts the service.

Request path / 03

From your browser
to the mini.

  1. 01

    Browser

    Requests a page and runs the site's Svelte interactions.

  2. 02

    Vercel

    Provides public HTTPS and forwards the request to the origin.

  3. 03

    Tailscale Funnel

    Carries the request to the mini through an encrypted connection.

  4. 04

    Rust / Axum

    Serves the page or handles the contact form on the mini.

Vercel still manages DNS, public HTTPS, and the domain redirect. Every network request reaches the application server on the mini; the relays do not keep CDN copies. Your browser can retain versioned assets locally. Requests to the server require authentication from the edge.

Field note / 04

A small
memory footprint.

During deployment checks on , the Rust server used roughly 6 MiB of resident memory.

One observation of the server process after verification. This is not total machine usage, a benchmark, or a live reading.

~6 MiB Server process / resident memory Explore the work