mirror of
https://github.com/sakaljurgis/best-choice.git
synced 2026-07-08 21:47:40 +00:00
main
BestChoice Comparator
BestChoice is a full-stack experiment for lining up similar products and comparing their properties side by side. The goal is to make it easy to track specs, notes, and supporting content gathered during product research. This entire codebase is a vibe-coded adventure—every single line was generated rather than typed by hand.
Project Overview
- Client: React + Vite app for browsing projects, items, and attributes.
- Server: Express API that stores items, fetches URL summaries, and orchestrates LLM-assisted imports.
- Shared: Common TypeScript utilities and types used by both sides.
- Database: PostgreSQL (pgvector) instance defined in
docker-compose.yml.
Getting Started
Prerequisites
- Node.js 20+
- npm 10+
- Docker (optional but recommended for the local Postgres instance)
Setup
- Install dependencies:
npm install - Copy the environment template and provide real values as needed:
The service expects values for the URL reader and LLM integrations. Leave them blank if you only want to explore the UI with mock data.
cp .env.example .env - (Optional) Start the local PostgreSQL container:
docker-compose up -d postgres
Run in Development
npm run dev
This launches both the API (port 3000) and the client (port 5173) via concurrent processes.
Build for Production
npm run build
Compiled assets land in client/dist and server/dist. Use npm run lint to check code style.
Project Status
BestChoice is still evolving and unapologetically vibe-coded. Contributions are welcome, but expect a healthy dose of generative chaos.
Description
Languages
TypeScript
99.1%
JavaScript
0.4%
Dockerfile
0.3%
HTML
0.1%