Start with A – Open-source, self-hosted investment research platform (BYOK AI) Start with A, an open-source investment research platform, has been released on GitHub. The self-hosted tool integrates research, portfolio monitoring, and journaling into a single workflow, supporting AI assistants from Gemini, OpenAI, and Anthropic. It is designed for disciplined investors seeking a customizable, privacy-focused alternative to commercial platforms. A platform that connects research, portfolio monitoring, and journaling into one disciplined investment workflow. See vision.md /warlock20/StartWithA/blob/main/vision.md for the full product vision. Research — Idea inbox, kill screening, company & sector research, AI assistant Portfolio — Position tracking, thesis vs reality, checkpoints, AI analytics Journal — Decision journal, mistake log, learning insights Idea or Market Sweeper → Kill Screen → Research ←──────────────┐ → Buy Decision │ → Track Position Updated Checklist → Journal │ → Learn |───────────────┘ Backend: Python 3.12, Flask, PostgreSQL pgvector , Celery + Redis Frontend: Jinja2 + React components, Bootstrap, Webpack AI: Gemini, OpenAI, and Anthropic via YAML prompt templates The easiest way to run the platform locally. Requires Docker https://docs.docker.com/get-docker/ and Docker Compose. cp .env.example .env Edit .env and fill in the Auth0 and AI keys see Environment Variables environment-variables below . DATABASE URL and REDIS URL are set automatically by Docker Compose — any values in .env are overridden. docker compose up --build -d The app will be available at http://localhost:8000 . | Service | Description | Port | |---|---|---| web | Flask app via Gunicorn | 8000 | db | PostgreSQL 16 + pgvector | 5432 | redis | Redis 7 Celery broker + cache | 6379 | worker | Celery background worker | — | Database migrations run automatically on startup. View logs docker compose logs -f web docker compose logs -f worker Restart after .env changes docker compose restart web Stop everything docker compose down Stop and wipe database docker compose down -v - Register an account through the UI - Ensure your email is listed in ADMIN EMAILS in .env - Restart: docker compose restart web - Navigate to /admin Requires Python 3.12+, PostgreSQL with the pgvector https://github.com/pgvector/pgvector extension, Redis, and Node.js. git clone https://github.com/warlock20/StartWithA.git cd StartWithA Python python3 -m venv venv && source venv/bin/activate pip install -r requirements.txt Frontend npm ci && npm run build Environment cp .env.example .env Edit .env — set DATABASE URL, REDIS URL, Auth0 keys, etc. Database flask db upgrade Run flask run Start the Celery worker in a separate terminal: celery -A celery app worker --loglevel=info Copy .env.example to .env . Docker Compose sets DATABASE URL and REDIS URL automatically — only set those if running without Docker. | Variable | Description | |---|---| SECRET KEY | Flask session secret — any random string | AUTH0 DOMAIN | Your Auth0 tenant domain e.g. your-tenant.auth0.com | AUTH0 CLIENT ID | Auth0 application client ID | AUTH0 CLIENT SECRET | Auth0 application client secret | AUTH0 CALLBACK URL | OAuth callback URL http://localhost:8000/auth/callback for Docker | AUTH0 AUDIENCE | Auth0 API audience usually https://