Background
Ewa Popielarz works as an editor and proofreader, running services for publishers and self-publishers, training and webinars for other editors, a blog, a podcast and a public portfolio of books she has worked on. The site needed to bring all of that under one consistent identity, without splintering into separate templates for every content type.
The Figma design came from a graphic designer. I handled the full WordPress build, with a focus on giving the client flexible composition rather than a fixed set of pages.
The Figma design came from a graphic designer. I handled the full WordPress build, with a focus on giving the client flexible composition rather than a fixed set of pages.
Custom blocks with Carbon Fields
The site is built around a library of custom Gutenberg blocks defined through Carbon Fields. Unlike UI-driven field tools, Carbon Fields keeps block definitions in PHP, which means the entire content layer is version-controlled alongside the theme rather than configured separately in the admin.
The library covers the patterns that repeat across the site: service intros, testimonial cards, “trusted by” logo grids, article and podcast cards, CTAs and newsletter callouts. Blocks aren’t tied to specific page templates, so the homepage, service pages, blog posts and standalone landing pages all compose from the same set.
For the client this means new pages don’t require new templates. New content types fit into existing blocks, and adjustments to a shared component update everywhere it’s used.
The library covers the patterns that repeat across the site: service intros, testimonial cards, “trusted by” logo grids, article and podcast cards, CTAs and newsletter callouts. Blocks aren’t tied to specific page templates, so the homepage, service pages, blog posts and standalone landing pages all compose from the same set.
For the client this means new pages don’t require new templates. New content types fit into existing blocks, and adjustments to a shared component update everywhere it’s used.
Filterable portfolio of edited works
Ewa’s portfolio covers hundreds of books across multiple categories: fiction, children’s books, cookbooks, comics, board games, ebooks, religious titles, non-fiction and guidebooks. The portfolio page lets visitors filter the archive by category, with each entry showing the cover, title, publisher and the role Ewa played on that project.
This turns a long list into a useful tool. A children’s book publisher landing on the page can immediately see relevant work without scrolling past every other category.
This turns a long list into a useful tool. A children’s book publisher landing on the page can immediately see relevant work without scrolling past every other category.


Technical scope
The build is a custom WordPress theme written from scratch, with templates, partials and reusable patterns matching the Figma design. Carbon Fields handles the custom block definitions and field structures, with blocks registered in code and rendered through theme templates.
Portfolio entries are organized through a structured taxonomy that drives the category filtering on the portfolio page. Standard WordPress conventions cover blog and podcast entries, with the same custom block library available across all post types.
Frontend styling is implemented directly, with responsive layouts across all breakpoints. Newsletter signup runs through a dedicated plugin rather than custom integration.
Portfolio entries are organized through a structured taxonomy that drives the category filtering on the portfolio page. Standard WordPress conventions cover blog and podcast entries, with the same custom block library available across all post types.
Frontend styling is implemented directly, with responsive layouts across all breakpoints. Newsletter signup runs through a dedicated plugin rather than custom integration.
Closing notes
The site runs as a single hub for Ewa’s services, training, publishing portfolio and editorial content, all built around the dedicated Figma design and a shared library of Carbon Fields blocks.
