Next.js & React Developer · GSAP Motion · PHP & WordPress
Based in Cape Town, South Africa 🇿🇦
I'm a frontend-focused developer with 5+ years in web development, now building modern web experiences with Next.js and React. I care about interfaces that load quickly, feel intuitive, and have just enough personality to be memorable. With GSAP, I turn motion into part of the experience—not decoration added at the end.
A huge part of my 5+ years in web development has been spent with PHP and WordPress, including custom themes, plugins, and content experiences. That depth gives me a practical backend and CMS foundation—and lets me understand the full journey from content and data to the experience in the browser.
const focus = {
frontend: ["Next.js", "React"],
motion: "GSAP",
backend: "PHP",
cms: "WordPress",
goal: "fast, useful, memorable experiences",
};| ▲ Next.js engineering | ✦ Motion with purpose | ⚙️ PHP & WordPress depth |
|---|---|---|
| Responsive React interfaces built for performance and maintainability. | GSAP interactions that guide attention and make products feel alive. | Years of CMS experience connecting polished frontends to practical content systems. |
flowchart LR
A["💡 Product idea"] --> B["Next.js application"]
C["React component system"] --> B
D["GSAP motion layer"] --> B
E["PHP & WordPress content"] --> B
B --> F["Fast, expressive experience"]
F --> G["🚀 Measure · refine · grow"]
classDef sage fill:#A3B18A,stroke:#588157,color:#171717,stroke-width:2px;
classDef dark fill:#171717,stroke:#A3B18A,color:#FFFFFF,stroke-width:2px;
class B,F sage;
class A,C,D,E,G dark;
Primary focus
Frontend ecosystem
Backend, CMS & delivery
These visuals regenerate automatically from my public GitHub activity every day.
This profile is where I share the Next.js interfaces, React experiments, and full-stack ideas I'm building and refining. Have a look through my repositories—or reach out if something sparks an idea.
Away from the keyboard, you'll find me running along the beach, hiking Cape Town's mountains, or training at the gym.
Have an interesting project or idea? I'm always up for a good conversation.
Let's talk →



