GURArt — Project Story
Inspiration
Growing up surrounded by incredibly talented artists in Rwanda, I always noticed a painful contradiction about how the art was extraordinary, but the artists were struggling. A painter who spent weeks on a piece would sell it at a roadside market for a fraction of its worth, simply because they had no other way to reach buyers who would truly value it.
That observation became the foundation of GURArt. The name itself comes from "Gura" the Kinyarwanda word for "to buy" combined with "Art". It felt right that the platform's identity would be rooted in the language of the people it was built to serve.
The deeper inspiration came from a statistic that stayed with me: according to a 2024 ILO and UNESCO report, 93% of creative economy workers in Zimbabwe operate without stable income or access to formal markets. Rwanda is no different. I wanted to build something that directly challenged that reality.
What it does
GURArt is a curated, story-driven digital art marketplace that connects verified African artists with buyers worldwide. It goes beyond simple e-commerce by treating every artwork as a cultural artifact with a story worth telling.
For artists, the platform provides:
- A verified professional profile with bio, location, and specialty
- Guided artwork listings with cultural storytelling built in
- A dashboard to track artworks, approvals, and availability
For buyers, the platform provides:
- A curated gallery of authenticated African artworks
- Search and filter by category, artist, or price
- Full artwork detail pages including the cultural story behind each piece
- A secure checkout flow supporting MTN Mobile Money, Airtel Money, and card payment
For administrators, the platform provides:
- A split-panel review interface to approve or reject artwork submissions
- Artist verification tools
- Platform-wide oversight of all listings and activity
How we built it
GURArt was built in three days using a modern, fully cloud-based stack:
| Layer | Technology |
|---|---|
| Frontend | Next.js 14 (Pages Router) + Tailwind CSS |
| Backend | Supabase (PostgreSQL + Auth + RLS) |
| Images | Cloudinary |
| Deployment | Vercel |
The backend is entirely serverless — Supabase handles the PostgreSQL database, authentication, and Row Level Security policies, eliminating the need for a separate API server. The frontend communicates directly with Supabase using the JavaScript SDK, with Cloudinary handling all image storage and delivery.
The platform uses three distinct user roles — Artist, Buyer, and Admin — each with role-aware navigation and access controls enforced at both the frontend and database level through RLS policies.
Challenges we ran into
Row Level Security (RLS) gaps were the most persistent challenge. Several policies were misconfigured from the start — admins couldn't see unapproved artworks (the very things they needed to review), and artists couldn't complete onboarding because their profile rows hadn't been created by the auth trigger. Each bug required diagnosing the exact policy and writing targeted SQL fixes.
Schema inconsistencies between files caused column mismatch errors during checkout. The orders table was created twice with slightly different column names (shipping_address vs delivery_address), which broke the checkout flow in production and required an ALTER TABLE patch.
Auth redirect issues — after deployment, email confirmation links pointed to localhost instead of the live Vercel URL. This required configuring Supabase's URL Configuration settings post-deployment.
Accomplishments that we're proud of
- Built and deployed a fully functional three-role marketplace in three days
- The cultural story feature every artwork listing includes the story behind the piece, making GURArt genuinely different from generic art e-commerce platforms
- A clean, premium visual identity rooted in African aesthetics forest green, warm cream, and organic patterns inspired by Rwandan art
- The homepage orbit animation — four art tiles rotating clockwise and anticlockwise around a center point, automatically populated with real approved artworks from the database
- End-to-end flow working in production: artist registers → uploads artwork → admin approves → buyer browses and purchases
What we learned
Supabase RLS is powerful but unforgiving. A single missing policy can silently block an entire feature without a clear error. Writing and testing policies carefully from the start rather than patching them later would have saved significant debugging time.
Schema design should be locked before writing application code. The column mismatch bugs we encountered in production came from writing SQL and application code in parallel without cross-checking. A single source of truth for the schema, referenced by both, would eliminate this class of bug entirely.
Deployment is not the finish line. Several bugs that didn't appear locally (auth redirects, RLS gaps visible in production data) only surfaced after going live. Production testing with real accounts across all three roles is essential.
What's next for GURArt
Real payment integration replacing the mock checkout with the actual MTN Mobile Money API and Stripe for international buyers. The checkout UI and order schema are already in place; the payment processing layer is the missing piece.
Email notifications artists should be notified when their artwork is approved, and buyers should receive order confirmations. This requires integrating a transactional email service such as Resend or SendGrid.
Artist earnings dashboard a dedicated view showing total sales, revenue earned, and pending orders, giving artists real visibility into their income.
Commission requests allowing buyers to request custom artwork directly from artists through a structured brief and pricing flow.
Mobile app extending GURArt to iOS and Android using React Native, making the platform accessible to artists and buyers who primarily use smartphones.
Platform commission model implementing a 10% platform fee on every transaction, creating a sustainable revenue stream that scales with the marketplace:
This model requires no upfront cost from artists and aligns the platform's incentives directly with artist success.
Built by Emmanuella Ikirezi, Kigali, Rwanda — 2026
Built With
- auth
- cloudinary
- next.js
- postgresql
- rls
- tailwind
- vercel
Log in or sign up for Devpost to join the conversation.