A Finnish face-to-face salesperson (feissari) simulator game where you compete against LLM-powered salesperson characters. Can you survive 3 minutes without losing all your money?
Play at feissari.fi
- Starting Budget: €100 per player
- Time Limit: 3 minutes per game session
- Objective: Progress through as many feissari encounters as possible without running out of money
- Gameplay: Engage in text-based conversations with AI salespeople powered by Google Gemini, trying to resist their sales pitches
- Node.js with Express (TypeScript)
- Firebase Firestore for data storage
- Google Gemini AI for dynamic conversations
- Vitest for testing
- Next.js 16 with React 19
- TypeScript
- Tailwind CSS
- Shadcn UI components
feissari/
├── backend/ # Express.js API server
│ ├── index.ts # Main server file
│ ├── types.ts # TypeScript interfaces
│ ├── llmService.ts # Google Gemini integration
│ ├── seedFeissarit.ts # Database seeding script
│ └── ...
├── frontend/ # Next.js application
│ ├── app/ # Next.js app directory
│ ├── components/ # React components
│ └── lib/ # Utilities and context
└── requirements.md # Detailed specifications
- Node.js (v14 or higher)
- Firebase project with Firestore enabled
- Google Gemini API key (Get one here)
- Navigate to backend directory:
cd backend
npm install- Configure environment variables:
cp .env.example .env
# Edit .env with your Firebase and Gemini API credentials- Start the backend server:
npm run devThe backend will run on http://localhost:3001
- Navigate to frontend directory:
cd frontend
npm install- Configure environment variables (create
.env.local):
NEXT_PUBLIC_BACKEND_URL=http://localhost:3001- Start the development server:
npm run devThe frontend will run on http://localhost:3000
- Start both backend and frontend servers
- Open your browser to
http://localhost:3000 - Enter your name to begin
- Try to survive 3 minutes without losing all your money!
See backend/README.md for detailed API documentation.
Backend tests:
cd backend
npm testBackend:
cd backend
npm run build
npm startFrontend:
cd frontend
npm run build
npm startISC