Web Development

I build WordPress sites from Figma files, architected so the people who own them can actually run them.

Twenty-three years of professional web development, fourteen of them running Plain Text Studio. Custom themes for economic development agencies, education nonprofits, and small businesses, built to be handed off to non-technical staff who will never need to touch code. I use AI coding tools where it makes sense, and hand-code the rest.

  • Pteravia brand image: a warbler on a branch behind the company wordmark and the line Uncommon Birding Experiences

    Pteravia

    Design and development · Direct client

    A birding tour company run by an ornithologist, selling small-group expeditions to places like Veracruz during the raptor migration. Design and development by me.

    Pteravia is a custom WordPress theme I built for a birding and nature tour company. It’s based on the Tofino starter theme, and I extended it into a modular content system. Pages are assembled from a library of more than a dozen ACF Flexible Content modules, including heroes, itineraries, featured guides, bird lists, callout boxes and alternating or 3-up photo rows. Each module maps directly to its own PHP partial, so the client can build rich, varied tour and landing pages without touching code. Tours and Guides are custom post types. Their field groups are version-controlled as ACF JSON, and custom query logic keeps the tours archive tidy by showing only featured parent tours and mixing tours into category archives alongside blog posts. On the front end, a Vite + TypeScript + Tailwind CSS pipeline delivers a restrained brand system of teal, forest green, rust and slate, set in Bebas Neue and Inter. GSAP ScrollTrigger adds motion: a header that shrinks on scroll, a pinned intro on the home page, and photos that reveal in a staggered sequence. Cypress end-to-end and axe accessibility tests back up the whole theme.

    • ACF Pro
    • Custom theme
    • Gravity Forms
    • GSAP
    • Stripe
    • Tailwind
    • TypeScript
    • Vite
  • MTA History Project homepage, with an archival photograph of striking teachers holding hand-lettered picket signs

    MTA History Project

    Development · Massachusetts Teachers Association

    A digital archive of every educator strike by an MTA local from 1969 through 2024, fifty-eight of them, built so the union can keep adding to it as more history happens. Design by Atomic Fox Studio, Development by me.

    A custom WordPress theme for a public timeline of teacher strikes across five decades. The build turns a spreadsheet of historical records into three connected ways to explore the same material: a vertical timeline grouped by year, a map where each pin gathers every strike at that location, and detail pages that mix archival photos, oral-history quotes and video. Each strike is a custom post type with structured fields for dates, duration and local leadership, so the site can calculate and format date ranges, sort itself chronologically, and generate its own decade navigation rather than relying on hand-maintained lists. Editors compose narrative pages from a set of flexible content layouts and place pull quotes and photos into the timeline by choosing which strike they belong beside — no markup, no developer. Under the hood it’s a classic PHP theme with Tailwind v4 and esbuild, GSAP-driven smooth scrolling and scroll-triggered animation, a keyboard- and swipe-navigable photo gallery, and transient caching on the expensive cross-content queries that power the map and the previous/next navigation.

    • Archive & timeline
    • Custom post types
    • Custom theme
    • WP Engine
  • Seattle Piano Institute homepage, with photographs of students at the piano and the summer session dates

    Seattle Piano Institute

    Development · Nonprofit · Design by others

    A summer immersion program for young classical pianists, with faculty drawn from the University of Washington and Seattle Pacific. Design by Atomic Fox Studio, Development by me.

    For the Seattle Piano Institute, a summer training program for aspiring young pianists, I designed and built a custom WordPress theme that lets a small nonprofit staff run their whole admissions season without a developer. The site’s key details (session dates, enrollment, tuition, application fee, and submission deadline) are entered once on a central options page. They then show up automatically across the home, programs, sessions, and application pages, formatted the right way wherever they appear, so updating the site for a new year takes minutes. Behind the scenes, I built a full online application where students submit their details, parent and teacher information, performance recordings, a repertoire list, and a CV. It’s paired with PayPal payments and a custom confirmation page that thanks each applicant, family, or donor by name for their application fee, tuition, or donation. A dedicated faculty section, with guest artist bios, feeds into each session page, and a customized events calendar highlights concerts and masterclasses. I also streamlined the WordPress dashboard by removing the blog and comment features the Institute didn’t need, so staff only see what they actually use. The result is a warm, polished public face for the program that’s also easy for the people behind it to keep up to date.

    • ACF Pro
    • acf-json
    • Advanced Forms Pro
    • Custom theme
    • gulp
    • SCSS
    • The Events Calendar
  • Screenshot of the Big Fat Positive podcast's homepage.

    Big Fat Positive

    Design, development, and ongoing operation · My own property

    The pregnancy and parenting podcast I co-host, on a site I built and still run. More than four hundred episodes and over four million downloads.

    I’ve built and maintained the custom WordPress theme for the Big Fat Positive podcast since 2018. In 2026 I modernized it with help from Claude Code: I made the product and editorial decisions and reviewed every change, and the AI helped me take on projects that would have been out of reach for a solo developer. The biggest was a transcript pipeline. It matched 471 of 474 raw Whisper files to the correct episodes, fixed about 1,800 misspelled names, and increased each episode’s search-indexed terms roughly eightfold. I also built a companion plugin that creates a branded episode thumbnail automatically when an episode is published. It reads the episode number from either of the site’s two title formats, and when I tested it on all 466 rewritten titles it had no errors. Along with that I did a data-driven cleanup of 2,690 tags, a front-end redesign with accessible GSAP animations, and a one-command deploy that replaced FTP.

    • 7 years in production
    • ACF Pro
    • Claude Code
    • Custom search
    • Custom theme
    • GSAP
    • RSS import on cron
    • WP-CLI
  • Invest in Holland homepage as built, the Netherlands Foreign Investment Agency site

    Invest in Holland

    Lead developer · Netherlands Foreign Investment Agency · Through DCI

    The site companies read when they are deciding whether to move operations to the Netherlands. Content shifts by visitor region, so a reader in Tokyo and a reader in Chicago are shown different cases for the same country.

    For the Netherlands Foreign Investment Agency (NFIA), the Dutch government office that recruits international companies to set up operations in the Netherlands, I built (in partnership with Richer Design Group and DCI) a WordPress theme system that powers seven regional sites from a single codebase: a parent theme launched in 2015 and child themes added in 2017 for the UK, US, China, Japan, Korea, and Taiwan. Each regional site shares the same content architecture (eight custom post types covering industries, infrastructure, success stories, partners, business operations, offices, team members, and infographics, all managed through version-controlled ACF field groups) while carrying its own templates and regional content. The standout feature is IP-based geotargeting: the site detects where a visitor is browsing from and matches them to the nearest NFIA office, so a prospective investor in Texas sees Atlanta contacts and one in Ohio sees Chicago, with territories mapped down to the state and country level across North America and Asia. Visitors can override their detected region from a header menu, and I built an internal testing template that lets the client simulate any IP address to preview exactly what a visitor in that location would see.

    • IEDC Silver
    • Horizon Interactive Best of Category
    • ACF
    • Custom theme
    • Geotargeting
    • Highcharts
    • WPML
  • Choose Colorado homepage as built, for the Colorado Office of Economic Development and International Trade

    Choose Colorado

    Developer · Colorado Office of Economic Development and International Trade · Through DCI

    Full-page video backgrounds with interactive animation, and maps built from GIS data with SVG overlays so a visitor can walk through the state’s regions and industries. The custom post types and taxonomies were designed around how the state’s staff actually organize their programs, so they could restructure content later without calling me.

    • MarCom Gold
    • Custom theme
    • ACF
    • GIS + SVG maps
    • Custom post types
  • Charlotte's Backyard homepage as built, for Cleveland County Economic Development Partnership

    Charlotte’s Backyard

    Lead developer · Cleveland County Economic Development Partnership · With DCI

    Cleveland County, North Carolina had hundreds of open manufacturing jobs and a recruiting problem: almost nobody outside the county knew it sits forty minutes from Charlotte. The brand and the site were built to make that one fact impossible to miss, on a CMS the partnership’s two-person communications team could run themselves.

    • dotCOMM Platinum, 2018
    • Custom theme
    • ACF
    • Responsive build

Also on the shelf

Twenty-three years produces more sites than belong on one page. A few others, and a note about the ones that are not here at all.

  • NBC.com franchise properties, including The Office and live Olympics coverage
  • AmericanIdol.com
  • Nocturnal Knits, a pattern shop and archive
  • Long-running maintenance and rescue work on sites other people built

Some of my work ships under an agency’s byline and cannot live on this page. Ask me for the extended list and I will send it over.

Need a WordPress developer?

I take on new builds, Figma-to-WordPress work for design studios and agencies, and rescue jobs on sites that have gotten away from their owners. Tell me what exists now, what you want instead, and when you need it.