Built by Philip

Portfolio piece

This isn’t a real store.

It’s a portfolio piece by Philip Rehberger — a full-stack developer with 15+ years of experience — built to demonstrate modern WordPress and WooCommerce capabilities to potential clients.

The brand is fictional. The products are real-looking placeholders. Payments run in Stripe test mode; downloads are demo files. But the build itself is production-grade.

What this demonstrates

Custom FSE block theme built from scratch

No starter theme. Hand-written theme.json with a deliberate color/type/spacing system. Block templates for every WP and WooCommerce page (home, shop, single product, cart, checkout, search, 404). Six reusable marketing patterns the editor can drop anywhere.

Three original Gutenberg blocks

  • Test Card Helper — dynamic block with PHP server-render and clipboard interactivity. InspectorControls toggle which Stripe test cards display.
  • Trust Stack — count-up animation via IntersectionObserver + requestAnimationFrame. Respects prefers-reduced-motion. Configurable 2-4 stats.
  • Product Comparison — dynamic block fetching live WC product data. Editor preview uses useEntityRecord from @wordpress/data. Toggle which rows display.

WooCommerce hooks, not just plugin assembly

An “Intended use” select field added at checkout via the modern woocommerce_register_additional_checkout_field API (block-checkout compatible). Saved to order meta. Displayed in admin order screens. Custom thank-you copy via woocommerce_thankyou_order_received_text.

Real infrastructure

Self-hosted on AWS EC2 alongside several other production sites. Apache 2.4 + PHP 8.3 + MySQL 8 on Ubuntu 24.04. Let’s Encrypt for TLS. Node-based deploy script with rsync + node-ssh, WSL-safe SSH key staging, idempotent server bootstrap. The deploy artifact is the theme + custom plugins only — WordPress core, WooCommerce, and uploads stay on the server.

Reproducible by design

Every piece of configuration — WC settings, payment gateways, email branding, products, pages, navigation — lives in version-controlled scripts. npm run wc:configure, npm run seed:products, npm run seed:pages. A fresh install reaches feature parity in minutes, not days.

Looking for a WordPress build?

Get in touch at philiprehberger.com.