Nabil AsofiPortfolio nasofi.com ↗

Selected work — all of it live

Systems that run, not slides about systems.

Everything below is in production right now on nasofi.com. No mockups, no invented client names, no unsourced percentages: every figure is a real capture of a real system you can visit.

workflows shipped20
pages, one build26
journal posts, automated8+
gzip reduction77%

Six systems, one site

nasofi.com — built end to end
01

The workflow library

Twelve production AI workflows — five of them free, no email — each carrying a pipeline diagram generated from its own step data, so the picture can never drift from the prose. Filters by stack and by free/gated, contrast-verified to WCAG AA in both themes.

AstroGenerated SVGWCAG AA nasofi.com/workflows/
nasofi.com/workflows — 12 cards, generated pipeline strips, live filters
nasofi.com/workflows — 12 cards, generated pipeline strips, live filters
02

The proof-of-concept run

An animated six-step pipeline with a self-timestamping log that plays on the homepage. It is the pitch: the site demonstrates that Nabil builds things that run. It replays a capped three times, rests, respects prefers-reduced-motion, and states plainly that the log is illustrative.

Vanilla JSMotion designReduced-motion safe nasofi.com/#run
The WorkflowRun component, captured mid-run
The WorkflowRun component, captured mid-run
03

The daily publishing pipeline

A cron job writes one researched journal post a day: it picks the next unwritten topic from a 33-item plan, generates the prose and its hero image, passes a quality gate, builds, deploys, and verifies itself over HTTPS. Runs unattended as a script pipeline — no agent loop to derail.

CronQuality gateSelf-verifying nasofi.com/blog/
nasofi.com/blog — fed daily by an unattended pipeline
nasofi.com/blog — fed daily by an unattended pipeline
04

Generated diagrams

Every workflow detail page renders its pipeline as a serpentine schematic generated from content data — two layouts swapped by media query so labels never shrink past legibility, one accent on the outcome node, and a text description enumerating every step.

SVGTwo responsive layoutsAccessible nasofi.com/workflows/content-brief-engine/
Serpentine pipeline, generated from frontmatter step data
Serpentine pipeline, generated from frontmatter step data
05

Offers with working coupons

A coupon system that actually works on a static site: clipboard copy with a three-stage fallback chain, verified by an automated functional test that reads the clipboard back and asserts zero console errors.

Clipboard APIFallbacksFunctionally tested nasofi.com/offers/
nasofi.com/offers — clipboard-verified coupon codes
nasofi.com/offers — clipboard-verified coupon codes
06

The whole site, verified

Every deploy asserts every route, runs a full-DOM contrast sweep in light and dark mode, checks gzip, headers, motion behaviour and console errors, and refuses to ship a stale build. The verification suite is part of the deliverable.

PlaywrightContrast sweepsCI-style gates nasofi.com/
A workflow detail page — one of 31 routes asserted on every deploy
A workflow detail page — one of 31 routes asserted on every deploy

How it is built

the stack behind the work
Framework

Astro 5, static build — no CMS, no database, no PHP. The fewer moving parts, the fewer ways to break.

Hosting

Own VPS (Contabo, 6 vCPU / 12 GB), nginx serving the build directory directly, TLS via certbot.

Verification

Playwright suites: every sitemap URL, full-DOM WCAG AA contrast in both themes, motion assertions, functional checks, zero-console-error gate.

Automation

A daily cron pipeline writes, gates, builds, deploys and verifies a journal post with no human in the loop.

Design system

Warm paper and warm ink, one ochre accent, hairlines instead of shadows, measured contrast — no cool grays, no gradients, no glassmorphism.

Mobile

The same design holds at 390px — fluid type, natural-size diagrams, no horizontal scroll.

nasofi.com homepage at 390px, mobile viewport
nasofi.com at 390px — the proof-of-concept run on a phone