Commercial real estate platform connecting property owners with federal government leasing opportunities.
# Install dependencies
npm install
# Start development server
./dev.sh./dev.sh instead of npm run dev
This prevents shell environment variable conflicts with the SAM.gov API key.
See CLAUDE.md for complete project documentation, including:
- Architecture overview
- SAM.gov API integration
- Common issues and solutions
- Deployment instructions
Copy .env.example to .env.local and fill in your API keys:
cp .env.example .env.localRequired variables:
SAM_API_KEY- SAM.gov API key for federal opportunitiesNEXT_PUBLIC_SUPABASE_URL- Supabase project URLNEXT_PUBLIC_SUPABASE_ANON_KEY- Supabase public keyDATABASE_URL- Neon PostgreSQL connection string
./dev.sh # Start development server (port 3002)
npm run build # Production build
npm run lint # ESLint check
vercel --prod # Deploy to production"401 API_KEY_INVALID" errors?
Run the environment diagnostic tool:
node check-env.jsThis will check for conflicts between shell environment variables and .env.local.
Quick fixes:
- Make sure you're using
./dev.shand notnpm run dev - Check that
SAM_API_KEYis set in.env.local - Close terminal and open a new one to clear shell env vars
- Verify the key is valid at https://sam.gov
See CLAUDE.md for detailed troubleshooting.
/app # Next.js app router pages
/dashboard # Broker dashboard pages
/my-properties # Property listings page
/gsa-leasing # GSA opportunities page
/api # API routes
/lib # Shared utilities
/sam-gov.ts # SAM.gov API client
/components # Reusable components
/supabase # Database migrations
- Production: [Your Vercel URL]
- Supabase Dashboard: https://supabase.com/dashboard
- SAM.gov API: https://open.gsa.gov/api/opportunities-api/