AI is becoming standard in content workflows—but too often, it comes at the cost of data privacy, long-term ownership, and open standards. What if WordPress could help you do AI differently?
In this workshop, we’ll go hands-on with ClassifAI and local LLMs to explore how AI features can be built ethically and scalably—from alt text generation to semantic classification to content summarization. You’ll learn how to configure ClassifAI with a local model via Ollama or any compatible runner, using the new AI Services plugin developed by the WordPress Core AI Team.
We’ll walk through real-world use cases and show how teams can reduce third-party dependencies while speeding up editorial flow—especially useful for enterprise content teams, agencies, and hosts. You’ll leave with a working configuration (or clear path to one), plus a roadmap of how these tools are evolving across the WordPress ecosystem.
Bring your laptop and a local or staging WordPress site if you’d like to follow along. Whether you’re building for one site or 10,000, this workshop will help you make AI work for you—not the other way around.
If you missed the workshop or had troubles following along (sorry!), then below are my slides as well as a reference to the prerequisite setup steps to be prepared for the workshop.
If you’re joining my Scalable, Ethical AI workshop at WordCamp US 2025, we’re going hands-on with building privacy-friendly, locally-powered AI workflows right inside WordPress. By the end of the workshop, you’ll leave knowing how to own both your content and your AI.
This guide will help you prepare your laptop ahead of time so you can spend less time troubleshooting and more time experimenting with tools like ClassifAI and Ollama. By doing this setup in advance, you’ll spend more time exploring the features and asking questions and less time downloading files during the workshop.
Step 1. Set Up Your Local WordPress Environment
The fastest way to get started is with tools like WordPress Studio, LocalWP, or DevKinsta that spin up a fully functional local site in minutes. If you’ve got something else you like/use, then by all means use that!
Download and install WordPress 6.8 (PHP 8.1 or newer recommended)
Create a new local site
Confirm you can log into your WordPress dashboard
Step 2. Install the ClassifAI Plugin
ClassifAI is the AI integration plugin we’ll use throughout the workshop.
Step 4. (Optional) Configure ClassifAI to Use Ollama
We’ll work through this during the workshop, but if you’re wanting to get ahead of things then feel free to set up these features. Once ClassifAI and Ollama are installed, we’ll connect each feature to a local model:
Feature
Model
Purpose
Content Generation
qwen2.5:3b-instruct-q4_0
Drafts high-quality content locally
Title Generation
phi3:mini
SEO-friendly, engaging post titles
Excerpt Generation
phi3:mini
Clean, concise summaries
Content Resizing
phi3:mini
Expand or condense paragraphs on demand
Key Takeaways
phi3:mini
Extract key insights automatically
Classification
all-minilm:l6-v2
Suggests categories and tags locally
Alt Text Generation
moondream:v2
Privacy-safe image descriptions
Step 5. Test Your Setup
To confirm everything is working:
ollama run phi3:mini "Hello from WCUS workshop setup"
The above should respond with a simple message from Ollama (via the phi3:mini model), though in my testing it will almost certainly NOT get the WCUS acronym correct ;).
If you did the optional ClassifAI configurations in Step 4, then test those are working as expected:
Create a new draft post in WordPress.
Use Title Generation or Content Generation from ClassifAI.
Verify that a response comes back successfully.
If something isn’t working, try restarting Ollama:
ollama run
Step 6. (Optional) Load Sample Content
If you’d like extra material to test during the workshop, you can download the sample content that I’ve assembled. I’ll provide USB drives with this sample posts, images, and taxonomy terms on the day of the workshop as well.
ClassifAI – Ollama Timeout: a small ClassifAI extension to increase the HTTP timeout for requests to Ollama on localhost
WordPress AI team: whether you’re an engineer, designer, researcher, or just curious about AI, we’d love to have you involved as we shape the future of AI in WordPress
See You at WCUS!
I can’t wait to connect with folks in-person at WordCamp US 2025 and dig into how we can own our content and our AI using WordPress, ClassifAI, and locally-powered workflows.
Whether you’re a developer, editor, or site owner, you’ll hopefully leave the workshop with a hands-on understanding of how to bring scalable, ethical AI into your publishing stack without handing your data over to external platforms.
With WordCamp US just around the corner, one might about any new Wapuu designs on company swag in Portland. A couple weeks ago on vacation with my family, I was walking the beach boardwalk with our kids and saw several Labubus being swung around or otherwise attached to kids’ slingbacks. My brain immediately went to “what would a mashup of a Wapuu and a Labubu look like?” and just as quickly started prompting ChatGPT with image generation requests to get an answer.
The 4o model did a pretty great job from my initial, simple boardwalk-based prompt of “Can you design a mashup of a Labubu and a Wapuu?” even nailing the mashup name of “Wabubu”:
Absolutely — just to clarify first: are you imagining this mashup as a character illustration, a 3D model, or something else (e.g. plush, toy concept, sticker art)?
Assuming you’re looking for a character design mashup between Labubu (the mischievous, spiky-toothed character from The Monsters series by POP MART) and Wapuu (the cuddly WordPress mascot), here’s an idea for the concept:
Labubu × Wapuu Mashup Design Concept
Name: Wabubu
Core Traits Blended:
Wapuu body shape: round, simple, chibi proportions, friendly pose
Labubu face: mischievous wide smile, prominent buck teeth, large ears, and wild hair
Wapuu accessories: hugging the WordPress logo (or an alternate WP-related item like a laptop, Gutenberg block, or code bracket)
Wapuu’s round face but with Labubu’s wide, toothy grin and pronounced front teeth
Big mischievous Labubu-style eyes (slightly tilted, giving a prankster vibe)
Fluffy tufts of Labubu’s wild hair, slightly unkempt, poking out behind ears
Long pointed ears, one flopped down playfully
Body:
Retain Wapuu’s soft, rounded body and paws holding the WordPress logo
Covered in soft fur with Labubu’s tiger-like stripes subtly hinted in the texture
Small tail – could be a hybrid of Wapuu’s squirrel-style and Labubu’s wilder brush tail
Color Palette:
Golden yellow fur base (like Wapuu), but with darker brown/orange accents from Labubu
Blue-and-white WordPress logo contrasts nicely for emphasis
Pose Ideas:
Cheeky grin, clutching the WordPress logo sideways like it just stole it
One paw giving a “peace” sign or tiny devil horns
Sitting on a stack of code books or on top of a WordPress admin dashboard
Would you like me to generate an image of this version of Wabubu for you? If you want it to look more cute or more punk/mischievous, I can adjust the balance accordingly. Just let me know!
The first two generated images, however, missed the mark:
Even asking ChatGPT to show me what it thought was a Wapuu and a Labubu in a basic “a plus b equals c” sort of image was a struggle to get the entire image within the output:
At that point it was obvious that ChatGPT wasn’t super clear on what a Labubu looked like and needed a lot more coaching to create a landscape image of the mashup creation. So I shared an image of the first Wapuu and Labubu image from a quick web search to better define the image generation request and that immediately yielded better results:
From there it was much better at hitting what I was looking for in the Wabubu mashup both in a friendlier Wapuu version and a mischievous Labubu version:
At this point I felt it had nailed the general concept and started asking it to create different image style variants based on quick prompt variations:
Wabubu 3D plush Labubu styleWabubu 3D plush Wapupu styleWabubu full character sheet for animations or merchWabubu Studio Gibli versionWabubu Japanese anime versionWabubu Bob Ross painting versionWabubu 80s hair band plus neon imagery styleWabubu spider verse style animationWabubu origami paper animal versionWabubu studio laika claymation styleWabubu black and white coloring book styleWabubu Tim Burton gothic styleWabubu pixel art / 16-but sprite sheetWabubu kawaii bento box styleWabubu y2k vaporware aestheticWabubu chibi styleWabubu low-poly 3D renderWabubu embroidery patch style
Ironically with all the fun I had peppering ChatGPT with image generation variations I hit the cap of my monthly plan limit of image generations (yes, there are some variants and generations that I didn’t include here because they were just _bad_).
So at this point, ahead of WCUS, I’m curious… which of these are your favorite Wabubu variant? Which would you want physical merch of? What other image variants would you create? Do you prefer the more friendly Wapuu or the more mischievous Labubu variants? Which style do you think would make an epic enamel pin, plush toy, or swag giveaway at WordCamp US? Let me know your pick, or suggest a new mashup idea!
I’ve always appreciated seeing what gear, software, and workflows other folks use day-to-day. It’s part inspiration, part curiosity, and sometimes a great way to discover that niche tool you didn’t know you needed.
For years, Wes Bos’ /uses page has set the bar and the uses.tech site has turned this idea into a community catalog of developers, designers, and makers sharing their setups. I’ve browsed more of those pages than I can count… and now, I’ve finally built one of my own.
It’s a living list of what I rely on daily across:
Hardware (from desk to monitor to Oura ring)
Software and developer tools
My analog task system (3×5 cards > to-do apps)
Fitness and photo tools
WordPress plugins, themes, and host setups
Social platforms, backup strategies, and more
I’ve also added some personal quirks, like how I stack-rank index cards each morning, what tools I’m still testing, and where I hang out online (ranked by actual usage). It’s not just a list, it’s a snapshot of how I work and what keeps the machine running.
As I tweak my setup, experiment with new tools, or shift platforms, I’ll keep the page updated. If you’re into /uses pages, workflows, or just curious how other folks work, then I hope it’s useful. And if you’ve got your own /uses page, I’d love to see it. Drop me a link!
That gives us a rare opportunity: let’s rally as a contributor community and give these 6.8.x minor releases attention more akin to major releases.
WordPress’ minor releases aren’t just for emergency fixes; they’re a real opportunity to focus, polish, and improve WordPress in specific ways. The following are some ideas I have on different focuses we would have with 6.8.x minor releases.
1. Good First Bugs Blitz
We’ve got a backlog of “good first bugs” that already have patches, so let’s get them tested, reviewed, and committed. Clearing these builds contributor confidence, keeps the door open for new contributors, and reduces technical debt. It’s a win for the project and the community.
2. “Paper Cuts” (aka UX polish)
Tiny friction points add up. Let’s fix the little annoyances that get in the way of a great editing and admin experiences. (No formal query for this, just a call for suggestions on what little nags or pet peeves folks have that could use some small tweaks.) Not every improvement needs to be huge; removing friction in the basics makes WordPress feel smoother, faster, and more welcoming for everyone.
3. Accessibility Improvements
I would love to partner with folks like Amber Hinds, Joe Dolson, and others to ship a release centered around accessibility improvements. Accessibility isn’t optional. It’s core to WordPress’ mission of democratizing publishing for everyone, and these improvements help real users every single day.
4. Internationalization + RTL Support
There’s room to improve for non-English (“I18n“) and Right-to-Left (“RTL“) language users who often times get forgotten behind focuses on “American” and “English” support. English speakers aren’t the majority on the internet. Improving i18n and RTL support makes WordPress better for millions, not just a handful of users. Let’s make the platform more global in practice, not just in theory.
5. Bundled Theme Improvements
Let’s continue upgrading default themes to better reflect today’s block editor capabilities, maybe even revisit Post Formats in the process. Modernizing bundled themes keeps WordPress feeling current and shows off its best capabilities right out of the box.
6. Privacy Enhancements
There’s plenty to work through in the Privacy component, we can help ship thoughtful improvements that matter. Privacy expectations and regulations keep evolving. WordPress should continue empowering users to control their own data and stay ahead of the curve.
7. PHP Compatibility Focus
PHP 8.4 is here and some hosts are upgrading fast, so let’s keep WordPress running cleanly, consistently, and compatibly across current, active PHP versions. Staying compatible means better performance, better security, and better future-proofing for sites around the world.
9. Security Fixes (Always)
Security fixes will of course stay a priority, so in so far as there are things folks can help within the Security component then let’s do it. WordPress powers a huge portion of the web, and with great reach comes great responsibility. Regular security work protects users, businesses, and the open web.
Why These Minor Releases Matter
Every improvement we target from accessibility, internationalization, privacy, PHP compatibility, security, UX polish, to contributor experience strengthens WordPress in ways that matter today and even more tomorrow.
This isn’t just “maintenance”, it’s about doing the work that keeps WordPress usable, reliable, trusted, and welcoming for the next generation of users and contributors. 6.8.x gives us a real window to focus without the distractions of a major release. We should take advantage of it.
Not flashy. Not headline-grabbing. Just meaningful progress, the kind that sticks.
If you’re interested in leading, patching, reviewing, testing, or just helping shape what comes next, let’s talk. Let’s ship real improvements, together.
Let’s Do This Together
I’d love to lead (or co-lead) a few of these minor releases. But I’d also love to see others step in.
Want to lead a focused minor release?
Want to contribute through patches, reviews, or testing?
Have a new focus idea that fits the spirit of targeted, impactful updates?
Say something. Step up. Let’s get organized and make it happen.
Comment here, or ping me in WordPress Slack (I’m @jeffpaul there). Let’s ship some solid stuff in 6.8.x and keep WordPress moving forward. ????
As my friendly competition with Jonathan Desrosiers and Jeff Golenski in contributing photos to the WordPress Photo Directory in 2024 came to a wrap, I’ll note that I didn’t manage to get a recap post out monthly and my photo submissions definitely ebbed and flowed but overall I’m pleased to see a grand total of 136 photos contributed!
Following on from my August & September post, let’s take a look at my October, November, and December contributions to the Photo Directory. Before October, I had 113 photos accepted and as the month of September wrapped up that number has increased by 23 to 136 photos in the directory.
P.S. – this post’s featured image comes from Openverse in searching for “October November December” and is “Banksia recurvistylis” by Jean and Fred is licensed under CC BY 2.0.
Following on from my May, June, & July post, let’s take a look at my August and September contributions to the WordPress Photo Directory. Before August, I had 105 photos accepted and as the month of September wrapped up that number has increased by 8 (sigh, a couple slow months) to 113 photos in the directory.
Yeah yeah yeah, I’m hella delayed on this post and instead of tacking on August I’m going with May-June following on from March & April’s joint post to get caught up on my contributions to the WordPress Photo Directory. Before May, I had 62 photos accepted and as the month of July wrapped up that number has increased by 43 to 105 photos in the directory.
The following images of my March and April contributions have been synced to Openverse (and thus easier to embed via the Image block’s “Select Image” flow to embed images from Openverse).
P.S. – this post’s featured image comes from Openverse in searching for “March April” and is “Forgotten Blossoms” by halfrain and licensed under CC BY-SA 2.0.
February also included the new WordPress Photo Festival event, a global online photography competition organized by the WordPress Community of Kerala, India. The event ran from February 3rd to February 9th, 6:00pm IST and captured photos from participants around the world who uploaded them to the official WordPress Photo Directory using the #WPKeralaPhotos hashtag. 1,544 photos from 163 contributors were submitted to the WordPress Photo Directory during the event. The five best, unique entries each received a USD$100 prize, five additional folks received a consolation USD$50 prize, the three participants with the most number of photos received a USD$100 prize, and three additional participants also received a USD$50 prize (see all winners here).
I definitely stepped up my photo contributions during the event, ensuring that as quickly as any of my submissions were accepted/rejected that I submitted another photo. I’m pleased to have come in 26th place with 14 photos contributed to the event!
The following images of my February contributions have been synced to Openverse (and thus easier to embed via the Image block’s “Select Image” flow to embed images from Openverse).