A modern creator cooperative platform built with Next.js, Google Sheets, Firebase, and Vercel. This hub allows creators to sign up via Google Forms, share feedback, tips, and vision goals, all organized and tracked through a central dashboard.
- Creator Roster - Members register via Google Forms, displayed in a searchable/filterable roster
- Feedback System - Submit problems paired with solutions (no complaints without paths forward)
- Tips & Tricks - Share knowledge and platform expertise with the community
- Vision Board - Declare goals publicly, find accountability partners
- Admin Dashboard - Password-protected analytics, CSV exports, activity tracking
| Technology | Version | Purpose |
|---|---|---|
| Next.js | 16.x | React framework with App Router |
| React | 19.x | UI library |
| TypeScript | 5.x | Type safety |
| Tailwind CSS | 4.x | Styling (Neo-Brutalist design) |
| Google Sheets API | v4 | Data storage & retrieval |
| Google Forms | - | User input collection |
| Firebase | 12.x | Analytics (optional: Firestore) |
| Vercel | - | Deployment & hosting |
βββ src/
β βββ app/ # Next.js App Router
β β βββ page.tsx # Homepage (server component)
β β βββ layout.tsx # Root layout with metadata
β β βββ globals.css # Neo-Brutalist design system
β β βββ roster/
β β β βββ page.tsx # Creator roster with filtering
β β βββ admin/
β β β βββ page.tsx # Admin page (server)
β β β βββ AdminDashboard.tsx # Dashboard UI (client)
β β βββ api/
β β βββ submit/ # API routes for form submissions
β β βββ feedback/route.ts
β β βββ tip/route.ts
β β βββ vision/route.ts
β βββ components/
β β βββ HomeClient.tsx # Homepage client component
β β βββ SubmitModal.tsx # In-app submission modal
β βββ lib/
β βββ firebase.ts # Firebase configuration
β βββ sheets.ts # Google Sheets READ operations
β βββ sheets-write.ts # Google Sheets WRITE operations
β βββ analytics.ts # Dashboard analytics functions
βββ public/ # Static assets
βββ .env.example # Environment variables template
βββ package.json
βββ README.md
- Node.js 18+
- npm, yarn, or pnpm
- Google Cloud account (for Sheets API)
- Firebase account (optional, for analytics)
- Vercel account (for deployment)
git clone https://github.com/JoeProAI/AI-Creator-Digital-Business.git
cd AI-Creator-Digital-Businessnpm installcp .env.example .env.localEdit .env.local with your credentials (see Environment Variables section).
npm run devOpen http://localhost:3000 to see the app.
Create a .env.local file with the following variables:
# Your Google Sheet ID (from the URL)
NEXT_PUBLIC_GOOGLE_SHEET_ID=your_sheet_id_here
# API Key for reading public sheets
NEXT_PUBLIC_GOOGLE_SHEETS_API_KEY=your_api_key_here
# Service Account JSON for writing to sheets
GOOGLE_SERVICE_ACCOUNT_KEY={"type":"service_account","project_id":"..."}NEXT_PUBLIC_FIREBASE_API_KEY=your_firebase_api_key
NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN=your-project.firebaseapp.com
NEXT_PUBLIC_FIREBASE_PROJECT_ID=your-project-id
NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET=your-project.appspot.com
NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID=123456789
NEXT_PUBLIC_FIREBASE_APP_ID=1:123456789:web:abc123
NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID=G-XXXXXXXNEXT_PUBLIC_ADMIN_PASSWORD=your_secure_password- Go to Google Sheets and create a new spreadsheet
- Create the following tabs (sheets):
Creator Roster- For member registrationsFeedback Responses- For feedback submissionsTips Responses- For tips and tricksVision Responses- For vision/accountability entries
Creator Roster: | User Name | Handle | Type of Content | Focus Area | Open for Collaboration | Collaboration Expectations | Collaboration Topics | Specialties | Willing to Lead | Issue | Proposed Solution |
Feedback/Tips/Vision Responses: | Timestamp | User Name | Handle | Category | Content | Details |
- Create Google Forms for each submission type
- Link forms to your spreadsheet tabs
- Update form URLs in
src/components/HomeClient.tsx
- Go to Google Cloud Console
- Create a new project or select existing
- Enable Google Sheets API
- Create credentials:
- API Key (for reading public sheets)
- Service Account (for writing to sheets)
- Share your Google Sheet with the service account email
- Click Share in your Google Sheet
- Change to Anyone with the link can view
Firebase is pre-configured for analytics. To enable:
- Go to Firebase Console
- Create a new project
- Add a web app
- Copy the config values to your
.env.local - Enable Analytics in Firebase Console
- Push your code to GitHub
- Go to Vercel
- Import your repository
- Add environment variables in Vercel dashboard
- Deploy
Add all variables from .env.local to your Vercel project:
- Go to Project Settings β Environment Variables
- Add each variable for Production, Preview, and Development
This project uses a Neo-Brutalist design language:
- No border radius - All elements have sharp corners
- Hard shadows - Offset shadows with no blur
- High contrast - Black/white with accent colors
- Utilitarian typography - IBM Plex Mono + Instrument Serif
- Kinetic interactions - Mechanical hover states
Key CSS variables are defined in src/app/globals.css.
| Route | Description |
|---|---|
/ |
Homepage with stats, forms, and info |
/roster |
Searchable creator roster |
/roster?category=X |
Filtered roster by category |
/admin |
Password-protected admin dashboard |
/api/submit/feedback |
POST endpoint for feedback |
/api/submit/tip |
POST endpoint for tips |
/api/submit/vision |
POST endpoint for vision |
- Update logo in
src/components/HomeClient.tsx - Modify colors in
src/app/globals.css(:rootvariables) - Update metadata in
src/app/layout.tsx
Edit the CATEGORIES array in src/app/roster/page.tsx
Update the FORMS object in src/components/HomeClient.tsx
{
"userName": "John Doe",
"handle": "@johndoe",
"category": "Platform",
"issue": "Description of the problem",
"solution": "Proposed solution"
}{
"userName": "John Doe",
"handle": "@johndoe",
"category": "AI Tools",
"tip": "Your tip here",
"details": "Additional context"
}{
"userName": "John Doe",
"handle": "@johndoe",
"goal": "What you want to achieve",
"timeline": "30 days",
"accountability": "Looking for partner in X area"
}- Fork the repository
- Create a feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
This project is open source and available under the MIT License.
- Built by creators, for creators
- Powered by the COX Coop community
- Design inspired by brutalist web design principles
Nothing moves forward without solutions. π