
Product
Socket Threat Intel Now Shows Which Malware Campaigns Were Blocked or Detected
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.
@litemetrics/node
Advanced tools
Self-hosted analytics server for Litemetrics. Includes event collection, query API, site management, GeoIP enrichment, and bot filtering.
npm install @litemetrics/node
import express from 'express';
import { createCollector } from '@litemetrics/node';
const app = express();
app.use(express.json());
const collector = await createCollector({
db: { url: 'http://localhost:8123' }, // ClickHouse (default)
adminSecret: 'your-admin-secret',
geoip: true,
cors: { origins: [] }, // Allow all origins
});
// Event collection endpoint (receives tracker data)
app.post('/api/collect', collector.handler());
// Query API (stats, time series, retention)
app.get('/api/stats', collector.queryHandler());
// Event & user listing
app.all('/api/events', collector.eventsHandler());
app.all('/api/users/*', collector.usersHandler());
// Site management (CRUD)
app.all('/api/sites/*', collector.sitesHandler());
// Serve tracker script
app.use(express.static('node_modules/@litemetrics/tracker/dist'));
app.listen(3000);
const collector = await createCollector({
db: { url: 'http://localhost:8123' },
});
Uses MergeTree for events and ReplacingMergeTree for sites. Tables are auto-created on init.
const collector = await createCollector({
db: { adapter: 'mongodb', url: 'mongodb://localhost:27017/litemetrics' },
});
// Track events from your backend
await collector.track('site-id', 'Purchase', { amount: 99 }, { userId: 'user-123' });
// Identify users
await collector.identify('site-id', 'user-123', { plan: 'pro' });
Litemetrics automatically links anonymous visitors to identified users. After a
user is identified, subsequent events are merged across all linked visitor IDs.
GET /api/users/:identifier accepts either a visitorId or a userId and
returns a merged profile when available.
If you already have identify events, run the backfill script once to populate the identity map:
bun packages/node/src/backfill-identity.ts --adapter clickhouse --url http://localhost:8123
| Metric | Description |
|---|---|
pageviews | Total page views |
visitors | Unique visitors |
sessions | Unique sessions |
events | Custom events count |
conversions | Conversion events count |
top_pages | Most visited pages |
top_referrers | Top traffic sources |
top_countries | Visitors by country |
top_cities | Visitors by city |
top_events | Most common custom events |
top_conversions | Most common conversion events |
top_exit_pages | Last page in session |
top_transitions | Page-to-page transitions |
top_scroll_pages | Pages with most scroll depth events |
top_button_clicks | Most clicked buttons (auto events) |
top_link_targets | Most clicked link targets |
top_browsers | Browser breakdown |
top_os | OS breakdown |
top_devices | Device type breakdown |
MIT
FAQs
Node.js analytics collector with DB adapters and query API
The npm package @litemetrics/node receives a total of 7 weekly downloads. As such, @litemetrics/node popularity was classified as not popular.
We found that @litemetrics/node demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.

Security News
Fixes for eMudhra and Brotli are out. Getting them everywhere they’re needed means tracking down bundled libraries, runtimes, and certificate stores.

Threat Research
/Security News
Socket uncovered secret-stealing workflows that ran in LiteLLM’s GitHub repository 11 days before the supply chain attack on PyPI and Docker.