Retailers of Art Glass & Supplies
Custom Software & Automation
- Supabase Database
- Next.js Server Actions
- Zod Validation
- Tailwind CSS
- Shadcn/ui Components
- React Mapbox GL
- Resend Email

Retailers of Art Glass & Supplies Membership Platform
Retailers of Art Glass & Supplies (RAGS) is a membership organization that supports art glass retailers through a directory, events, classes, and member services. This project delivered a modern web platform that replaces manual, error-prone admin workflows with a secure, automated system for managing members, applications, payments, and communications.
Scope
The platform includes a public website with marketing pages, instructor listings, events/classes catalog, and a store locator experience. Member services include a membership application flow, authenticated access to member-only tools, and self-service payment links. The admin dashboard provides CRUD management for members, membership applications, events, classes, and instructors. Payments and automation are powered by Stripe for dues and event registration, with webhooks to keep records in sync and scheduled dues reminder emails.
How it works
The application is built with Next.js (App Router) and uses Supabase (Postgres + auth) as the system of record. Server Actions and API routes handle mutations and integrations, while Zod schemas enforce consistent validation across forms and server logic.
Membership & data management
Admin users can review and comment on membership applications, manage member records, and update member services content. The database layer is accessed through Supabase clients (server-side for privileged operations and SSR for authenticated sessions), keeping the UI responsive while maintaining secure access patterns.
Stripe payments + webhooks
Stripe Checkout is used for both recurring membership dues and one-time event registration fees. A webhook endpoint listens for key Stripe lifecycle events (for example, successful checkout, invoice payments, and subscription cancellations) and updates the corresponding member or registration records in Supabase so membership status, renewal dates, and payment state stay accurate automatically.
Email notifications + scheduled reminders
Transactional email is handled via Resend, with reusable HTML templates for confirmations and admin notifications. A protected cron endpoint runs on a schedule to send renewal reminders and mark accounts overdue/inactive based on renewal dates, reducing manual follow-up and keeping membership lists current.
Store locator
The store locator pairs searchable member data with an interactive Mapbox map for discovering retailers geographically, providing an intuitive public-facing directory that stays up to date as membership data changes.