From d57bfa13f328462f6ef83be3847ec1232640e56b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Carl-Gerhard=20Lindesva=CC=88rd?=
Date: Thu, 28 Mar 2024 14:07:48 +0100
Subject: [PATCH] update readme
---
README.md | 224 +++++++++++++++--------------------------------------
github.png | Bin 0 -> 240764 bytes
2 files changed, 62 insertions(+), 162 deletions(-)
create mode 100644 github.png
diff --git a/README.md b/README.md
index d922995f..90553bc1 100644
--- a/README.md
+++ b/README.md
@@ -1,173 +1,73 @@
-# Openpanel
+
-Openpanel is a simple analytics tool for logging events on web and react-native. My goal is to make a minimal mixpanel copy with the most basic features (for now).
+
+
Openpanel
+
+ An open-source alternative to Mixpanel
+
+
+ Website
+ ·
+ Docs
+ ·
+ Sign in
+ ·
+ Discord
+ ·
+ X/Twitter
+ ·
+
+
+
+
+
+Openpanel is a simple analytics tool for logging events on web, apps and backend. We have tried to combine Mixpanel and Plausible in the same product.
-- Easy to use
-- Fully responsive UI
-- Own your own data
-- GDPR friendly
+- Visualize your data
+ - **Charts**
+ - Funnels
+ - Line
+ - Bar
+ - Pie
+ - Histogram
+ - Maps
+ - **Breakdown** on all properties
+ - **Advanced filters** on all properties
+ - Create **beautiful dashboards** with your charts
+ - **Access all your events**
+ - Access all your visitors and there history
+- Own Your Own Data
+- GDPR Compliant
+- Cloud or Self-Hosting
+- Real-Time Events
+- No cookies!
+- Privacy friendly
+- Cost-Effective
+- Predictable pricing
+- First Class React Native Support
+- Powerful Export API
-## Whats left?
+## Disclaimer
-> Currently storing events on postgres but will probably move it to [clickhouse](https://clickhouse.com/) to speed up queries. Don't have any performance issues yet so will wait and see how well postgres can handle it.
+> Hey folks 👋🏻 Just a friendly heads-up: we're still in the early stages of this project. We have migrated from pages to app dir and made some major changes during the development of Openpanel, so everything is not perfect.
-### Speed/Benchmark
+## Stack
-As of today (~~2023-12-12~~ 2024-01-16) I have more then ~~1.2~~ 2.8 million events and 20 thousand profiles in postgres and performance is smooth as butter\* 🧈. Only thing that is slow (2s response time) is to get all unique events. Solved now with cache but can probably make better with `indexes` and avoid using `distinct`.
+- **Nextjs** - the dashboard
+- **Fastify** - event api
+- **Postgres** - storing basic information
+- **Clickhouse** - storing events
+- **Redis** - cache layer, pub/sub and queue
-\* Smooth as butter is somewhat exaggerated but I would say it still fast! It takes 1.4 sec to search through all events (3 million) with advanced where clause. I think this performance is absolutly good enough.
+### More
-### GUI
+- Tailwind
+- Shadcn
+- tRPC - will probably migrate this to server actions
+- Clerk - for authentication
-- [x] Fix design for report editor
-- [x] Fix profiles
- - [x] Pagination
- - [x] Filter by event name
-- [x] Fix [profileId]
- - [x] Add events
- - [x] Improve design for properties and linked profiles
-- [x] New design for events
-- [ ] Map events to convertions
-- [ ] Map ids
-- [x] Fix menu links when projectId is undefined
-- [x] Fix tables on settings
-- [x] Rename event label
-- [ ] Common web dashboard
- - [x] User histogram (last 30 minutes)
- - [ ] Bounce rate
- - [ ] Session duration
- - [ ] Views per session
- - [ ] Unique users
- - [ ] Total users
- - [ ] Total pageviews
- - [ ] Total events
-- [x] Save report to a specific dashboard
-- [x] View events in a list
- - [x] Simple filters
-- [x] View profiles in a list
-- [x] Invite users
-- [ ] Drag n Drop reports on dashboard
-- [x] Manage dashboards
-- [x] Support more chart types
- - [x] Bar
- - [x] Histogram
- - [x] Pie
- - [x] Area
- - [x] Metric
- - [x] Line
-- [ ] Support funnels
-- [ ] Support multiple breakdowns
-- [x] Aggregations (sum, average...)
+## Self hosting
-### SDK
+I'll fill out this section when we're out of beta (might be sooner than that).
-- [x] Store duration on screen view events (can be done in backend as well)
-- [x] Create native sdk
- - [x] Handle sessions
-- [x] Create web sdk
- - [x] Screen view function should take in title, path and parse query string (especially utm tags)
-
-## @openpanel/sdk
-
-For pushing events
-
-### Install
-
-- npm: `npm install @openpanel/sdk`
-- pnpm: `pnpm add @openpanel/sdk`
-- yarn: `yarn add @openpanel/sdk`
-
-### Usage
-
-```ts
-import { OpenpanelWeb } from '@openpanel/web';
-
-// import { OpenpanelNative } from '@openpanel/sdk-native';
-
-const openpanel = new OpenpanelWeb({
- clientId: 'uuid',
- url: 'http://localhost:8080/api/sdk',
- batchInterval: 10000,
- verbose: false,
- trackIp: true,
-});
-
-// const openpanel = new OpenpanelNative({
-// clientId: 'uuid',
-// clientSecret: 'uuid',
-// url: 'http://localhost:8080/api/sdk',
-// batchInterval: 10000,
-// verbose: false,
-// trackIp: true,
-// });
-
-// Call this before you send any events
-// It will create a anonymous profile
-// This profile will be merged if you call `setUser` in a later stage
-openpanel.init();
-
-// tracks all outgoing links as a `link_out` event
-openpanel.trackOutgoingLinks();
-
-openpanel.setUser({
- id: 'id',
- first_name: 'John',
- last_name: 'Doe',
- email: 'john.doe@gmail.com',
- properties: {}, // any properties
-});
-
-// will upsert 'app_open' on user property and increment it
-openpanel.increment('app_open');
-// will upsert 'app_open' on user property and increment it by 10
-openpanel.increment('app_open', 10);
-// will upsert 'app_open' on user property and decrement it by 2
-openpanel.decrement('app_open', 2);
-
-// send a sign_in event
-openpanel.event('sign_in');
-
-// send a sign_in event with properties
-openpanel.event('sign_in', {
- provider: 'gmail',
-});
-
-// Screen view for web
-openpanel.screenView();
-
-// Screen view for native
-openpanel.screenView('Article', {
- id: '3',
- title: 'Nice article here',
-});
-
-// Call this when a user is logged out.
-// This will just make sure you do not send
-// the associated profile id for the next events
-openpanel.clear();
-```
-
-## @openpanel/dashboard
-
-A nextjs web app. Collects all events and your gui to analyze your data.
-
-### Setup cronjobs (optional)
-
-Use of cronjobs is optional. Everything will work without them but they will enhance the events with more data. We also use cronjobs to warm up the cache to make the user experiance a bit better.
-
-We use https://cron-job.org (free) to handle our cronjobs, you can use any provider you want.
-
-- **https://domain.com/api/cron/cache/update** Will update the memory cache
-- **https://domain.com/api/cron/events/enrich** Enrich events (adds duration etc)
-
-## Development
-
-1. Run `docker-compose up -d` to get redis and postgres running
-2. Then `pnpm dev` to boot the web and worker (queue)
-
-## Screenshots
-
-
-
-
-
+But it will probably be a CapRover recipe and Docker Compose scheme.
diff --git a/github.png b/github.png
new file mode 100644
index 0000000000000000000000000000000000000000..ad0225dcfc818e484b4c14d130a554c66279d8c2
GIT binary patch
literal 240764
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