Getting Started

Get Voxly running locally in under 5 minutes. You'll need Node.js 18+, Python 3.11+, and PostgreSQL installed.

One-Command Setup

The fastest way to get started is using our CLI tool. It scaffolds the project and handles service orchestration.

bash
# Install the Voxly CLI globaly (or run via npx)
npx voxly create my-agency

# Step into the directory
cd my-agency

# Start EVERYTHING (Backend + Frontend)
voxly dev

✓ You're all set!

Visit http://localhost:3000 for the dashboard and http://localhost:8000/docs for the API.

CLI Tools

Voxly comes with a powerful CLI to manage your development and production lifecycle.

voxly create [dir]

Scaffolds a new Voxly instance with guided configuration for AI providers (OpenAI, Gemini, Claude).

voxly dev

The "One-Command" orchestrator. Automatically boots the FastAPI server and Next.js frontend in development mode.

voxly migrate

Triggers Alembic migrations to keep your database schema in sync with the latest updates.

Architecture

Voxly follows a modern fullstack architecture with a FastAPI backend, Next.js frontend, and integrations with GitHub, WhatsApp (Twilio), and Claude AI.

System Flow

GitHub Repos

FastAPI Backend + Claude AI

WhatsApp (Twilio)

Backend Stack

  • FastAPI — REST API framework
  • SQLAlchemy — ORM with PostgreSQL
  • Alembic — Database migrations
  • Anthropic Claude — AI responses
  • Twilio — WhatsApp messaging
  • Redis — Rate limiting & caching

Frontend Stack

  • Next.js 14 — React framework
  • TypeScript — Type-safe code
  • Tailwind CSS — Utility-first CSS
  • Framer Motion — Animations
  • React Query — Data fetching
  • React Hook Form — Form handling

API Reference

Base URL: http://localhost:8000/api/v1

All endpoints require JWT Bearer token unless marked as "Public" or "API Key".

🔐 Authentication

POST/auth/registerRegister a new userPublic
POST/auth/loginLogin and receive JWT tokenPublic
GET/auth/meGet current user profileJWT
PUT/auth/meUpdate profileJWT

👥 Clients

GET/clientsList all clientsJWT
POST/clientsCreate a new clientJWT
GET/clients/:idGet client detailsJWT
PUT/clients/:idUpdate clientJWT
DELETE/clients/:idDelete clientJWT

📁 Projects

GET/projectsList all projectsJWT / API Key
POST/projectsCreate a projectJWT
GET/projects/:idGet project detailsJWT / API Key
PUT/projects/:idUpdate projectJWT

🎯 Milestones

GET/projects/:id/milestonesList milestones for a projectJWT
POST/projects/:id/milestonesCreate a milestoneJWT
PUT/milestones/:idUpdate milestoneJWT

🔑 API Keys

GET/api_keysList your API keysJWT
POST/api_keysGenerate a new API keyJWT
DELETE/api_keys/:idRevoke an API keyJWT

💳 Billing

GET/billing/plansList available plansPublic
GET/billing/subscriptionGet current subscriptionJWT
GET/billing/usageGet usage statisticsJWT
POST/billing/checkoutCreate checkout sessionJWT

📲 Notifications

POST/notifications/sendSend custom WhatsApp messageJWT

Configuration

All configuration is done via .env file in the backend/ directory.

VariableRequiredDescriptionExample
DATABASE_URLRequiredPostgreSQL connection stringpostgresql://user:pass@localhost/voxly
SECRET_KEYRequiredJWT signing secretyour-super-secret-key-here
ANTHROPIC_API_KEYOptionalClaude AI API keysk-ant-...
OPENAI_API_KEYOptionalOpenAI API key (for GPT-4o Vision)sk-...
GEMINI_API_KEYOptionalGoogle Gemini API keyAIza...
TWILIO_ACCOUNT_SIDRequiredTwilio account SIDAC...
TWILIO_AUTH_TOKENRequiredTwilio auth tokenyour_auth_token
TWILIO_WHATSAPP_NUMBERRequiredTwilio WhatsApp numberwhatsapp:+14155238886
GITHUB_TOKENOptionalGitHub personal access tokenghp_...
REDIS_URLOptionalRedis connection URLredis://localhost:6379
STRIPE_SECRET_KEYOptionalStripe secret key for billingsk_test_...
RAZORPAY_KEY_IDOptionalRazorpay key ID (Indian billing)rzp_test_...

Deployment

Option 1: VPS / Hetzner (Recommended)

Use our automated scripts to set up a production-ready VPS with Nginx, SSL, and Docker.

bash
# 1. SSH into your VPS and run setup
bash <(curl -s https://voxly.dev/install-server.sh)

# 2. Configure your .env and run deployment
./scripts/deploy_voxly.sh

Option 2: Docker Compose (Self-Hosted)

bash
# Run in production mode
docker-compose -f docker-compose.prod.yml up -d

Deployment Architecture

In production, Voxly uses **Nginx** as a reverse proxy to handle SSL termination (via Let's Encrypt) and load balancing between the Next.js frontend and FastAPI backend. All services are containerized for high availability and easy scaling.

Production Checklist

  • Set strong SECRET_KEY (32+ chars)
  • Configure production DATABASE_URL
  • Enable HTTPS on all endpoints
  • Set up Stripe/Razorpay webhook URLs
  • Configure Twilio production credentials
  • Set up Redis for rate limiting
  • Enable CORS for your frontend domain
  • Set up monitoring and logging

FAQ

Can I use different AI providers?

Yes! Voxly supports a multi-provider "Bring Your Own Key" (BYOK) architecture. You can use Anthropic Claude, OpenAI (GPT-4o), or Google Gemini. Switch providers in your organization settings.

How does Vision support work?

When a client sends a screenshot on WhatsApp, Voxly uses multimodal LLMs (like GPT-4o or Gemini 1.5) to analyze the image, cross-reference it with your GitHub code, and optionally open issues automatically.

Is my client data secure?

Security is our priority. Voxly uses industry-standard JWT for auth, enforces strict Row Level Security (RLS) in the database, and never trains models on your private repository data.

How do I add custom tools?

You can extend Voxly by adding new tool definitions in backend/app/services/ai_providers/tools/. Use the ReAct pattern to let the agent decide when to use them.

Ready to get started?

Create your account and start automating client updates in minutes.