Skip to main content
Dev Sac
Website

Bad Art Sacramento | Consignment Gallery Without a Gallery

Astro 6 catalog site for a Sacramento consignment art business where the QR code on each placard is a Stripe Payment Link. A maximalist collage design system built to WCAG 2.1 AA, self-hosted variable fonts, generated QR placards, and no cart to maintain.

Astro Tailwind CSS v4 Stripe Payment Links Sharp QRCode
Bad Art Sacramento | Consignment Gallery Without a Gallery screenshot 1
Bad Art Sacramento | Consignment Gallery Without a Gallery screenshot 2
0
Lines of Checkout Code
0
Self-Hosted Typefaces
0
Neighborhoods Covered

The idea

Cafés, breweries, and salons all have the same problem: a lot of wall and nothing good on it. Local artists have the opposite problem, which is a lot of work and nowhere to hang it. Bad Art Sacramento sits between them. I curate a wall of locally sourced and thrifted art, hang it in a host venue, and everyone takes a cut when a piece sells off the wall.

There is no storefront. The client’s wall is the gallery. Which means the entire commerce problem reduces to one question: how does someone standing in a coffee shop buy the painting in front of them without an app, an account, or a conversation with a barista who does not work for me.

The placard is the checkout

Every piece hangs with a placard, and the QR code on that placard is a Stripe Payment Link for that specific piece.

That is the whole system. No cart, no session, no inventory sync at checkout, no custom payment integration. A buyer scans, pays on Stripe’s hosted page, and walks out with the painting. The site generates the QR codes at build time from the piece data, so a placard is a build artifact rather than something I make by hand in a design tool.

Skipping the cart is the design decision I am most confident about. A shopping cart would have added an entire class of failure, from stale inventory to abandoned sessions to PCI surface, in exchange for solving a problem this business does not have. Nobody buys two paintings off a café wall at once.

piece.md content entry Astro build generates QR PLACARD $40 Stripe hosted THE QR CODE IS THE PAYMENT LINK
Generated printable placards, each showing a piece title, artist, medium, dimensions, price and a QR code that links straight to that piece's payment link

The design system is called Gallery Zine, and it exists because a site selling deliberately questionable art cannot look like a template. It is maximalist collage on a warm paper base: cream and ink, with acid lime as the single electric pop, terracotta for warmth, and brass reserved for hairlines.

The component vocabulary is built from that: framed pieces with hard offset shadows that lift on hover, masking-tape labels, sticker price pills, deadpan museum captions in monospace, and slight tilts on cards. The header runs a scrolling marquee. The whole thing is loud on purpose, because the site is the frame and the art is the punchline.

Three typefaces ship self-hosted as preloaded woff2 variable fonts: Fraunces for display, Familjen Grotesk for body, Space Mono for labels. Self-hosting means no third-party font request, no layout shift waiting on a CDN, and no external dependency on a page whose entire job is looking composed.

Loud and still accessible

Maximalism is where accessibility usually goes to die, so the palette was tuned against contrast requirements rather than tuned by eye and checked afterward.

The site targets WCAG 2.1 AA. Body text on cream runs 15.8:1. Terracotta exists in two variants for exactly this reason: the base tone at 3.4:1 is restricted to large display type, and every small terracotta element, every link, and every hover uses a deepened variant at 4.7:1 instead. The rule is written into the design system so it survives future changes.

Motion respects prefers-reduced-motion, keyboard focus gets a 3px ink ring everywhere, and the tilt and hover transforms switch off entirely under 640px. Horizontal overflow is pinned to zero at 390px, verified rather than assumed, because a collage layout with rotated cards will produce a sideways scrollbar on a phone the moment you stop watching it.

The collection page showing framed art pieces in the Gallery Zine style with tilted cards, hard offset shadows and sticker price pills

Sacramento, specifically

The content is local by construction. The homepage runs neighborhood callouts across nine Sacramento areas from Midtown and R Street to Oak Park, Del Paso, and West Sac, and the site is built around Second Saturday, the Midtown art walk that doubles as the rotation schedule and the artist recruiting engine.

The voice is deadpan and self-aware, and it points at the premise rather than at the artists. The irony is supposed to flatter the people making the work, not mock them. That distinction is the difference between a brand artists want to join and one they avoid.

Where it stands

The site is live at badartsac.com, served static through Cloudflare to the same cPanel infrastructure as the rest of my Astro sites, with edge and origin SSL both valid on apex and www.

The business behind it is not launched yet. Real Payment Links, photographed inventory, the consignment agreement, and the first anchor venue are all still ahead of it. What exists today is the machine: a catalog where each piece is a content entry, a build that turns those entries into placards, and a design system that can carry a wall of bad art without apologizing for it.

Like what you see?

I build tools that solve real problems. If you have an idea or a project that needs engineering, let's talk.

Get in Touch