Openpanel-dev / Openpanel-dev/openpanel

🎯 Feature Request: Device Support for Profiles

Open
#189 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
7k
Forks
481
Avg merge
1d 3h
Merged PRs (30d)
21

Description

📌 Summary

We are actively using Openpanel in our product analytics infrastructure. While the Profiles feature is already quite powerful, it lacks a native representation for Devices — a critical component in multi-device environments such as mobile and desktop apps.

🚨 Problem

Currently, a Profile in Openpanel does not distinguish between different devices used by the same person. In real-world scenarios:
• A single Profile may interact with the system from multiple devices (e.g., phone, tablet, laptop).
• A single Device may be shared across multiple profiles (e.g., shared tablet or kiosk).

This missing granularity leads to limited tracking accuracy, especially for cross-device attribution, session mapping, and identity resolution.

✅ Proposed Solution

Introduce a first-class Device entity, related to Profiles, with the following structure:
Device { id: string, fingerprint: string, userAgent: string, platform: string, // iOS, Android, macOS, Windows, Web createdAt: datetime, updatedAt: datetime, profiles: [ProfileID] }

Each Profile can then be linked to one or more Devices, and each Device can be linked to one or more Profiles.

🔍 Key Benefits
• Enables cross-device session tracking
• Improves user journey visualization
• Supports per-device engagement analytics
• Enables fraud detection (e.g., multiple accounts from same device)
• Prepares the system for deeper identity graphs

🔧 Suggested UI Integration
• Under the Profiles section, add a Devices tab.
• On the left menu (as shown in the screenshot), consider adding a “Devices” section under or near “Profiles”.
• On a specific profile detail page, display a list of associated devices and their metadata.

🧠 Optional Enhancements
• Device fingerprinting integration (e.g., FingerprintJS)
• Device location history
• Session-based device usage logs

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reviewing the existing Profiles implementation and how profile relationships are represented. Define the scope for a first-class Device entity, profile-device relationships, and the proposed Profiles and profile-detail UI integration. Done means the agreed device data and associations are represented and discoverable in the relevant interface, with the optional enhancements treated separately.

Written by the indexing model from the issue text.

Assessment

Tech stack
typescript
Domain
analytics, full-stack
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.