AGPL-3.0 · Self-hosted · Data Sovereignty

Your visitors,your data.

Commercial customer-ops SaaS at $30-100K/year locks your data, locks features, and raises prices every year.

~/pinconsole bash · 5 min
$git clone github.com/iannil/pinconsole$cd pinconsole && cp .env.example .env$make docker-up build-frontend build# visitor landing → http://localhost:8080/# operator admin  → http://localhost:8080/admin
01 — Verifiable data sovereignty

Why your data is actually yours

Three layers of design decisions turn "data sovereignty" from marketing copy into an engineering fact you can verify.

  1. 01

    AGPL-3.0 strong copyleft

    Any modification to PinConsole must be open-sourced. Cloud vendors cannot turn it into SaaS — this is license-level hard protection. You get real open source, not "source available".

  2. 02

    Standard stack, no lock-in

    PostgreSQL 16 · Redis 7 · MinIO · Go 1.22 · Vue 3. Every layer is industry-standard, the schema is in your hands, data exports anytime.

  3. 03

    Compliance-ready

    GDPR consent opt-in + right-to-be-forgotten + IP truncation; HttpOnly cookie + bcrypt; command authorization + popup URL allowlist; WS trace_id end-to-end observability.

Data flow boundary = your infra
  1. Visitor browser visitor SDK
  2. pinconsole-server your server
  3. PostgreSQL · Redis · MinIO your storage
No external dependencies
~/pinconsole bash · 5 min
git clone https://github.com/iannil/pinconsolecd pinconsolecp .env.example .env make docker-up build-frontend build./server/bin/pinconsole-server # visitor landing → http://localhost:8080/# operator admin → http://localhost:8080/admin
02 — Shipped

Everything the commercial alternatives do, already built

90+ commits, 65 e2e tests green. The five capabilities below are all end-to-end verified and can run on your server today.

  1. 01

    Real-time visitor monitoring

    rrweb captures all DOM mutations + mouse + clicks + scrolls + unfocused form values. 1fps WebP selective screenshots (canvas / WebGL / cross-origin iframes).

    • Full DOM + selective screenshots
    • Behavior serialization (stable rrweb node IDs)
    • Visitor SDK same-origin, single JS file
  2. 02

    Two-way co-browsing

    Operators can highlight / click / scroll / fill / navigate. 300ms debounce balances UX and bandwidth. Visitors can emergency-exit any time.

    • Node ID selectors (no CSS/XPath)
    • Form-fill debounce 300ms
    • Navigation takeover + cross-page session handoff
  3. 03

    Session replay

    MinIO archives event streams + selective screenshots. 30-day default, configurable. GDPR delete endpoint. Standard rrweb-player replayer.

    • Event stream compression (MessagePack)
    • 30-day default retention, configurable
    • GDPR right-to-be-forgotten one-shot
  1. 04

    Popups + two-way chat

    Message channel persisted to PostgreSQL. Popups support text / links / navigation. Chat history bound to session.

    • Popups and chat share one channel
    • History searchable by session
    • Operator 1:1 locking to prevent conflicts
  2. 05

    Anti-bot + GDPR

    Rate limit + UA blocklist + behavior analysis + canvas/WebGL fingerprint. Consent opt-in + IP truncation + co-browse banner.

    • Redis sliding-window rate limit
    • GDPR consent opt-in default
    • IP truncation /24, retention configurable
03 — Transparent stance

Shipped. What comes next.

We publicly commit to what we build and what we won't. Stance doesn't change under commercial pressure — that's the point of an OSS alternative.

shipped

Shipped

  • Real-time visitor monitoring (full rrweb)
  • Two-way co-browsing (cursor/click/scroll/fill/navigate)
  • Session archive + replay
  • Popups + two-way chat
  • Auth + multi-operator claim/release locks
  • Anti-bot (rate limit + UA + behavior + fingerprint)
  • GDPR consent + right-to-be-forgotten + IP truncation
  • Observability (LifecycleTracker + trace_id)
  • Bilingual zh/en i18n
  • Docker Compose one-shot deploy
coming

Planned

  • Custom domains (DNS verification + ACME)
  • Page editor (low-code / drag-drop)
  • Tauri desktop (Win + Mac)
  • SSO / SAML / OIDC (enterprise)
  • Anti-bot hardening (CAPTCHA + honeypot)
  • Analytics dashboard (funnel / heatmap)
  • Redis Pub/Sub multi-instance hub
04 — Common questions

What decision-makers ask

If you don't find your answer here, drop a note and we reply within 48h.

  1. 01

    Is AGPL-3.0 safe for our commercial use?

    AGPL requires open-sourcing modifications when you offer the service externally. Internal company use (not exposing the service to the public) does not trigger this. Running PinConsole to serve your own visitors, without selling PinConsole itself, has zero compliance risk. Only cloud vendors trying to SaaS-ify it must open-source — that's exactly the license's protection.

  2. 02

    Solo maintainer — how long can this last?

    v1 ships 90+ commits of end-to-end slices, with post-v1 roadmap public in PLAN.md §8. Consultation revenue funds continued maintenance. If this project is critical to you, consider paid consulting/customization — your payment is the best guarantee of sustainability.

  3. 03

    Can you do custom development?

    Yes — that's the core of consultation. Describe your needs in the form, we respond within 48h with a scoping assessment. Custom dev is billed separately. All code returns to the project under AGPL-3.0 (your private deployment doesn't need to be open-sourced).

  4. 04

    Can you host our deployment?

    Not in v1, and not in the long-term stance either. Avoids competing with OSS users. We can recommend deployment partners (your choice), or assist you in standing up your own.

  5. 05

    What if 500 concurrent isn't enough?

    v1 is a single-instance hub (process-local map). Multi-instance requires a Redis Pub/Sub bus, which is a post-v1 slice. If your concurrent room demand exceeds 500, mention it in consultation — we can prioritize scheduling or customize.

  6. 06

    Can it pass MLPS 2.0 / ISO 27001?

    Product-layer compliance is ready (GDPR / bcrypt / audit logs / consent). MLPS / ISO 27001 requires evaluating your deployment environment. Consultation can assist with compliance documentation, architecture mapping, and third-party assessment support.

05 — Discuss your use case

We don't sell subscriptions. We discuss your use case.

After submission, data lives in the maintainer's self-hosted Cloudflare D1 (Asia region), not shared with third parties. We don't send marketing email — only contextual replies to your scenario.

  1. 48h human reply
  2. Data in maintainer self-hosted D1
  3. Not shared / deletable on request
Consultation form — required fields marked *

By submitting you agree we use your message for consultation reply. Data stored in maintainer self-hosted Cloudflare D1, not shared with third parties, deletable by email request.