
Aurora Art Hub is a full-stack web application with authentication, a PostgreSQL database, multiple related data models, image uploads, and user-specific access control. I built it as a platform where artists can create profiles, upload artwork, and manage what they share publicly.
The application is built with Next.js, React, TypeScript, Supabase, Tailwind CSS, and Zod.
I wanted this project to go beyond a frontend demo and give me experience building an application across the full stack.
The application includes separate data models for artists and artwork, with relationships between them. Next.js handles the application and server-side functionality, while Supabase provides the backend services.
Aurora Art Hub uses PostgreSQL Row Level Security to enforce data-level authorization, preventing authenticated users from accessing artwork outside their permitted scope.

The core functionality includes:
User authentication
Artist profiles
Artwork creation and editing
Image uploads
Public and private artwork
User-specific access control
Form validation
Relational PostgreSQL data
One of the biggest goals of this project was getting hands-on experience with Supabase and understanding how its different services work together.
I used Supabase for:
Authentication — managing user sign-up and login
PostgreSQL — storing users, artists, artwork, and their relationships
Storage — handling uploaded artwork images
Access policies — controlling access to data and stored files
Working with these features together helped me better understand what a backend-as-a-service platform can provide without having to build each piece independently.
It also gave me experience thinking about how authentication, database access, storage, and application permissions interact.
One practical limitation I encountered during development was Supabase's inactivity-based project pausing on its free tier. It's convenient for a personal project, but something to keep in mind when using a hosted backend for an application that needs to remain continuously available.
I use Zod for form and request validation, keeping validation logic separate from the UI.
This provides a consistent way to validate data before it reaches the database and makes the validation rules easier to maintain.
The biggest takeaway from Aurora Art Hub was getting a much better understanding of Supabase as a backend platform.
Rather than just using a database, I got to work with authentication, PostgreSQL, storage, and access policies as parts of the same platform.
It was a valuable experience in understanding how these services fit together to support a full-stack application.
Technologies: Next.js · React · TypeScript · Supabase · PostgreSQL · Tailwind CSS · Zod