Replace Hotjar With a $30/Month AI Analytics Stack
Hotjar Business costs $80/month. A self-hosted OpenReplay instance plus Claude API analysis runs $30/month. Here is the exact setup for SMBs.
TL;DR
Hotjar Business runs $80/month ($960/year) for session recording and heatmaps. A self-hosted OpenReplay instance on a $30/month VPS, paired with Claude API calls to analyze recordings, cuts that to roughly $30/month total. The build takes a weekend and the savings pay for themselves in the first month.
TL;DR
Hotjar Business runs $80/month ($960/year) for session recording and heatmaps. A self-hosted OpenReplay instance on a $30/month VPS, paired with Claude API calls to analyze recordings, cuts that to roughly $30/month total. The build takes a weekend and the savings pay for themselves in the first month.
What You Are Actually Paying Hotjar For
Hotjar Business is $80/month. That gets you session recordings, heatmaps, basic funnels, and user feedback widgets.
For a typical SMB, maybe 20% of that feature set gets touched weekly. The heatmaps look nice in quarterly reviews. The session recordings pile up unwatched. Nobody has time to sit through 200 recordings and synthesize what is wrong with the checkout flow.
So you are paying $960/year for a dashboard you half-use and insights you rarely act on.
The Feature Utilization Problem
Most SMB teams actively use three things inside Hotjar: session replay, the click heatmap on one or two core pages, and occasionally the funnel report. The rest, including feedback polls, form analysis, and the incoming feedback widget, collect dust.
When you audit actual usage, $80/month often covers features that deliver $15/month of value. The rest is sunk cost dressed up as “we might need it someday.”
Why the Insight Gap Persists
Even when teams do watch recordings, the synthesis problem remains unsolved. A product manager or founder watches 20 recordings, forms a rough hypothesis, and moves on. The signal buried in sessions 21 through 200 never surfaces. Hotjar gives you the raw footage but no editor to cut it into something actionable.
That gap is exactly where the Claude API layer in this replacement stack earns its cost.
The Replacement Stack, Piece by Piece
The custom setup has two components: OpenReplay for data capture, and Claude API for turning that data into something useful.
OpenReplay: Self-Hosted Session Recording
OpenReplay is an open-source session recording tool with an active GitHub repository (over 9,000 stars as of mid-2025) and a commercial-grade feature set. You self-host it on a VPS, a $20 to $30/month DigitalOcean or Hetzner box handles it comfortably for most SMBs, drop a tracking snippet on your site, and it starts capturing sessions, clicks, rage clicks, console errors, and network requests.
Setup takes 2 to 4 hours if you are working off the official deployment documentation. Docker Compose handles the orchestration. The stack runs PostgreSQL, Redis, and a handful of microservices, all defined in a single Compose file. You do not need to understand every component to get it running.
OpenReplay captures the same core signals Hotjar does: full session replays with DOM snapshots, click and move tracking, JavaScript errors, network request logs, and custom event instrumentation. The instrumentation API is well-documented and supports both JavaScript and mobile SDKs.
What OpenReplay does not include out of the box: visual scroll heatmaps (you get click maps instead), in-app survey widgets, and the NPS collection tools Hotjar bundles in. For most SMBs running an e-commerce store or SaaS product, those gaps are minor. For teams that rely heavily on in-product surveys, the gap is real and worth weighing.
Claude API: The Insight Layer
Claude API handles the part Hotjar was never good at anyway: actually telling you what the problem is. You write a lightweight script that pulls session event logs from OpenReplay’s REST API, structures them into readable event sequences, and sends batches of sessions to Claude Haiku or Sonnet 4 with a clear analysis prompt.
A prompt like this works well in practice: “Here are 50 sessions where users dropped off at checkout step 2. Each session is formatted as a timestamped event sequence. What navigation patterns appear most frequently before drop-off? What UI elements received repeated or frustrated interactions? What should we fix first?”
Claude returns structured observations across the full batch. Common patterns before drop-off. UI elements that triggered repeated clicks. Error messages that correlated with exits. You get a Slack message or email summary every Monday morning with three to five prioritized findings.
The cost for this at typical SMB session volumes, a few hundred to a few thousand sessions per week, is $3 to $10/month in API calls. Claude Haiku is the right model for this workload: fast, cheap, and accurate enough for pattern recognition across structured event logs.
Infrastructure and Tooling
The VPS needs to be a Linux instance with at least 4GB RAM for lower-traffic sites, 8GB for anything above 50,000 monthly sessions. Ubuntu 22.04 LTS is the recommended base. OpenReplay’s deployment guide walks through the full setup including SSL termination with Nginx and optional S3-compatible storage offload for session recordings.
The Claude integration script is a Python cron job. It runs on the same VPS or a separate lightweight instance. The core libraries are the Anthropic Python SDK, requests for the OpenReplay API calls, and a simple scheduler like cron or APScheduler.
The Real Cost Comparison
| Setup | Monthly Cost | Annual Cost | Data Ownership | AI Insights |
|---|---|---|---|---|
| Hotjar Business | $80 | $960 | Hotjar’s servers | None built-in |
| OpenReplay VPS + Claude API | ~$30 | ~$360 | Your server | Weekly AI summaries |
| OpenReplay VPS only | ~$20 | ~$240 | Your server | Manual review |
The $30/month figure assumes a $20 VPS plus $8 to $10 in Claude API usage. Higher-traffic sites may need a $40 VPS, which still lands well below Hotjar’s price. The annual savings over Hotjar Business is $600 at the low end, $720 if you factor in a slightly larger server.
Total Cost of Ownership Considerations
The comparison above covers direct costs. Total cost of ownership also includes setup time (6 to 8 hours, one-time), ongoing maintenance (30 to 60 minutes per month), and the occasional infrastructure incident. If you value your time at $100/hour, the setup investment is $600 to $800 amortized over the first year. Year two onward, the savings are clean.
For teams with a developer on staff or a reliable contractor, setup time drops to 2 to 3 hours. The OpenReplay documentation is well-maintained and the deployment path is predictable.
What the Claude Integration Actually Looks Like
This does not require a full engineering project. A basic version is a Python script running on a cron job, typically 80 to 120 lines of code.
Step 1: Pull Session Data from OpenReplay
OpenReplay exposes a REST API that returns session metadata and event streams. You authenticate with an API key generated in the dashboard, then query sessions filtered by behavior: users who dropped off at a specific funnel step, rage-click events above a threshold, sessions containing a specific error code.
The API returns session IDs and metadata. A second call fetches the full event stream for each session, including timestamped DOM events, network requests, console logs, and custom events you have instrumented.
Step 2: Structure the Event Stream
Raw event logs are verbose. Before sending to Claude, you serialize each session into a compact, readable format. Something like:
“Session 4821 (3m 12s): Landed on /checkout. Added item to cart. Clicked ‘Proceed to payment’ 3 times (no navigation). Rage-clicked payment button. Closed tab.”
This compression reduces token usage and makes the patterns easier for Claude to identify across a batch.
Step 3: Send to Claude with a Structured Prompt
Batch 25 to 50 sessions per API call. The prompt specifies the behavior you filtered for, the format of each session summary, and the output structure you want back. Asking Claude to return JSON with keys like “most_common_pattern,” “top_friction_points,” and “recommended_fixes” makes downstream formatting straightforward.
Step 4: Deliver the Report
The script formats Claude’s response into a readable summary and delivers it via Slack webhook, email, or a simple HTML file dropped into an S3 bucket. A weekly Monday morning delivery cadence works well for most SMB teams. The report replaces the hour you would have spent watching recordings and is more thorough than what manual review typically produces.
What You Give Up
Be honest about the tradeoffs before you commit to the build.
UI Polish and Shareability
Hotjar’s interface is polished. Heatmaps are visual and easy to share with a non-technical stakeholder in a slide deck or Notion doc. OpenReplay’s interface is functional but rougher. If your team lives in Hotjar’s visual reports and shares screenshots with executives or clients regularly, there is a real adjustment.
The Claude-generated text summaries partially fill this gap. A well-formatted weekly report is often more useful than a heatmap screenshot for decision-making. But the visual appeal of traditional heatmaps does not have a direct equivalent in this stack.
Survey and Feedback Tooling
Hotjar’s in-app survey widgets, NPS collection, and incoming feedback tools have no equivalent in OpenReplay. If you rely on those for qualitative research, you would need to add a separate tool. Tally or Typeform handle surveys. HotjarFeedback alternatives like Userback cover visual feedback annotation. Each adds cost but typically less than Hotjar Business alone.
Infrastructure Responsibility
You take on ops overhead. The VPS needs occasional updates. Backups are your responsibility. If the server goes down, recording stops until you fix it. Hotjar’s SaaS model handles all of that for you with an SLA.
For most SMBs, the ops burden is 30 to 60 minutes per month. Worth it for $600/year in savings. Not worth it if your team has zero tolerance for infrastructure work or if uptime for recording is mission-critical and you have no one to respond to incidents.
Who Should Build This
The Right Profile
This build makes the most sense for teams running an e-commerce store, SaaS product, or any web application where understanding user behavior directly affects revenue. The break-even is fast: $50/month saved from day one, with a one-time setup investment that pays back within the first billing cycle.
SMBs that have hit Hotjar’s paid tiers and are questioning the ROI are the primary audience. If you are already paying $80/month and consistently finding that insights are hard to act on, this stack fixes both the cost problem and the synthesis problem simultaneously.
When to Stay on Hotjar
If you are on Hotjar’s free tier and only need basic recording for an early-stage product, stay there. The free plan covers most pre-product-market-fit needs. This swap is for teams past that stage.
If your team relies heavily on Hotjar’s survey and feedback tools and those workflows are embedded in your research process, the migration cost in time and tooling may offset the savings in the first year.
If you have no technical capacity at all, not even a contractor who can handle a Linux VPS, the setup is a blocker. In that case, consider whether Kreante can build and maintain the stack for you as a one-time engagement.
Scaling Considerations
The setup described here handles most SMBs comfortably up to roughly 100,000 monthly sessions on a $30 to $40 VPS. Above that threshold, OpenReplay supports horizontal scaling and S3 storage offload for recordings. The architecture remains self-hosted and the cost curve stays flat compared to Hotjar’s per-session pricing at higher tiers, where costs climb significantly.
Data Ownership and Privacy Compliance
One underrated advantage of self-hosting is the compliance posture. With Hotjar, your users’ behavioral data sits on Hotjar’s infrastructure, subject to their data processing agreements and any future policy changes. With OpenReplay self-hosted, the data never leaves your server.
For businesses operating under HIPAA, CCPA, GDPR, or any sector-specific regulation that restricts behavioral data sharing with third parties, self-hosting removes an entire category of compliance risk. You control the retention policy, the access controls, and the deletion workflow. There is no vendor to audit and no data processing addendum to negotiate.
This is not a minor point for SMBs in healthcare, legal, financial services, or education verticals. It can be the deciding factor that justifies the build regardless of cost savings.
The Bottom Line
You are paying Hotjar $960/year for session recording and a heatmap you look at twice a quarter. A self-hosted OpenReplay instance plus a Claude analysis script does the same job for roughly $360/year, keeps your data on your own infrastructure, and actively synthesizes insights instead of dumping raw recordings on you.
The build is a weekend project. The savings start month one. The insight quality, because Claude reviews every session in a batch rather than the three you had time to watch, is often better than what you were getting before.
Build it once, run it indefinitely, and redirect the $600/year savings toward the thing that actually moves the business forward.
Get Help Building This Stack
Kreante helps SMB owners replace expensive SaaS with custom AI tools. We have shipped 265 or more projects (60% LowCode/AI, 70% B2B) for clients across the US, Europe, and LATAM. If you want the OpenReplay plus Claude stack built and handed off without spending your own weekend on it, that is exactly the kind of engagement we take on.
Frequently asked questions
- Is OpenReplay actually a usable Hotjar replacement?
- For session recordings, event tracking, and funnels, yes. It lacks Hotjar's polished UI and built-in survey tools, but it captures everything you need to understand user behavior. The tradeoff is a few hours of setup in exchange for data ownership and a fraction of the cost.
- What does it cost to run Claude API analysis on session data?
- For a typical SMB with a few hundred sessions per week, you're looking at $3 to $8/month in Claude API costs. At current pricing, Claude Haiku handles summarization tasks cheaply. Haiku or Sonnet 4 work well for generating insight reports from structured session logs.
- Do I need a developer to set up OpenReplay?
- You need someone comfortable with a Linux VPS and basic Docker commands. It is a one-time 2 to 4 hour setup. Many SMB owners with light technical backgrounds handle it themselves using OpenReplay's own documentation.
- What happens to my data with self-hosted OpenReplay?
- Your session data stays on your own server. Nothing gets sent to third-party analytics vendors. That is a real advantage if you are handling HIPAA, CCPA, or just want to stop feeding your users' behavior into someone else's data lake.
- Can I still get heatmaps with this setup?
- OpenReplay includes click maps and session replays. For traditional heatmaps you would need to bolt on Microsoft Clarity (free) or generate them from OpenReplay's event data. It is not a perfect one-to-one swap, but for most SMBs the coverage is more than adequate.
References
- Company Hotjar Pricing Page
- Company OpenReplay Documentation: Self-Hosting Guide
- Company Anthropic Claude API Pricing
- Company OpenReplay GitHub Repository
- Article AI for Small Law Firms: 25-Seat Implementation Playbook
- Article Can You Replace AppFolio With Custom AI Tools?
- Article Can You Replace Zendesk With a Claude AI Agent?
Share this article
Independent coverage of AI, no-code and low-code — no hype, just signal.
More articles →If you're looking to implement this for your team, Kreante builds low-code and AI systems for companies — they offer a free audit call for qualified projects.