β¨ Features
- π Privacy-First - No cookies, GDPR compliant
- β‘ Lightning Fast - DuckDB delivers sub-50ms queries
- π Real-Time Dashboard - Beautiful Svelte UI
- π― Simple Integration - Drop-in JavaScript SDK (< 5KB)
- π Multi-Project - Track unlimited websites
- π Funnel Analysis - Measure conversions
- π€ Bot Detection - Filter automated traffic
- π¨ Channel Attribution - Understand traffic sources
π Quick Start
Docker:
docker run -d -p 8080:8080 -v $(pwd)/data:/data mohamedelhefni/siraaj:latest
Docker Compose:
version: '3.8'
services:
siraaj:
image: mohamedelhefni/siraaj:latest
ports: ["8080:8080"]
volumes: ["./data:/data"]
environment:
- DUCKDB_MEMORY_LIMIT=4GB
restart: unless-stopped
Build from Source:
git clone https://github.com/mohamedelhefni/siraaj.git && cd siraaj
go build -o siraaj && ./siraaj
Dashboard: http://localhost:8080/
Pre-built binaries coming soon! β
οΏ½ Usage
Add SDK to your website:
<script>
!function(){var s=document.createElement('script');
s.src='http://your-server:8080/sdk/analytics.js';s.defer=!0;
document.head.appendChild(s);s.onload=function(){
window.siraaj=new Analytics({
apiUrl:'http://your-server:8080',
projectId:'my-website',
autoTrack:true
});
}}();
</script>
Track custom events:
siraaj.track('purchase', { product: 'Premium', price: 99 });
siraaj.identify('user-123', { plan: 'premium' });
Framework integrations: React, Vue, Svelte, Next.js β SDK Docs
βοΈ Configuration
Key Environment Variables:
PORT=8080 # Server port
DB_PATH=data/analytics.db # Database path
DUCKDB_MEMORY_LIMIT=4GB # Memory limit
DASHBOARD_USERNAME=admin # Optional auth
DASHBOARD_PASSWORD=secret # Optional auth
CORS=https://example.com # CORS origins
API Endpoints: /api/track, /api/stats, /api/funnel, /api/channels β Full API Docs
ποΈ Tech Stack
Backend: Go 1.24 + DuckDB + Parquet
Frontend: SvelteKit 5 + Tailwind
SDK: Vanilla JS/TypeScript
Architecture: Clean Architecture (domain, repository, service, handler)
π€ Contributing
Contributions welcome! Fork, create a feature branch, and submit a PR.
go mod download && cd dashboard && pnpm install && cd .. && make test
Built with β€οΈ by Mohamed Elhefni
β Star this repo if you find it useful!