Vedra BI is a full-featured, open-source Business Intelligence platform built with pure Vanilla JavaScript, Firebase, and cutting-edge charting libraries — no heavy framework required.
A powerful, open-source Business Intelligence platform that turns raw data into actionable insights — with zero framework overhead, built entirely on modern web standards.
Built with pure ES Modules + HTML5 + CSS3 — no React, no Angular, no Vue. Just the web, at its best.
Cloud sync via Firebase Firestore with automatic localStorage fallback for offline resilience.
Google Gemini API powers an in-app chat assistant that understands your data and guides operations.
Handles up to 1 million rows with virtual scrolling, lazy loading, and optional Python backend offloading.
Drag-and-drop dashboards, dark/light themes, animated backgrounds, chart effects, and more.
Mobile-first, touch-optimized UI that adapts beautifully across all screen sizes and devices.
A complete BI suite — from data ingestion to AI-powered insights and beautiful exports.
Multi-method login system with enterprise-grade security to protect your sensitive business data.
Import data from multiple sources, edit it with a full spreadsheet editor, and sync it to the cloud in real-time.
From simple bar charts to 3D scatter plots — all powered by ECharts, ECharts-GL, and Plotly.js with real-time updates.
Create multiple dashboards, drag and resize charts freely, apply backgrounds and visual effects with zero-code customization.
Multi-dimensional data filtering that updates all charts instantly, with filter state persisted across sessions.
Powered by Google Gemini, the built-in AI assistant understands your uploaded data and can guide chart creation, filtering, and insights.
Share your insights with professional-quality exports in any format your stakeholders need.
Engineered for speed — handles massive datasets without compromising the user experience.
A carefully curated stack of proven, best-in-class tools — lightweight, fast, and open.
From simple comparisons to complex 3D visualizations — Vedra BI has the right chart for every dataset.
A clean, modular codebase organized by responsibility — easy to navigate, easy to extend.
Clone, configure, and run — Vedra BI is designed to be up and running fast.
Make sure you have the following installed:
git clone https://github.com/dhaval-vedra/vedra--bi.git
cd vedra--bi
npm install
Create a .env.local file in the root directory:
# Firebase Config
VITE_FIREBASE_API_KEY=your_api_key
VITE_FIREBASE_AUTH_DOMAIN=your_project.firebaseapp.com
VITE_FIREBASE_PROJECT_ID=your_project_id
VITE_FIREBASE_STORAGE_BUCKET=your_project.appspot.com
VITE_FIREBASE_MESSAGING_SENDER_ID=your_sender_id
VITE_FIREBASE_APP_ID=your_app_id
# AI Integration
GEMINI_API_KEY=your_gemini_api_key
PORT=3000
In your Firebase console:
.env.local# Development mode
npm run dev
# Build for production
npm run build
# Start production server
npm start
App opens at http://localhost:3000
rules_version = '2';
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId}/{document=**} {
allow read, write: if request.auth != null
&& request.auth.uid == userId;
}
}
}
From first login to exporting your first report — a step-by-step walkthrough.
The Express.js server exposes a clean REST API for large-dataset operations.
| Endpoint | Method | Description |
|---|---|---|
/api/upload-large-data |
POST | Upload large datasets (>50MB) for Python backend processing |
/api/filter-large-data |
POST | Filter large datasets using the Python filter engine |
initData() — Initialize data from FirebaserawData — Full datasetfilteredData — Currently filtered datasaveUserDataToFirebase() — Cloud syncapplyFiltersAndSort() — Apply filtersresetFiltersAndShowAllData() — Reset all filtersexportToCSV() — Export filtered dataclearAllData() — Clear all datagetDataStats() — Data statisticsaddChart(type, xCol, yCol) — Add chart to dashboardremoveChart(id) — Remove a chartupdateAllCharts() — Refresh all charts with filtered dataexportChart(id, format) — Export individual chartsetGlobalFilter(col, val) — Apply column filtersetDateRange(start, end) — Apply date range filtersetNumericRange(col, min, max) — Numeric rangeclearAllFilters() — Reset filtersgetFilterState() — Current filter stateexportToPDF() — Full dashboard PDFexportToPNG() — Dashboard screenshotexportToExcel(data) — Native .xlsx exportexportToCSV(data) — CSV filtered exportYour data is protected at every layer with modern security practices.
Industry-standard OAuth 2.0 & JWT tokens managed entirely by Firebase — no custom session handling.
Per-user data isolation enforced at the database level — users can only read/write their own data.
All API keys and credentials stored in .env.local — never committed to version control.
All Firebase communication and API calls use secure HTTPS/TLS encryption by default.
Found a bug? Have a question? We're here to help.
Browse source code, open issues, and submit pull requests.
github.com/dhaval-vedra/vedra--bi →Found something broken? Open a GitHub issue with steps to reproduce.
Open an Issue →Direct questions, partnership inquiries, or feature requests via email.
gametidhaval980@gmail.com →Vedra BI is fully open source under the MIT license. Use, modify, and distribute freely.
View License →