If you’ve browsed my site before, you may have noticed two things I care about a lot: speed and discoverability. Not just for Google, but for humans. Art is hard to navigate when it’s buried in endless pages, inconsistent tags, or external platforms.
That’s why I started building a private WordPress plugin that creates a local catalog of my Fine Art America / Pixels artworks—by gently scraping my public pages and storing the results in my own database. No API needed, no login, and no dependence on a third-party page being fast at the exact moment you visit.
This post highlights two visitor-facing features that came out of that work: a Random Artwork widget and a Public Search page.
Why a local catalog?
Fine Art America is great for selling prints, but it’s not designed around the way I want people to explore a body of work on my own website. A local catalog lets me:
load thumbnails quickly (local cache)
keep titles and descriptions consistent
build browsing tools that match how people actually search (subject, mood, color, orientation, collection)
create a foundation for future galleries and curated pages
It’s basically my own “index” of my shop, optimized for the way my website works.
The Admin backend of the plugin – Artworks page
Feature 1: Random Artwork widget (for effortless discovery)
A lot of visitors don’t arrive with a specific artwork in mind—they just want to browse. The Random Artwork widget solves that problem by showing a small selection of artworks that refresh over time.
Why it helps:
it prevents “dead ends” (you always have something else to click)
it surfaces older works that would otherwise be buried
it turns the sidebar into a lightweight gallery
You can think of it as a gentle, always-on invitation to explore.
You should see the three random images on the right side of this page. When you reload three other images should apear.
Feature 2: Public search that doesn’t feel empty
Search pages often fail for one simple reason: when you land on them, they show… nothing.
My public search page does the opposite. Even with an empty search box, it immediately shows a useful set of artworks, so the page already feels like a gallery. From there you can refine.
Highlights:
default results on page load (no empty state)
a live orientation filter (All / Square / Horizontal / Vertical) that updates results instantly
results displayed in a clean two-column layout:
left: artwork image
right: title in bold + a short marketing blurb
image + title link to the artwork page
This makes browsing feel fast and frictionless—more like shopping, less like form-filling.
Clear search results with short description of the artwork
AI-powered search: why OpenAI is in the loop
A traditional search engine is only as good as the text you feed it. Art doesn’t always come with consistent, descriptive metadata—especially when it’s spread across external platforms.
So for the search experience on my website, I ran all artworks through the OpenAI API to generate structured, consistent metadata. The goal is not “AI hype.” The goal is a more useful search page.
The AI output is stored in my local catalog (not on Fine Art America), including fields such as:
main subject and subject tags
style tags
color tags
mood tags
room/interior tags (how it might fit in a space)
a short marketing blurb
a longer SEO-friendly description
a semantic summary that improves matching
This turns the catalog into a searchable dataset where visitors can find work by things they actually think in—mood, color, vibe, subject matter, orientation—instead of relying on whatever text happens to exist on the original platform page.
What this enables for visitors (now and later)
Right now, it improves browsing immediately:
better default results on the search page
filters that feel responsive and relevant
more consistent descriptions per artwork
And later, it gives me a foundation for:
smarter “related artworks” suggestions
themed mini-galleries generated from tags
tighter SEO control on my own domain
Built with ChatGPT (vibe coding, but with intent)
A big part of this plugin was built through a workflow that’s often called vibe coding: I described the goal, shared real-world constraints (WordPress security, scraping limits, database structure), and iterated rapidly with ChatGPT as a coding partner.
That doesn’t mean “copy-paste and pray.” It means fast prototyping, tight feedback loops, and constant reality checks inside WordPress: capability checks, nonces, prepared SQL, safe escaping, and gentle scraping rules. ChatGPT accelerated the build, but the direction stayed very practical: every feature had to earn its place by improving the visitor experience.
Behind the scenes (short version)
This plugin is private and tailored to my workflow, but the idea is straightforward:
scrape my public FAA/Pixels pages (with pagination)
store artworks + collection memberships locally
cache thumbnails/previews for speed
(optional) generate structured AI metadata for better search and consistent descriptions
The visitor-facing result is what matters: faster browsing, better discovery, and cleaner navigation.