Building a Modern Digital Garden with Google AI: My New Year, New You Portfolio
Source: Dev.to
👋 About Me
Hi, I’m Emmanuel Uchenna – a software engineer, technical writer, and digital‑health advocate. I’m passionate about building technology that empowers people.
- Tech background: 5+ years of experience turning lines of code into meaningful human experiences.
- Specialties: Clean, scalable UI development with React, Next.js, and the modern web ecosystem.
- Writing: Translating complex technical ideas into clear, engaging articles, documentation, and white‑papers.
- Health focus: Exploring how software can improve patient outcomes and make health information more accessible.
My goal with this portfolio was simple yet ambitious: create a fast, accessible platform that reflects my current skill set and style. I wanted more than a list of projects—I wanted to demonstrate my philosophy of “premium simplicity”, the belief that the most effective digital experiences get out of the user’s way while delighting them with subtle interactions and solid performance.
Note: The embed below links to my portfolio deployed on Google Cloud Run. You can also visit the live site at .
🚀 Project Overview (2025)
Building a portfolio in 2025 is an interesting challenge. The tools we have now have evolved dramatically, so I leaned heavily into the Google AI ecosystem to accelerate my workflow without compromising quality. The results were genuinely surprising—what could have been a week‑long slog turned into an inspired sprint.
Stack Summary
| Layer | Technology | Why I chose it |
|---|---|---|
| Core Framework | Next.js (App Router) | Robust, server‑side rendered foundation; file‑based routing & React Server Components keep the app fast and SEO‑friendly. |
| Styling | Tailwind CSS | Utility‑first approach lets me enforce a strict design system, handle responsive layouts, and adopt dark mode seamlessly. |
| Database | PostgreSQL | Reliable relational DB for dynamic content (e.g., blog‑post view tracking, newsletter subscriptions). |
| Deployment | Google Cloud Run | Serverless, containerized deployment that scales to zero when idle but can handle traffic spikes if a post goes viral. |
📦 Deploying to Google Cloud Run
One of the challenge requirements was deploying to Cloud Run, and it turned out to be one of the smoothest parts of the process. I wanted a reproducible, containerized pipeline—not a “throw‑code‑over‑the‑wall” approach.
Dockerfile (multi‑stage build)
# ---- Build stage ----
FROM node:20-alpine AS builder
WORKDIR /app
COPY package*.json ./
RUN npm ci
COPY . .
RUN npm run build # Next.js build
# ---- Production stage ----
FROM node:20-alpine AS runner
WORKDIR /app
ENV NODE_ENV=production
COPY --from=builder /app/.next ./.next
COPY --from=builder /app/public ./public
COPY --from=builder /app/package*.json ./
RUN npm ci --omit=dev # Install only production deps
EXPOSE 8080
CMD ["node", "server.js"]
Result: Final image ≈ 80 MB (development dependencies stripped out).
CI/CD Workflow
- Gemini CLI pushes the container to Google Artifact Registry.
- A Cloud Run service is created (or updated) automatically.
- Every push to the
mainbranch triggers the pipeline, building a new container and updating the revision.
This “git‑push‑to‑deploy” workflow gives me confidence to ship small, iterative updates frequently.
🤖 AI‑Assisted Development
The entire project was AI‑augmented. Below is a deep dive into how I used Google’s tools.
Antigravity – My Pair Programmer
Antigravity stayed in the loop throughout the whole process, eliminating constant context‑switching between editor, browser, and documentation.
| Use‑case | What Antigravity Did |
|---|---|
| Refactoring | Analyzed disparate modal files (ReviewModal, DriverProfileModal, …) and suggested a unified Modal architecture using framer‑motion for smooth entry/exit animations. It also guided me through handling prop drilling and ARIA accessibility. |
| Intelligent Debugging | When a TypeScript error surfaced around polymorphic props, Antigravity inspected the component usage, explained the inference failure, and provided a precise fix that satisfied the compiler—no generic Stack Overflow rabbit hole needed. |
| Proactive Optimization | Recommended adding the sizes prop to next/image components to prevent layout shifts (CLS) and improve LCP scores. |
AI Studio – “Editor‑in‑Chief”
AI Studio helped shape the creative direction:
- Content strategy & site structure brainstorming.
- Idea generation for articles, project descriptions, and micro‑interactions.
Gemini CLI – Automation Hero
For repetitive tasks, the Gemini CLI was a lifesaver:
- Scaffolded boilerplate code for new pages and components.
- Accelerated “boring” parts so I could focus on micro‑interactions and layout tweaks.
🎨 The “Premium Simplicity” Aesthetic
I embraced a black‑and‑white (B&W) aesthetic. By removing color as a primary hierarchy tool, I was forced to rely on spacing, typography, and contrast to guide the user’s eye. The result feels:
- Premium & modern
- Uncluttered, letting articles and projects shine
- Accessible, with high contrast for readability
🧩 Component‑Driven Architecture
The site is built around self‑contained, reusable components:
ProjectList→BlogCard→ … each component lives in its own file.- Updating the design of a card, for example, only requires a single change, propagating automatically throughout the site.
📚 Final Thoughts
Leveraging the Google AI ecosystem turned what could have been a long, manual build into a rapid, enjoyable sprint. The combination of Next.js, Tailwind, PostgreSQL, and Google Cloud Run, all powered by AI‑assisted tools, allowed me to deliver a portfolio that embodies my “premium simplicity” philosophy while staying fast, accessible, and future‑ready.
Feel free to explore the live site, poke around the code, or reach out if you’d like to chat about AI‑augmented development!
Typography as Interface
There are a few aspects of this project that I am particularly proud of, as they represent significant personal and technical growth.
-
The “Health” section
Adding digital health to my developer portfolio was a big step. It’s a dedicated space for articles covering health and‑well‑being topics, bridging the gap between my technical skills and my advocacy work. For a long time, I kept these two worlds separate; my GitHub profile showed one person, while my community work showed another. Merging them here makes the portfolio feel uniquely mine and tells a more complete story of who I am. -
Performance & accessibility
Achieving high Lighthouse scores was a key milestone. It proves that you don’t have to sacrifice performance for a modern aesthetic. -
The seamless AI workflow
This challenge was the perfect excuse to finally ship the v3 of my portfolio. It represents not just a visual refresh, but a “backend” refresh of my own skills and workflows. By embracing AI‑first development with Google’s tools, I’ve built something that sets the tone for my work in 2026.