BACKGROUND ARTICLE

Building a Fine Art America Catalog in WordPress

(and why it makes browsing my art faster)

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
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.


Try it

If you want to explore, you can:


Discover more from Arjen Roos

Subscribe to get the latest posts sent to your email.

Explore Next

Keep exploring