Hi! One of the creators here. Very proud to finally be able to show you what we've been working on for over a year now. Curious to hear your thoughts!
Objectiv is open-source (APLv2) product analytics infrastructure. It's built around a generic but strict event taxonomy, open/common data- and infra tools (currently PG, snowplow, working on bigquery with more to come), and the analyses are done using our pandas-like, SQL speaking modeling library called Bach. As a result, we’re moving towards a vision wherein models can be shared openly, independent of product, platform[1] or data platform[2].
How?
- Fully assist the dev doing the instrumentation using tools for ide support, run-time validation, ci integration. No auto capture, but very low-effort[1] instrumentation.
- Scale using proven tech: a single collector writing to PG for small or snowplow to anything[2] for big.
- Feed data into your own data warehouse after validation.
- No tracking plan, but an open event taxonomy designed for modeling, that fits most user interfaces out of the box or can be extended otherwise.
- Take some of our pre-built models off the shelf or use Bach directly to model on the raw data in a notebook.
- Bach generates SQL for the target platform: productionize without lock-in, feed to a BI system, dbt, etc.
Where?
Github: https://github.com/objectiv/objectiv-analytics
Docker demo: https://objectiv.io/docs/home/quickstart-guide/
Website/docs: https://objectiv.io/
Let me know what you think and what platform/SQL backend you’d like to see supported first.
[1] Currently on plain js, react, angular, react native. Future: vue, native android/ios.
[2] Once we’re done building Bach support for all SQL platforms. Now: PG, bigquery in development. Future: redshift, clickhouse, athena, etc.
I really like the approach and vision. However my initial reaction: Why do I want a generic taxonomy for events? Every business has their own domain. Generic click events are not really interesting, but more domain specific events are.
For example for github you would want events like "project.Starred" "project.Cloned" etc. OR for hacker news "user.addComment" comment.Upvote etc. So you would need to build your own taxonomy anyways right?
I do see the potential power of using BI tools that are built upon a generic taxonomy.
Another comment: I don't really like using "TrackedButton" components that replace Buttons. What If i want to use Next.js and want to use the Next.js's Link... It's better to have a "TrackedObject" and embed a Button inside it..
Maybe i'm too used to calling an "analytivs.trackEvent" function manually coded, because we mostly used company defined events.
If you want open source, using SnowPlow + storing it in redshift using a pipeline would also work. But I guess with Objectiv you don't need to setup anything..