github medama-io/medama v0.5.0

latest release: v0.5.1
17 days ago

Features

We’ve added support for Custom Properties, allowing users to include additional metadata on their web pages for more better data segmentation.

To start off, new trackers now support sending metadata on page load and mouse click events. This is opt-in and can be configured in the new "Tracker" settings page.

Once enabled, this functionality can be used by embedding the following HTML data attributes into your webpages:

<html>
    <body data-m:load="theme=dark;subscription=paid">
        <button data-m:load="logged_in=true" data-m:click="action=logout">Log out</button>
        <h1>Welcome to My Page</h1>
    </body>
</html>

The new data-m:load and data-m:click attributes allow you to send additional metadata from any element on your page. You can set these attributes statically or dynamically based on the user’s state or any other relevant information.

Learn more about this new feature here.

Bug Fixes and Improvements

  • New automated testing for our JavaScript trackers across multiple browsers. This allowed us to catch edge cases on certain browsers where events might fail to send which have been now fixed. This also ensures future updates will be more stable with fewer regressions.
  • The default tracker was optimised to be even smaller.
  • Improved caching logic of tracker events, leading to less network requests for visitors due to our unique cache-based methodology.
  • Various performance improvements and memory usage reductions for the API server.
  • The dashboard is now lighter and faster, with ongoing migration of components which may be completed in the next few minor updates.

What's Next

For our next major update, we will focus on Data Control and Migration, including the ability to import data from sources like Google Analytics, export data in various formats, and set data retention policies.

In the meantime, upcoming minor updates will target quality-of-life and performance improvements. These will include numerous bug fixes to add to the overall polish. After that, we plan to benchmark the project’s performance at scale, optimising it to handle workloads of hundreds of millions of page events. While the current project is known to handle tens of millions of events, we want to focus on a benchmarking framework to thoroughly test its limits and make it suitable for larger workloads.

What's Changed

  • feat(db): support custom properties metadata by @ayuhito in #108
  • perf(core): cache ping endpoint if user is returning visitor by @ayuhito in #110
  • test(tracker): add e2e playwright specs by @ayuhito in #109
  • perf(tracker): use terser for minification by @ayuhito in #111
  • feat: add tagged event tracking by @ayuhito in #112
  • feat(core): use a new settings struct to support multiple trackers by @ayuhito in #113
  • fix(core): get settings should return default values for null settings by @ayuhito in #116
  • feat(dashboard): select tracker variants by @ayuhito in #117
  • feat(core): dynamically update script.js based on user configuration by @ayuhito in #119
  • fix(tracker): simplify tagged event click logic by @ayuhito in #123
  • feat: add custom properties selection and filtering by @ayuhito in #120
  • chore(core): upgrade to go 1.23 by @ayuhito in #125
  • ci: pin docker language versions to mise toml by @ayuhito in #126
  • perf(core): preallocate stat responses and reduce branching by @ayuhito in #127
  • build(dashboard): remove postcss and only use lightningcss by @ayuhito in #128
  • build(dashboard): use vite plugin to inject custom media properties by @ayuhito in #129
  • feat: add percentages to custom event data by @ayuhito in #130
  • fix(dashboard): data visible from selector was not being passed by @ayuhito in #131
  • feat(tracker): support page view custom props by @ayuhito in #132

Full Changelog: v0.4.4...v0.5.0

Don't miss a new medama release

NewReleases is sending notifications on new releases.