Backer is a Next.js 14 platform that connects founders and investors through short-form pitch content, profile matching, messaging, and investment intent workflows.
- Next.js 14 (App Router) + React 18 + TypeScript
- NextAuth (credentials provider)
- DynamoDB (primary app data store)
- AWS S3 (media uploads)
- AWS SES (optional invite email delivery)
- Prisma (present in repo for schema/client tooling and legacy scripts)
- Founder and investor registration/login
- Founder onboarding/profile + startup/company creation
- Investor onboarding/profile + reels-style feed (
/investor/feed) - Product like/interest and commitment flow
- Founder/investor messaging
- Co-founder invite flow
- Node.js 18+ (recommended: Node.js 20)
- npm
- AWS account/credentials with access to:
- DynamoDB
- S3
- SES (only if you want invite emails)
Create a .env file in the project root. At minimum, configure:
# NextAuth
NEXTAUTH_SECRET="replace-with-a-strong-random-secret"
NEXTAUTH_URL="http://localhost:3000"
# AWS
AWS_REGION="us-east-2"
AWS_PROFILE="your-profile" # or AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY
# S3 uploads
AWS_S3_BUCKET="your-s3-bucket"
AWS_S3_PUBLIC_URL="https://your-bucket.s3.us-east-2.amazonaws.com"
AWS_S3_UPLOAD_PREFIX="uploads"
# Optional S3 custom endpoint/localstack
# AWS_S3_ENDPOINT="http://localhost:4566"
# AWS_S3_FORCE_PATH_STYLE="true"
# Optional SES (co-founder invite emails)
EMAIL_FROM_ADDRESS="no-reply@your-domain.com"
APP_BASE_URL="http://localhost:3000"
# DynamoDB table names
DYNAMODB_TABLE_USERS="backer-dev-users"
DYNAMODB_TABLE_FOUNDERS="backer-dev-founders"
DYNAMODB_TABLE_PRODUCTS="backer-dev-products"
DYNAMODB_TABLE_FOUNDER_PRODUCTS="backer-dev-founder-products"
DYNAMODB_TABLE_FOUNDER_INVITES="backer-dev-founder-invites"
DYNAMODB_TABLE_INVESTORS="backer-dev-investors"
DYNAMODB_TABLE_INVESTOR_INTERESTS="backer-dev-investor-interests"
DYNAMODB_TABLE_CONVERSATIONS="backer-dev-conversations"
DYNAMODB_TABLE_MESSAGES="backer-dev-messages"
DYNAMODB_TABLE_INVESTMENTS="backer-dev-investments"
# Optional local DynamoDB endpoint
# AWS_DYNAMODB_ENDPOINT="http://localhost:8000"Notes:
- Use either
AWS_PROFILEor static access keys, not both. - Do not commit real secrets in
.env.
- Install dependencies:
npm install- Ensure DynamoDB tables exist:
npm run setup:dynamodb- Start the app:
npm run dev- Open:
http://localhost:3000
npm run dev- start local dev servernpm run build- production buildnpm run start- start production servernpm run lint- run ESLintnpm run setup:dynamodb- create required DynamoDB tables if missing
app/- App Router pages and API routescomponents/- UI and feature componentslib/db/- DynamoDB client, table config, repository layerscripts/- local utility/setup scriptsprisma/- Prisma schema/migrations/seed artifacts
Current application runtime reads/writes through lib/db/repository.ts (DynamoDB). Prisma artifacts remain in the repository for schema management/legacy workflows and are not the primary runtime datastore for app features.