AI-powered art gallery platform for families and creators
Transform your family's artwork into a sophisticated digital museum with AI-generated critiques and social discovery features.
From Personal Gallery to Platform: Originally created as a personal AI-assisted art gallery for children's artwork, MoMA 2025 is evolving into a multi-user "DeviantArt for families" - a platform where anyone can create accounts, organize artwork into themed exhibits, and discover art from other families.
- 🎨 Exhibit Creation: Organize artworks into themed collections
- 🤖 AI Art Critiques: Streaming AI-generated descriptions with typewriter effects
- 👥 Multi-User Platform: Account creation and personal galleries
- 📱 Mobile-First: Optimized for phone photography workflows
- 🌐 Social Discovery: Public galleries, search, and featured exhibits
- 🔗 Shareable: Beautiful exhibit URLs for social media
- Framework: Nuxt 4.x with TypeScript
- Platform: NuxtHub on Cloudflare Workers
- Database: Cloudflare D1 (SQLite)
- Storage: Cloudflare R2 (S3-compatible)
- AI: Cloudflare Workers AI
- Auth: Better Auth with Google/GitHub OAuth
- Styling: TailwindCSS
- Development: Git-first with conventional commits
- Node.js 22+ (LTS recommended)
- npm/pnpm/yarn
- Git
-
Clone and install dependencies:
git clone https://github.com/danlourenco/moma-2025.git cd moma-2025 npm install -
Link to NuxtHub project (enables AI features):
npx nuxthub link
Follow the prompts to create/connect to a Cloudflare project.
-
Start development server:
npm run dev
Opens on
http://localhost:3000(or next available port)
The project uses environment-aware configuration:
- Development: Local storage in
.data/hub - Production: Cloudflare infrastructure
- AI Features: Available after linking to NuxtHub project
- Modern NuxtHub project setup
- Cloudflare integration
- Git repository with conventional commits
- Better Auth implementation
- Artwork upload with validation
- Streaming AI description generation
- Basic CRUD operations
- Exhibit builder interface
- Drag-and-drop organization
- Public/private settings
- Browse and discovery
- Search and filtering
- Social features (likes, shares)
- Audio narration (AI text-to-speech)
- Mobile PWA capabilities
- Admin dashboard
# Development
npm run dev # Start dev server
npm run build # Build for production
npm run preview # Preview production build
# NuxtHub Commands
npx nuxthub link # Link to Cloudflare project
npx nuxthub deploy # Deploy to production
npx nuxthub manage # Open admin dashboardGit-First Multi-Environment Setup:
mainbranch → Production (moma.pages.dev)stagingbranch → Staging (staging.moma.pages.dev)feature/*branches → Preview deployments
Deployments are automatic on push to respective branches via Cloudflare Pages.
We follow Conventional Commits for all commit messages:
feat: add new feature
fix: resolve bug
docs: update documentation
style: formatting changes
refactor: code restructuring
test: add/update tests
chore: maintenance tasksMIT License - feel free to use this project as inspiration for your own family art gallery!
Created with love for families who want to celebrate their children's creativity with the sophistication of a world-class museum experience.
Built with Nuxt + NuxtHub + Cloudflare
