{
  "schema": "tesign-radar/item/1",
  "generated_at": "2026-09-17T01:56:13.055Z",
  "lang": "ko",
  "slug": "openanalytics",
  "url": "https://tesign.com/item/openanalytics/",
  "alternates": {
    "ko": {
      "html": "https://tesign.com/item/openanalytics/",
      "json": "https://tesign.com/item/openanalytics/index.json",
      "markdown": "https://tesign.com/item/openanalytics/index.md"
    },
    "en": {
      "html": "https://tesign.com/en/item/openanalytics/",
      "json": "https://tesign.com/en/item/openanalytics/index.json",
      "markdown": "https://tesign.com/en/item/openanalytics/index.md"
    }
  },
  "name": "OpenAnalytics",
  "use_label": "운영자용 쿠키 없는 웹 분석",
  "one_liner": "쿠키 없이 방문자·매출 귀속을 보는 셀프호스팅 웹 분석. Plausible 대안, MCP 서버와 CLI 포함",
  "text": {
    "why": "쿠키·핑거프린팅·사이트 간 식별자를 쓰지 않고, 방문자 식별은 매일 바뀌는 솔트 해시로만 하며 원본 IP는 저장하지 않습니다. 그런데도 자기 Stripe 계정의 매출을 유입 경로별로 붙여 보고, 퍼널·리텐션·웹 바이탈·공개 공유 링크·MCP 서버·CLI(oa)까지 한 저장소에 들어 있습니다. 셀프호스팅은 ghcr.io에 올라간 이미지 10개를 docker compose pull && up -d로 받는 방식이라 빌드 도구가 필요 없고, 저자들이 운영하는 getopen.so는 같은 코드를 호스팅으로 제공합니다.",
    "take": "Plausible식 프라이버시 분석에 매출 귀속과 MCP 서버를 더하고, 직접 돌릴지 월 9달러부터 맡길지 고르게 한 제품입니다.",
    "build": [
      "MCP 서버를 AI 어시스턴트에 연결해 '이번 주 어느 유입 경로가 결제로 이어졌나'를 대화로 묻는 사내 리포트 봇을 만들 수 있고, packages/contracts의 OpenAPI 문서로 자체 대시보드나 위젯을 붙일 수 있습니다."
    ],
    "who": [
      {
        "role": "개인 프로젝트·소규모 사이트 운영자",
        "situation": "쿠키 배너 없이 방문자 통계"
      },
      {
        "role": "Stripe로 결제받는 SaaS·쇼핑몰",
        "situation": "유입 경로별 매출 귀속과 퍼널"
      },
      {
        "role": "개발팀",
        "situation": "MCP 서버·CLI로 AI 에이전트나 스크립트에 통계 연결"
      }
    ],
    "start": [
      {
        "command": false,
        "text": "git clone https://github.com/OpenLabs-so/openanalytics"
      },
      {
        "command": false,
        "text": "cd openanalytics"
      },
      {
        "command": false,
        "text": "git checkout \"$(git tag -l 'v*' --sort=-v:refname | sed '/-/d' | head -1)\"   # newest release, not main"
      },
      {
        "command": false,
        "text": "cd infra/selfhost"
      },
      {
        "command": false,
        "text": "./generate-secrets.sh --domain example.com --email you@example.com --with-geoip"
      },
      {
        "command": false,
        "text": "docker compose pull && docker compose up -d"
      }
    ],
    "caveat": [
      "라이선스 AGPL-3.0 — 수정한 버전을 네트워크 서비스로 운영하면 이용자에게 수정 소스를 제공해야 합니다. 셀프호스팅은 Docker가 있는 Linux 호스트, DNS 레코드 4개(app·api·c·rt), 약 4 GB RAM과 25 GB 디스크가 필요하고 공식 이미지는 amd64만(arm64는 직접 빌드, 약 10분). 마이그레이션은 되돌릴 수 없어 롤백은 스냅샷 복원입니다. 호스팅판(getopen.so)은 무료 플랜 없이 7일 체험(카드 등록) 후 Starter 월 9달러(이벤트 5만 건·사이트 1개)부터. AI 어시스턴트는 OPENAI_API_KEY가 필요한 선택 기능."
    ]
  },
  "cta": {
    "type": "self_host",
    "label": "SELF-HOST",
    "url": "https://getopen.so/"
  },
  "ready": "self-host",
  "categories": [
    "data"
  ],
  "categories_confirmed": true,
  "tags": [
    "web-analytics",
    "privacy",
    "self-hosted",
    "clickhouse",
    "mcp",
    "agpl"
  ],
  "platform": [
    "web",
    "linux",
    "cli"
  ],
  "license": {
    "spdx": "AGPL-3.0",
    "scope": "copyleft",
    "scope_text": "사용·수정은 자유. 배포는 물론 네트워크 서비스로 제공해도 소스 공개.",
    "url": "https://spdx.org/licenses/AGPL-3.0.html",
    "note": null,
    "open_source": true
  },
  "language": "TypeScript",
  "source_urls": {
    "canonical": "https://getopen.so/",
    "github": "https://github.com/openlabs-so/openanalytics",
    "huggingface": null,
    "app_store": null,
    "sightings": [
      {
        "source": "showhn",
        "url": "https://getopen.so",
        "posted_at": "2026-08-12T17:55:14.000Z",
        "hn_url": "https://news.ycombinator.com/item?id=49276245"
      },
      {
        "source": "showhn",
        "url": "https://getopen.so",
        "posted_at": "2026-08-13T14:00:09.000Z",
        "hn_url": "https://news.ycombinator.com/item?id=49286115"
      },
      {
        "source": "showhn",
        "url": "https://github.com/OpenLabs-so/openanalytics",
        "posted_at": "2026-08-14T18:17:42.000Z",
        "hn_url": "https://news.ycombinator.com/item?id=49302597"
      },
      {
        "source": "github",
        "url": "https://github.com/openlabs-so/openanalytics",
        "posted_at": "2026-09-06T05:00:00.000Z",
        "hn_url": null
      }
    ]
  },
  "numbers": {
    "as_of": "2026-09-16T21:00:00.000Z",
    "stars": 535,
    "stars_unit": "GitHub stars",
    "stars_checked_at": "2026-09-15T19:35:20.117Z",
    "stars_observed_since_check": 0,
    "star_delta_24h": null,
    "star_delta_7d": 2,
    "star_delta_30d": 32,
    "star_delta_unit": "GitHub stars gained in the window, GH Archive events summed to as_of",
    "spark_14d": [
      null,
      null,
      null,
      30,
      null,
      null,
      null,
      null,
      2,
      null,
      null,
      null,
      null,
      null
    ],
    "hf_likes": null,
    "hf_likes_observed_at": null,
    "hn_points": 10,
    "hn_points_observed_at": "2026-09-13T14:24:25.327Z",
    "store": null,
    "method": "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다."
  },
  "ranks": null,
  "activity": {
    "pushed_at": "2026-09-10T22:38:33.000Z",
    "owner_type": "Organization",
    "open_issues": 1,
    "contributors": 4,
    "releases_count": 12,
    "latest_release": {
      "tag": "v0.6.0",
      "published_at": "2026-09-05T18:10:33.000Z",
      "prerelease": false
    },
    "checked_at": "2026-09-15T19:35:20.117Z",
    "core_checked_at": "2026-09-15T19:35:20.117Z"
  },
  "signals": [
    {
      "kind": "cross",
      "label": "교차 신호",
      "value": "Show HN + GitHub"
    },
    {
      "kind": "back",
      "label": "과거 기록",
      "value": null
    }
  ],
  "images": {
    "og": "https://tesign.com/img/openanalytics-54526da961.png",
    "cover": "https://tesign.com/img/openanalytics-54526da961.png",
    "cover_width": 2400,
    "cover_height": 1260,
    "gallery": [
      "https://tesign.com/img/openanalytics-54526da961.png",
      "https://tesign.com/img/openanalytics-870a2c8656.png",
      "https://tesign.com/img/openanalytics-84c1fce652.png",
      "https://tesign.com/img/openanalytics-0381859e8f.png"
    ],
    "alt": "OpenAnalytics 개요 화면: 방문자 426·페이지뷰 688·이탈률 46%·평균 방문 1분 36초·매출 카드, 하루 시간대별 방문 그래프, 아래에 인기 페이지·유입 경로(직접, X, Product Hunt, GitHub, Google)·매출 패널",
    "tier": 1
  },
  "dates": {
    "first_seen_at": "2026-09-13T14:25:51.812Z",
    "source_created_at": "2026-08-13T14:00:09.000Z",
    "discovery_hours": 744.4285588888889,
    "launch_signal_at": "2026-08-12T17:55:14.000Z",
    "kept_at": "2026-09-14T19:27:43.690Z",
    "first_published_at": "2026-09-14T19:27:43.752Z",
    "updated_at": "2026-09-15T04:36:56.924Z",
    "ingestion_mode": "backfill"
  },
  "notes": [
    "이 파일은 tesign.com 항목 페이지와 같은 빌드에서 같은 데이터로 만들어졌습니다. 소개 글은 편집자가 쓴 것이고, 숫자는 저장된 관측값입니다.",
    "JSON의 null은 관측하지 않았다는 뜻입니다 — 0이 아닙니다. 마크다운에서는 [확인 필요]로 적습니다.",
    "별 총합 = GitHub에서 마지막으로 확인한 값(stars_checked_at) + 그 뒤 GH Archive에서 관측한 증가. 24h·7d·30d 증가는 GH Archive 시간별 이벤트를 기준 시각(as_of)까지 합한 값. 우리 점수는 없습니다.",
    "과거 데이터를 되짚어 채운 항목입니다. 라이브 발견이 아닙니다.",
    "요약이며 법적 조언이 아닙니다."
  ]
}
