I rebuilt my portfolio last month with the Bennet WordPress Theme and kept a field log as I went: what I changed in the demo, how I mapped case studies, which blocks I deleted, the typography tokens that made client decks look “print-clean” on phones, and the little decisions that moved recruiter dwell time. I short-listed a few options from Best WordPress Themes and took notes with gplpal as my reference. Bennet won because it is opinionated in the places that matter to a working designer (grid, rhythm, and image discipline) without boxing me into one aesthetic.
Fresh WordPress on PHP 8.2 with HTTP/2, Brotli, page cache and object cache. I imported the lean Bennet demo—no sliders, no marquee. Permalinks resolved to /work/%postname%/
for projects and /about/
for the bio. Time zone matched my city. Body text at 17–18 px with a 1.6 line height; H1 at 44–48 (desktop) and 30–34 (mobile); H2 at 28–32. I set an 8-point spacing system so image captions, pull quotes, and metrics blocks don’t jostle when a paragraph grows. Color tokens: ink for text, bone for surfaces, carbon for borders, and a single accent (citrus) for CTAs and highlights. Motion stays minimal: fades at 150–180 ms; reduced-motion preference disables even that.
Bennet’s project template ships with a hero, overview grid, media sections, and a tidy “role/scope/tools” cluster. I trimmed “tools” (nobody hires software), kept “role” and “time to impact,” and added a “what changed” line with one metric (“+22% signup completion after 2 iterations”). Each project used a consistent narrative: problem → constraints → key decisions → measured result → one hindsight note. Images export at 1600–1800 px for heroes (~120–160 KB) and 1200 px for in-flow screens (~70–100 KB). Every media block declares width/height, so the grid never hiccups.
Kept: project grid with masonry off (strict rows are calmer), pull-quote, before/after slider (only once per case), and a compact testimonial card. Killed: counters, progress circles, and auto carousels. I used a two-column “process” layout for story beats and a “specs” table for measurable deltas. Bennet’s gallery respects fixed heights, which kept CLS flat even on my test Moto G.
Measured on throttled 4G, mid-range Android, cold cache:
One H1 per page. Slugs read like people speak (/work/subscription-onboarding/
). Alt text names what’s visible (“mobile onboarding step 3 with progress at 60%”). Internal links form small triangles: Project ↔ About ↔ Index. FAQ on the About page covers “availability, timezone, handoff format.” Bennet’s structure is GPL-licensed, so my tweaks live in a small child theme and survive updates.
Multipurpose builders looked flexible until I needed strict rhythm—editors could nudge paddings and the grid dissolved. A flashy “creative” theme turned case studies into posters; recruiters bounced. Bennet sits in the useful middle: opinionated grid, quiet typography, and blocks that encourage outcomes over adjectives. It made my work look considered rather than decorated.
If you need cinematic scrollytelling with heavy video, host those as campaign pages; don’t drag them into the main portfolio. Multilingual bios require disciplined translation; Bennet won’t manage governance. If you sell digital goods or templates, you’ll want a separate shop section; Bennet plays fine with a catalog, but the portfolio should stay crisp.
Repeat: write one metric per project, cap galleries to 10 images, keep testimonials short (two lines), and place the contact CTA after the second project, not the last. Skip: auto-playing background video and tag clouds. My weekly routine now is simple—re-encode any hero over ~160 KB, read a project on a cheap phone, and trim whatever stalls the thumb.
Bennet didn’t make my work; it got out of the way so the work could read like work. If you want a portfolio that feels intentional and loads like a product, keep gplpal in your notes, start from a calm Bennet demo, and tune the rhythm once—then ship.