Open-Source Cold Email & Warmup Platform
Warmbly is the open-source platform for cold email: warm your mailboxes, send campaigns, and triage every reply. Run it on our cloud or self-host the whole thing.
The marketplace for authentic user-generated content. Connect with vetted creators, collaborate, and create content that drives real results.
MarketingTypeScript · CSSGitHub @Messold-Technologies1OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗GoCollab is a full-stack marketplace that connects brands with User-Generated Content (UGC) creators. Brands discover, brief, and pay creators in one place; creators manage their portfolio, packages, and orders from a dedicated dashboard.
GoCollab solves the friction in UGC production:
/{displayName}), showcase a video portfolio, set tiered packages and add-ons, and manage the full order lifecycle from a single dashboard./{displayName} pages with portfolio reels, packages, ratings, and a Book CTA/docs (non-production)/client)| Layer | Technology |
|---|---|
| Framework | Next.js 15 (App Router, React Server Components) |
| Language | TypeScript |
| Styling | Tailwind CSS v4 |
| State / Data | TanStack React Query v5, Redux Toolkit |
| Forms | React Hook Form + Zod |
| Payments | Razorpay SDK |
| Real-time | Socket.IO client |
| UI primitives | Radix UI, Ark UI, Vaul, Embla Carousel |
| Charts | Chart.js + react-chartjs-2 |
| Animations | Framer Motion |
| Icons | Lucide React |
| Notifications | Sonner |
/server)| Layer | Technology |
|---|---|
| Framework | NestJS (Express adapter) |
| Language | TypeScript |
| Database | PostgreSQL via Prisma ORM |
| Auth | JWT (access + refresh tokens), HTTP-only cookies |
| Payments | Razorpay |
| Storage | AWS S3 (creator media, deliverables) |
| AWS SES | |
| Real-time | Socket.IO (NestJS gateway) |
| Validation | class-validator + class-transformer |
| Docs | Swagger / OpenAPI |
| Security | Helmet, CORS, rate limiting |
UGC-PLATFORM/
├── client/ # Next.js 15 frontend
│ ├── app/ # App Router pages
│ │ ├── [displayName]/ # Public creator profile (shareable)
│ │ ├── brand/ # Brand dashboard
│ │ ├── creator/ # Creator dashboard
│ │ ├── admin/ # Admin panel
│ │ └── (main)/ # Marketing / landing pages
│ ├── features/ # Feature-sliced modules
│ │ ├── auth/ # Auth hooks, API calls
│ │ ├── creators/ # Creator listing, profile, browse
│ │ ├── creator-portfolio/ # Portfolio upload & display
│ │ ├── orders/ # Order management
│ │ ├── briefs/ # Creative brief flow
│ │ ├── payments/ # Razorpay checkout hooks
│ │ └── chats/ # Real-time order chat
│ ├── components/ # Shared UI components
│ │ ├── landing/ # Marketing landing sections
│ │ └── ui/ # Primitive UI components
│ └── providers/ # React context providers (Auth, Query, Theme)
│
└── server/ # NestJS backend
└── src/
├── auth/ # JWT auth, guards, strategies
├── creator-profile/ # Creator profile CRUD + search
├── creator-portfolio/ # Portfolio video management
├── brand-profile/ # Brand profile management
├── orders/ # Order lifecycle
├── briefs/ # Brief creation & management
├── razorpay/ # Payment processing + webhooks
├── order-chat/ # Per-order real-time chat
├── chats/ # General messaging
├── creator-reviews/ # Brand reviews of creators
├── storage/ # AWS S3 file uploads
├── mail/ # AWS SES email service
├── agency/ # Agency workspace management
├── jobs/ # Background/scheduled jobs
├── realtime/ # Socket.IO gateway
└── webhooks/ # Razorpay + SES webhook handlers
server/.env)DATABASE_URL=postgresql://user:password@localhost:5432/ugcplatform
JWT_SECRET=your_jwt_secret
JWT_REFRESH_SECRET=your_refresh_secret
PORT=4000
CORS_ORIGIN=http://localhost:3000
# AWS
AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_REGION=
AWS_S3_BUCKET=
# AWS SES
[email protected]
# Razorpay
RAZORPAY_KEY_ID=
RAZORPAY_KEY_SECRET=
RAZORPAY_WEBHOOK_SECRET=
# Non-refundable reward credit for buyers. The two rewards are configured
# independently — either can be switched on, off or re-priced without touching
# the other — and all four are read at runtime: change them and restart, no
# deploy needed. The signup reward covers BOTH brand and agency registration:
# one switch, one amount, no agency-specific variable.
ORDER_COMPLETION_CREDIT_ENABLED=false # 'true' rewards a completed order
ORDER_COMPLETION_CREDIT_PAISE=5000 # 5000 paise = ₹50
SIGNUP_WELCOME_CREDIT_ENABLED=false # 'true' rewards a new brand or agency
SIGNUP_WELCOME_CREDIT_PAISE=10000 # 10000 paise = ₹100
SWAGGER_ENABLED=true
NODE_ENV=development
client/.env.local)NEXT_PUBLIC_API_URL=http://localhost:4000/api
NEXT_PUBLIC_RAZORPAY_KEY_ID=your_razorpay_key_id
cd server
npm install
npx prisma migrate dev # run migrations
npx prisma generate # generate Prisma client
npm run start:dev # starts on port 4000
API docs available at http://localhost:4000/docs
cd client
npm install
npm run dev # starts on port 3000
Open http://localhost:3000
Browser
│
▼
Next.js 15 (App Router)
├── Server Components → fetch data at build/request time (ISR + SSR)
├── Client Components → interactive UI, React Query for client-side data
└── API Routes → minimal (auth redirect helpers)
│
▼ HTTP / WebSocket
NestJS API (REST)
├── JWT Auth (HTTP-only refresh cookie + Bearer access token)
├── Prisma ORM → PostgreSQL
├── S3 for media storage
├── SES for transactional email
├── Razorpay for payments + escrow
└── Socket.IO for real-time order chat
Key architectural decisions:
export const revalidate = 3600), giving near-static performance with fresh dataGET /creator-profile/:id) use OptionalJwtAuthGuard, which silently populates req.user when a valid token is present and allows unauthenticated access otherwisefeatures/ module with co-located API calls, hooks, types, and components/{displayName} or /brand/creators/brand/briefs/create?orderId=…/creator/orders/[orderId]/register, chooses Creator, then completes the profile wizard/{displayName} after admin approvalWhen running locally with SWAGGER_ENABLED=true, interactive API docs are available at:
http://localhost:4000/docs
All endpoints are prefixed with /api. Authentication uses JWT Bearer tokens for most routes; public creator browsing and profile endpoints allow unauthenticated access.
development — never push directly to mainfeat/…, fix/…, chore/…development; main is the production branchnpx tsc --noEmit in client/ before pushing to catch type errors