Agentic & No-Code Data Transformations
Vibe coded pipelines: say hello to accuracy and maintainability.
Website · Documentation · Issues · Contributing
Visitran is the modern, agent-native data transformation platform that lets you create sophisticated, yet highly standardized transformation metrics and highly maintainable transformation projects with AI. It is built on a strong foundation of Python (powered by Ibis) and SQL, while affording you a simple, conversational interface.
First off, congratulations. You are using modern tools to quickly solve pains you have. The trouble starts when everyone in your organization is vibe coding pipelines and seeing different numbers for critical metrics. Pandemonium ensues. As it is, it's tough for even humans to come to an agreement on how core metrics are defined. With Visitran, you get the best of both worlds. You "vibe code" your pipelines with Visitran AI, but you can collaborate with your team members and build transformations that are agreed upon, verifiable and maintainable. Speed: say hi to accuracy. Accuracy: say hi to maintainability.
Supported Databases
| Database | Status | Database | Status |
|---|---|---|---|
| PostgreSQL | ✅ | DuckDB | ✅ |
| Snowflake | ✅ | BigQuery | ✅ |
| Trino | ✅ | Databricks | ✅ |
If Visitran helps you, please star this repo — it helps others discover the project!
For Data Engineers
- No-code backed by Python-based transformation models with Ibis SQL generation
- 6 database adapters with table, view, and incremental materialization
- DAG execution engine with dependency resolution
- Job scheduling with cron/interval triggers, retry, and chaining
For Analysts & No-Code Users
- No-code model builder — joins, filters, aggregates, window functions, pivots, unions
- Formula Columns support: Create complex transformations with Excel-like formulas
- AI assistant for natural language to data transformations
- Built-in testing framework for model validation
Requires Docker and Docker Compose.
git clone https://github.com/Zipstack/visitran.git
cd visitran
cp backend/sample.env backend/.env
cd docker
docker compose up --build -dOpen http://localhost:3000 and Sign Up to create your account — that's it!
AI Features (optional): Get an API key from app.visitran.com and add
VISITRAN_AI_KEY=vtk_...tobackend/.env, then restart withdocker compose restart backend.
Services started by Docker Compose
| Service | Port | Description |
|---|---|---|
| Frontend | 3000 |
React UI (Nginx) |
| Backend | 8000 |
Django REST API (Gunicorn) |
| PostgreSQL | 5432 |
Database |
| Redis | 6379 |
WebSockets and async task broker |
| Celery Worker | — | Background job processing |
| Celery Beat | — | Scheduled task processing |
To stop: docker compose down
To stop and delete all data: docker compose down -v
Environment variables
The sample.env ships with working defaults — no edits needed to get started. For production, replace these keys:
| Variable | Default | How to Generate (production) |
|---|---|---|
SECRET_KEY |
Provided | Use djecrety.ir or python -c "from django.core.management.utils import get_random_secret_key; print(get_random_secret_key())" |
VISITRAN_ENCRYPTION_KEY |
Provided | python -c "from base64 import b64encode; from cryptography.fernet import Fernet; print(b64encode(Fernet.generate_key()).decode())" |
VISITRAN_RSA_PRIVATE_KEY |
Provided | Generate a 2048-bit RSA key pair (see sample.env) |
VISITRAN_RSA_PUBLIC_KEY |
Provided | Derived from the private key above |
Local development (without Docker)
For development or when you want full control over each component.
Prerequisites
- Python 3.10.x (
>=3.10, <3.11.1— required bypyproject.toml) - Node.js 16+
- uv (Python package manager)
- Redis (for WebSockets and Celery) — install via
brew install redis(macOS) or your OS package manager
Backend
git clone https://github.com/Zipstack/visitran.git
cd visitran
cp backend/sample.env backend/.envEdit backend/.env for local development:
| Variable | Required | Value for localhost |
|---|---|---|
DB_HOST |
No | Leave empty for SQLite, or localhost for local PostgreSQL |
REDIS_HOST |
Yes | localhost |
DB_SAMPLE_HOST |
No | localhost (requires PostgreSQL) or leave empty to skip |
Important: Change
DB_HOST=postgres→DB_HOST=(empty) andREDIS_HOST=redis→REDIS_HOST=localhost.
cd backend
pip install uv
uv sync
source .venv/bin/activate
python manage.py migrate
python manage.py runserverFrontend
cd frontend
cp sample.env .env
npm install
npm startOpen http://localhost:3000 and sign up to create your account.
backend/
├── backend/ # Django application
│ ├── core/ # Models, views, REST API
│ ├── application/ # Business logic, config parser, interpreter
│ └── server/settings/ # Django settings
├── visitran/ # Core transformation engine (standalone)
│ ├── adapters/ # Database adapters (postgres, duckdb, snowflake, etc.)
│ ├── templates/ # VisitranModel base class
│ └── visitran.py # DAG execution engine
frontend/src/
├── base/ # App shell, routing, project listing
├── ide/ # Main workspace (editor, file explorer, SQL drawer)
│ ├── chat-ai/ # AI assistant interface
│ └── editor/ # No-code visual model builder
├── store/ # Zustand state management
├── service/ # API services (axios, socket)
└── widgets/ # Reusable UI components
docker/
├── dockerfiles/ # Backend and frontend Dockerfiles
└── docker-compose.yaml # Docker Compose configuration
# Run server with hot reload
cd backend && python manage.py runserver
# Run migrations
python manage.py migrate
# Lint & type check
inv checks
inv type_check
# Run tests (requires Docker for test databases)
docker compose up --wait
uv run pytest -vv --dist loadgroup -n 5 tests
docker compose downcd frontend
npm start # Dev server
npm run build # Production build
npm test # Run tests
npm run test:coverage # Test with coverage
npm run lint # ESLint check
npm run lint:fix # ESLint auto-fixFor teams that need managed infrastructure, advanced features, or enterprise-grade security.
- SSO & RBAC — SAML/OIDC single sign-on with role-based access control
- Managed AI — Built-in AI service with no API key setup required
- Job Scheduling — Cron/interval triggers with retry, chaining, and notifications
- Cloud Storage — Managed file storage with version control
- Multi-Tenant — Organization-level isolation and team management
- Priority Support — Dedicated support with SLA guarantees
The AI assistant generates data transformations from natural language. In OSS mode, AI access requires a Visitran AI subscription key:
- Sign up at app.visitran.com
- Subscribe to an AI plan and generate an API key
- Go to Settings > Visitran AI in your local instance and enter your key
- Open the Chat AI drawer in the IDE to start using AI
The cloud gateway validates your key, routes prompts through LLM models (Claude, GPT-4o, Gemini), and streams responses back — no local AI setup or LLM credentials needed.
| Component | Technology |
|---|---|
| Backend | Python, Django, Django REST Framework, Celery |
| Frontend | React, Ant Design, Zustand, Monaco Editor |
| SQL Generation | Ibis |
| Databases | PostgreSQL, DuckDB, Snowflake, BigQuery, Trino, Databricks |
| Infrastructure | Docker, Redis, Gunicorn |
We welcome contributions! See CONTRIBUTING.md for detailed guidelines.
- Fork the repo and create a feature branch from
main - Make your changes
- Run linting:
- Frontend:
npm run lint - Backend:
inv checks
- Frontend:
- Run tests:
- Frontend:
npm test - Backend:
uv run pytest
- Frontend:
- Submit a pull request
Join the Visitran community:
Visitran integrates Posthog to track minimal usage analytics. Disable by setting REACT_APP_ENABLE_POSTHOG=false in the frontend's .env file.
Visitran is licensed under the GNU Affero General Public License v3.0 (AGPL-3.0). You are free to use, modify, and distribute this software under the terms of the AGPL-3.0. If you run a modified version as a network service, you must make the source code available to users of that service.
Built with care by the Visitran team