← All projects

Design Lab

Live

Every project needed a front end, so I got good at making them. The explorations, the rejects, a style engine that skins one page 32 ways, and the sites that shipped.

Design Lab
HTML / CSS / JSReactAstroTailwindStatic + dynamic

Website design crept up on me. Every project I built, home lab services, AI apps, business ideas, automation, eventually needed a front end: a landing page, a docs portal, a dashboard, a customer portal, a marketing site. So I learned to build them myself instead of leaning on templates.

I taught myself by shipping. Personal sites and a blog, company and marketing sites, AI demo pages, customer portals, documentation platforms, dashboards, and lead-capture pages. Each one forced a new piece of design, front-end, or UX. I deliberately avoided getting locked into one framework: plain HTML, CSS, and JavaScript, React, Astro, drag-and-drop builders, component libraries, static sites and dynamic apps, whatever fit the job.

The range of it

The work has spanned a lot of ground: client portals with role-based dashboards, a payment portal wired to Stripe and Plaid, deployable lead-capture and intake landing pages, a study companion for the Cisco CCDE, documentation hubs, and full marketing sites. Different audiences, different stacks, the same goal each time.

Patterns worth reusing

After enough builds, the same pieces kept showing up: navigation, contact forms, docs, authentication, dashboards, scheduling, chat, lead capture. So I started turning them into reusable templates and design standards I can drop into a new project, which cuts build time and keeps things consistent.

Sites you can poke at

A few are live: almnjoy.dev (a retro Windows 98 desktop), quickitprojects.com (clean consulting), madeformeai.com (a modern SaaS product), and Packet Labs (what the old netadmintoolbox.com became).

What it taught me

A powerful app still fails if people can’t figure out how to use it. Good design is mostly about making technology approachable: clear layouts, sensible customer journeys, organized content, and interfaces that work on any screen. Translating a complex system into something a non-technical person can actually use is the part I care about most, and it shows up in everything else I build.