2019: The Starting Line
Tech Haven — My First Portfolio
Every developer remembers their first website. Mine was Tech Haven, a simple portfolio hosted on GitHub Pages. Plain HTML and CSS. A nav bar, a headshot, a welcome message, and a footer with my phone number. No frameworks, no build tools — just a text editor and a dream.
Looking back, it's almost comically bare-bones. But it taught me the fundamentals: how the browser renders a page, how to structure content semantically, and the satisfaction of seeing something you built live on the internet for the first time.
Distant Dream — Building for a Client
Shortly after, I built a site for Distant Dream, a music project. This one had a mailing list signup form and links out to Spotify, Apple Music, and Bandcamp. It was still basic HTML and JavaScript, but it was the first time I built something for someone other than myself. That shift — from "can I make this work?" to "does this serve the user?" — was more important than any framework I'd later learn.
Everlasting Entertainment — Sharpening the Craft
The third project from that year was a personal branding site for an entertainer called Everlasting. A landing page with a gallery, social links to Twitch, YouTube, and Instagram. Still static, still simple — but each project was getting a little cleaner, a little more intentional in its design.
The JavaScript Era
Bass Case — Going Interactive
Bass Case was a turning point. It was a browser-based game — and it was the first project where the entire experience depended on JavaScript. No fallback, no static content — if JS didn't load, you got nothing. This was my introduction to building truly interactive, client-rendered applications. It forced me to think about state, user input, and the event loop in ways that static sites never demanded.
Leveling Up: React and Next.js
WayTech — My First Next.js Project
WayTech was the site for an IT solutions company, and it was my first real Next.js build. Service cards, a contact form, SEO meta tags, Open Graph data, image optimization — suddenly I wasn't just making pages, I was thinking about performance, discoverability, and how the site would look when someone shared it on LinkedIn. Tailwind CSS entered the picture here too, and it fundamentally changed how I approached styling.
Janet and Rays — Entering Full-Stack Territory
A restaurant website for Janet and Rays in Tucson, AZ pushed me into full-stack development. Next.js on the frontend, Prisma for database operations, tRPC for type-safe API communication, and a PlanetScale database on the backend. This was the first time I owned the entire vertical — from the UI someone sees to the database query that feeds it. Managing menus, hours, and contact forms meant dealing with real data and real CRUD operations, not just static content.
Professional Polish
CloudWay — The Agency Portfolio
CloudWay went through two iterations, and together they represent a big leap in design maturity. The first version was built with Astro, a static site generator I chose for its performance-first philosophy. It was clean, minimal, and fast.
The second version — the one live at cloud-way.dev — is a full Next.js + TypeScript + Tailwind build with a dark theme, animated nebula background, glassmorphism effects, smooth scroll-triggered animations, and a proper portfolio section. It showcases the projects I'm most proud of and positions my freelance work as a real agency offering: design, full-stack development, and mobile apps.
The gap between the two CloudWay versions is the gap between "I can build websites" and "I can craft experiences."
The Steel Mug — Design-Driven Development
The Steel Mug is a specialty coffee shop site that pushed my frontend design skills further than anything before it. Dark mode with localStorage persistence, a warm cream-and-zinc color palette, textured grain background effects, serif/sans-serif typographic pairing, and a loyalty points system. It's built on Next.js with React Server Components, and every detail — from the rounded card layouts to the subtle blur effects — was intentional.
This project taught me that great development isn't just about making things work. It's about making things feel right.
2024-Present: Inksoul — The Full Picture
Inksoul is the most ambitious project I've built to date. It's a literary platform for publishing and reading stories, poems, and essays — and it pulls together everything I've learned across six years of development.
The tech stack reads like a checklist of modern full-stack development: Next.js 15 with the App Router, tRPC v11 for end-to-end type-safe APIs, Prisma 6 with PostgreSQL on Neon, Better Auth for authentication, Tailwind CSS v4, and Cloudflare R2 for file storage. The editor is built on TipTap with custom extensions for in-line codex term suggestions.
But what makes Inksoul meaningful isn't the stack — it's the architecture. Server components by default, with client components only where interactivity demands it. Presigned upload URLs so clients talk directly to R2 without routing files through my server. A codex system with spoiler levels tied to reading progress. Series with ordered chapters. Skeleton loading states for every route.
It's the kind of project I couldn't have even conceptualized in 2019, let alone built.
What Six Years Taught Me
Looking at these projects lined up, a few themes stand out:
Each project solved a problem the last one couldn't. Static HTML couldn't handle interactivity, so I learned JavaScript. Vanilla JS couldn't scale, so I learned React. React alone couldn't handle SEO and performance, so I learned Next.js. And client-only apps couldn't manage real data, so I learned Prisma, tRPC, and proper backend architecture.
Design maturity came slower than technical skill. I could wire up a database long before I could pair fonts well. The Steel Mug and CloudWay v2 represent a turning point where I started treating visual design as seriously as I treated code architecture.
The best learning happens when you ship. Every one of these projects is live, deployed, and accessible. Not sitting in a local dev environment. Not abandoned halfway through. Shipped. That discipline — of finishing things and putting them in front of people — has been more valuable than any tutorial.
If you're early in your journey, my advice is simple: build things, ship them, and then build something harder. The progression takes care of itself.
Wayne Foster Jr
Full-stack developer
Full-stack applications, AI features, and cloud architecture — my notes on the software I build day to day, and my journey as a developer.

