Trying Out Netlify & Codex : Building an Art Inventory App (Part 1)

As an artist who sells both online and in brick-and-mortar shops, one of the biggest challenges I’ve faced is keeping track of my offline inventory.
As an artist who sells online and in brick and mortar stores and shops, one of the biggest challenges I’ve faced is keeping track of my offline inventory.
When selling on Etsy or through my website, everything is neatly organized. Orders are tracked, payments are logged, and I know exactly what’s sold. But once a piece leaves my hands and goes into a local store, it’s easy to lose track of where things are, what’s sold, and whether I’ve been paid.
Why Offline Inventory Is a Headache
- A piece might sell, but the shop forgets to notify me.
- Sometimes I forget the price I set and end up undercharging another shop.
- Other times, I completely lose track of what’s sitting where.
- The biggest issue: not always knowing when I’ve been paid or still need to collect.
That’s how I ended up with pieces floating around “in the wild” with no reliable way to track them. I needed something better than scattered notes or a half-finished spreadsheet.
Setting Up the Project
Since I already had some experience with Next.js, I decided to use it for this project. Instead of Vercel, this time I used Netlify with the GitHub App to handle deployment. For storage and authentication, I hooked everything into Supabase.
Using Codex as a coding assistant, I quickly scaffolded out a Next.js app, pushed it to GitHub, and let Netlify handle the build and deploy.
Building the First Version
The app lets me:
- Add artwork details (title, description, price).
- Upload an image of the piece.
- Track whether it’s sold and/or paid.
- View everything on a simple dashboard that shows status and location.
Supabase takes care of storing both the item data and uploaded images. At first, it seemed to work perfectly… for about five minutes.
The First Crash
Once I started testing, problems showed up fast:
- Image uploads: sometimes they worked, sometimes they didn’t.
- Status updates: I’d mark an item as sold, refresh, and the update was gone.
- Database queries: some failed with no clear reason.
Instead of getting stuck in manual debugging, I leaned on GitHub Copilot.
Copilot to the Rescue
Copilot flagged that I hadn’t set default values for sold and paid in Supabase.
That meant null values were breaking queries.
Here’s the broken code:
const updateArtwork = async (id, sold, paid) => { await supabase.from('artwork').update({ sold, paid }).eq('id', id); };
Since Supabase didn’t know what to do with empty fields, updates silently failed. The fix was updating my database schema so sold and paid defaulted to false. Once I added those defaults, updates stuck as expected.
Copilot also helped me clean up my async image upload logic, which solved the inconsistent uploads.
First Impressions of Netlify
While I originally planned to try Vercel, Netlify’s GitHub App integration made deployment just as smooth. Every push to GitHub triggered an automatic build and deploy — no server setup required.
The main hiccup wasn’t deployment, but Supabase rate limits. Since the app constantly checks inventory, I had to rethink how often it hits the database to avoid burning through requests.
The Takeaway
This app already beats my old system of random notes and guesswork. Now, I can log in, see where each piece is, and know if it’s sold or paid.
In Part 2, I’ll refine the UI, improve the database to handle multiple shops, and maybe even add commission trackingfor custom orders.
Would I use Netlify + Supabase again? So far, yes. It’s not perfect, but the speed of getting from “idea” to “live app” has been worth it.



Comments ()