fynydd.datoids.common 1.0.27
Datoids Analytics Platform
This solution is a privacy-first analytics platform the runs local to the consuming application via a nuget package installed on the local web server. The nuget package provides a JS tracking code file which tracks browser history changes and sends the activity to a REST (proxy) endpoint. The proxy endpoint processes and forwards submitted tracking data to the Datoids service platform. That's where customers will authenticate and view analytics dashboards, etc.
The JS tracking code is a dynamic URL provided by the nuget package, which is used on your web application:
<script src="/datoids/scripts/api.js"></script>
The REST (proxy) endpoint is also a dynamic feature provided by the nuget package.
This structure provides a first party solution, which prevents browser/extension blocking (unless explicit). This yields much more accurate data collection.
NOTE: Development is in progress
Tech Notes
The solution contains the nuget package project Datoids used on consuming projects to send tracking data to the service platform.
The Datoids.Platform.{name} projects represent the service platform, including a REST API, dashboard, common/shared library projects, and xUnit test projects.
Sample consumer web application projects are included for integration testing purposes.
The API uses two data storage platforms: RocksDb for raw tracking data, and PostgreSQL for service data like accounts and users, as well as procesed tracking data for reporting.
RocksDb (Datoids.Platform.Storage)
When run, the API project will create the RocksDb database if it does not exist. It's basically hands-off for developers.
PostgreSQL
You will need a PostgreSQL database. Included are PowerShell and Bash scripts for creating and launching a docker instance of Postgres 17.5.2. The user is postgre and the password is P@ssw0rdz!. It is a system administrator account. The datoids database will be created by the API if it does not exist.
The API project uses a host name for the PostgreSQL server address. So you will need to add the name postgres and actual IP address to your hosts file.
Sfumato
Sfumato 6.x is used to generate a CSS stylesheet for the platform dashboard app. You should install Sfumato if you don't have it already. Visit https://sfumato.app and follow the installation instructions.
Once installed you can run the watch script (watch.ps1 or watch.sh) in the root of the solution and then work on the dashboard project.
Cleaning
If you need to clean out alll projects before rebuilding, run the clean script (clean.ps1 or clean.sh) in the root of the solution. It will purge all bin and obj folders, and do nuget restores.
JetBrains Rider
The repo has included the .run folder which has multi-launch configs, so you can easily launch a series of projects based on what you're working on, like the API platform with a saple website, or the service platform, etc.
Visual Studio
The repo has included the Datoids.slnLaunch file which has multi-launch configs, so you can easily launch a series of projects based on what you're working on, like the API platform with a saple website, or the service platform, etc.
Hot Reload
The Dashboard is a Blazor Server project. The best hot reload experience is to run the project from a terminal using dotnet watch run (also run the API via dotnet run), then load the page in Chrome, and in the developer tools, go to Sources and add wwwroot/stylesheets to the workspaces. For the current session, Chrome will watch for changes in that folder and reload the content. Note, it will also write changes to the app.css file if you edit the styles in dev tools.
Showing the top 20 packages that depend on fynydd.datoids.common.
| Packages | Downloads |
|---|---|
|
fynydd.datoids
Datoids is an ASP.NET/Blazor Server package for locally tracking website activity, bypassing ad blockers and browser tracking restrictions, while also respecting user privacy.
|
11 |
|
fynydd.datoids
Datoids is an ASP.NET/Blazor Server package for locally tracking website activity, bypassing ad blockers and browser tracking restrictions, while also respecting user privacy.
|
10 |
|
fynydd.datoids
Datoids is an ASP.NET/Blazor Server package for locally tracking website activity, bypassing ad blockers and browser tracking restrictions, while also respecting user privacy.
|
9 |
|
fynydd.datoids
Datoids is an ASP.NET/Blazor Server package for locally tracking website activity, bypassing ad blockers and browser tracking restrictions, while also respecting user privacy.
|
8 |
|
fynydd.datoids
Datoids is an ASP.NET/Blazor Server package for locally tracking website activity, bypassing ad blockers and browser tracking restrictions, while also respecting user privacy.
|
7 |
|
fynydd.datoids
Datoids is an ASP.NET/Blazor Server package for locally tracking website activity, bypassing ad blockers and browser tracking restrictions, while also respecting user privacy.
|
6 |
.NET 9.0
- Dapper (>= 2.1.66)
- Microsoft.AspNetCore.WebUtilities (>= 9.0.11)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 9.0.11)
- Microsoft.Extensions.Hosting.Abstractions (>= 9.0.11)
- Microsoft.Extensions.Logging.Abstractions (>= 9.0.11)
- Npgsql (>= 9.0.4)
- UAParser (>= 3.1.47)
- argentini.duid (>= 1.0.4)
.NET 10.0
- Dapper (>= 2.1.66)
- Microsoft.AspNetCore.WebUtilities (>= 10.0.0)
- Microsoft.Extensions.DependencyInjection.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Hosting.Abstractions (>= 10.0.0)
- Microsoft.Extensions.Logging.Abstractions (>= 10.0.0)
- Npgsql (>= 10.0.0)
- UAParser (>= 3.1.47)
- argentini.duid (>= 1.0.4)
| Version | Downloads | Last updated |
|---|---|---|
| 1.0.27 | 6 | 12/1/2025 |
| 1.0.24 | 6 | 11/26/2025 |
| 1.0.23 | 5 | 11/26/2025 |
| 1.0.22 | 6 | 11/13/2025 |
| 1.0.21 | 10 | 11/2/2025 |
| 1.0.20 | 5 | 11/1/2025 |
| 1.0.19 | 4 | 10/25/2025 |
| 1.0.18 | 8 | 10/25/2025 |
| 1.0.17 | 7 | 10/12/2025 |
| 1.0.16 | 9 | 10/3/2025 |
| 1.0.15 | 10 | 10/1/2025 |
| 1.0.14 | 10 | 10/1/2025 |
| 1.0.13 | 6 | 9/30/2025 |
| 1.0.6 | 8 | 9/20/2025 |
| 1.0.5 | 7 | 9/20/2025 |
| 1.0.4 | 8 | 9/20/2025 |
| 1.0.3 | 7 | 9/20/2025 |