chartbrew
Open-source web platform used to create live reporting dashboards from APIs, MongoDB, Firestore, MySQL, PostgreSQL, and more 📈📊
Top Related Projects
The simplest, fastest way to get business intelligence and analytics to everyone in your company :yum:
Apache Superset is a Data Visualization and Data Exploration Platform
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Make Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.
📊 Cube — Universal semantic layer platform for AI, BI, spreadsheets, and embedded analytics
Self-serve BI to 10x your data team ⚡️
Quick Overview
Chartbrew is an open-source web application that allows users to create and share interactive charts and dashboards. It connects to various data sources, including databases and APIs, enabling users to visualize and analyze their data without writing complex queries or code.
Pros
- User-friendly interface for creating charts and dashboards
- Supports multiple data sources, including PostgreSQL, MySQL, MongoDB, and various APIs
- Customizable charts with a wide range of visualization options
- Collaboration features for team-based dashboard creation and sharing
Cons
- Limited advanced analytics capabilities compared to enterprise-level BI tools
- Requires self-hosting, which may be challenging for non-technical users
- Documentation could be more comprehensive for some advanced features
- Community support is still growing, potentially leading to slower issue resolution
Getting Started
To get started with Chartbrew, follow these steps:
-
Clone the repository:
git clone https://github.com/chartbrew/chartbrew.git
-
Navigate to the project directory:
cd chartbrew
-
Install dependencies:
npm run setup
-
Configure the environment variables in the
.env
file -
Start the development server:
npm run dev
-
Open your browser and visit
http://localhost:4018
to access Chartbrew
For more detailed instructions and configuration options, refer to the project's documentation on GitHub.
Competitor Comparisons
The simplest, fastest way to get business intelligence and analytics to everyone in your company :yum:
Pros of Metabase
- More mature and feature-rich, with a larger community and extensive documentation
- Supports a wider range of data sources and advanced analytics capabilities
- Offers both cloud-hosted and self-hosted options for deployment
Cons of Metabase
- Steeper learning curve due to its extensive feature set
- Requires more resources to run, potentially making it less suitable for smaller projects
- Less flexible for custom integrations compared to Chartbrew's API-first approach
Code Comparison
Metabase (Java):
public class Query {
private final String query;
private final Map<String, Object> parameters;
public Query(String query, Map<String, Object> parameters) {
this.query = query;
this.parameters = parameters;
}
}
Chartbrew (JavaScript):
const Chart = require("../models/Chart");
exports.createChart = async (req, res) => {
try {
const chart = await Chart.create(req.body);
return res.status(200).json(chart);
} catch (error) {
return res.status(400).json(error);
}
};
Both repositories offer data visualization and analytics capabilities, but they cater to different use cases. Metabase is a more comprehensive solution suitable for larger organizations with diverse data needs, while Chartbrew provides a lightweight, API-driven approach that may be more appealing to developers and smaller teams looking for quick integration and customization.
Apache Superset is a Data Visualization and Data Exploration Platform
Pros of Superset
- More extensive feature set and wider range of visualization options
- Larger community and ecosystem, with better long-term support
- Advanced security features and role-based access control
Cons of Superset
- Steeper learning curve and more complex setup process
- Heavier resource requirements, potentially less suitable for smaller projects
- Less focus on real-time data updates compared to Chartbrew
Code Comparison
Superset (Python):
from superset import db
from superset.models.slice import Slice
slice = Slice(
slice_name="My Chart",
datasource_type="table",
datasource_id=1,
viz_type="bar",
params="{}"
)
db.session.add(slice)
db.session.commit()
Chartbrew (JavaScript):
const Chart = require("../models/Chart");
const newChart = await Chart.create({
name: "My Chart",
type: "bar",
datasetId: 1,
chartData: {},
});
Both Superset and Chartbrew are data visualization and business intelligence tools, but they cater to different scales and use cases. Superset offers a more comprehensive solution for large-scale enterprise needs, while Chartbrew provides a simpler, more lightweight option for smaller projects or teams looking for quick setup and real-time data visualization capabilities.
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Pros of Grafana
- More mature and feature-rich platform with extensive plugin ecosystem
- Supports a wider range of data sources and visualization types
- Robust alerting and notification system
Cons of Grafana
- Steeper learning curve, especially for non-technical users
- Can be resource-intensive for large-scale deployments
- More complex setup and configuration process
Code Comparison
Grafana (JavaScript):
import { PanelPlugin } from '@grafana/data';
import { SimplePanel } from './SimplePanel';
export const plugin = new PanelPlugin<SimpleOptions>(SimplePanel).setPanelOptions(builder => {
return builder.addTextInput({
path: 'text',
name: 'Simple text option',
description: 'Description of panel option',
defaultValue: 'Default value of text input option',
});
});
Chartbrew (JavaScript):
import React from "react";
import { Chart } from "@chartbrew/client";
const MyChart = () => {
return <Chart projectId="your-project-id" chartId="your-chart-id" />;
};
export default MyChart;
Both repositories offer data visualization solutions, but Grafana provides a more comprehensive and customizable platform suitable for complex monitoring needs. Chartbrew, on the other hand, offers a simpler, more user-friendly approach to creating charts and dashboards, making it more accessible for beginners or those seeking a quick setup.
Make Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.
Pros of Redash
- More mature project with a larger community and extensive documentation
- Supports a wider range of data sources out-of-the-box
- Offers advanced features like query scheduling and alerts
Cons of Redash
- Steeper learning curve for non-technical users
- Requires more server resources to run effectively
- Less focus on modern, interactive visualizations
Code Comparison
Redash (Python):
from redash import models
query = models.Query.create(
data_source=data_source,
query_text="SELECT * FROM users",
name="All Users",
user=user,
schedule={"interval": 3600}
)
Chartbrew (JavaScript):
const chart = new Chart({
name: "User Growth",
type: "line",
datasets: [{
data: [12, 19, 3, 5, 2, 3]
}]
});
Both Redash and Chartbrew are data visualization and business intelligence tools, but they cater to different user needs. Redash is more powerful and flexible, suitable for data analysts and engineers who need to work with complex queries and diverse data sources. Chartbrew, on the other hand, offers a more user-friendly interface and focuses on creating visually appealing charts and dashboards with less technical complexity.
📊 Cube — Universal semantic layer platform for AI, BI, spreadsheets, and embedded analytics
Pros of Cube
- More extensive and flexible data modeling capabilities
- Supports a wider range of databases and data sources
- Better suited for large-scale, enterprise-level analytics projects
Cons of Cube
- Steeper learning curve and more complex setup process
- Requires more technical expertise to implement and maintain
- Less focus on out-of-the-box visualizations compared to Chartbrew
Code Comparison
Cube query example:
cube(`Orders`, {
sql: `SELECT * FROM orders`,
measures: {
count: {
type: `count`,
},
},
dimensions: {
status: {
sql: `status`,
type: `string`,
},
},
});
Chartbrew query example:
{
"type": "mysql",
"query": "SELECT * FROM orders",
"fields": [
{ "name": "status", "type": "string" },
{ "name": "count", "type": "number", "aggregation": "count" }
]
}
Both Cube and Chartbrew are data analytics and visualization tools, but they cater to different use cases and skill levels. Cube is more powerful and flexible, suitable for complex data modeling and large-scale projects. It offers extensive customization options but requires more technical expertise. Chartbrew, on the other hand, provides a more user-friendly interface and focuses on quick, easy-to-setup visualizations, making it more accessible for smaller teams or projects with simpler requirements.
Self-serve BI to 10x your data team ⚡️
Pros of Lightdash
- Built specifically for dbt users, offering seamless integration with dbt projects
- Supports version control for metrics and dimensions, enhancing collaboration
- Provides a more robust SQL editor with autocompletion and error highlighting
Cons of Lightdash
- Limited to dbt-compatible data warehouses, reducing flexibility compared to Chartbrew
- Steeper learning curve for users not familiar with dbt or SQL
- Less extensive range of chart types and visualizations than Chartbrew
Code Comparison
Lightdash SQL query example:
SELECT
order_date,
SUM(total_amount) AS total_sales
FROM ${ref('orders')}
GROUP BY order_date
ORDER BY order_date
Chartbrew chart configuration example:
{
type: "line",
datasets: [
{
datasetId: "sales_data",
xAxis: "order_date",
yAxis: "total_amount"
}
]
}
Both repositories focus on data visualization and analytics, but they cater to different user needs. Lightdash is tailored for dbt users and offers more advanced SQL capabilities, while Chartbrew provides a more user-friendly interface and broader data source compatibility. The choice between the two depends on the user's technical expertise and specific project requirements.
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual CopilotREADME
Chartbrew is an open-source web application that can connect directly to databases and APIs and use the data to create beautiful charts. It features a chart builder, editable dashboards, embedable charts, query & requests editor, and team capabilities.
Chartbrew as a service is available here
ð¡ Have any ideas or discussion topics?
ð¬ Join our Discord
Data sources
Check Chartbrew's website for the latest list of supported data sources
Prerequisites
- NodeJS v20
- MySQL (5+) or PostgreSQL (12.5+)
- Redis (v6+)
Start
It is recommended you head over to the more detailed documentation to find out how to set up Chartbrew
Set up Chartbrew locally
Create a new database
Chartbrew can run on MySQL or PostgreSQL. Create an empty database that Chartbrew can use.
Clone and setup
git clone https://github.com/chartbrew/chartbrew.git
cd chartbrew && npm run setup
Complete the required environmental variables in chartbrew/.env
. Check out which need to be set here.
Run the project in Development
Open two terminals, one for front-end and the other for back-end.
# frontend
cd client/
npm run start
# backend
cd server/
npm run start-dev
Head over to http://localhost:4018
to see the app running and create your first user account.
Deploy Chartbrew on Render
Deploy Chartbrew on Heroku and Vercel
Read more on how to do this here
Run with Docker
Check the full guide in the docs.
Quickstart
A Chartbrew docker image is built whenever a new version is released.
Before running the commands below, make sure you have a MySQL server already running and an empty database that Chartbrew can use. The database name should match the value of the CB_DB_NAME
variable.
You will need a 32 bytes AES encryption key for the CB_ENCRYPTION_KEY
variable. Run the following command to generate one:
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
docker pull razvanilin/chartbrew
docker run -p 4019:4019 -p 4018:4018 \
-e CB_ENCRYPTION_KEY=your_32_bytes_key \
-e CB_API_HOST=0.0.0.0 \
-e CB_API_PORT=4019 \
-e CB_DB_HOST=host.docker.internal \
-e CB_DB_PORT=3306 \
-e CB_DB_NAME=chartbrew \
-e CB_DB_USERNAME=root \
-e CB_DB_PASSWORD=password \
-e CB_REDIS_HOST=host.docker.internal \
-e CB_REDIS_PORT=6379 \
-e CB_REDIS_PASSWORD=password \
-e VITE_APP_CLIENT_HOST=http://localhost:4018 \
-e VITE_APP_CLIENT_PORT=4018 \
-e VITE_APP_API_HOST=http://localhost:4019 \
razvanilin/chartbrew
Acknowledgements
Many thanks to everybody that contributed to this open-source project ð
Top Related Projects
The simplest, fastest way to get business intelligence and analytics to everyone in your company :yum:
Apache Superset is a Data Visualization and Data Exploration Platform
The open and composable observability and data visualization platform. Visualize metrics, logs, and traces from multiple sources like Prometheus, Loki, Elasticsearch, InfluxDB, Postgres and many more.
Make Your Company Data Driven. Connect to any data source, easily visualize, dashboard and share your data.
📊 Cube — Universal semantic layer platform for AI, BI, spreadsheets, and embedded analytics
Self-serve BI to 10x your data team ⚡️
Convert
designs to code with AI
Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.
Try Visual Copilot