Launch HN: Highlight.io (YC W23) – Open-source, full stack web app monitoring

261 points by podoman ↗ HN
Hi Hacker News! We’re Jay and Vadim from Highlight.io (https://highlight.io). We’re building a truly open source [1] observability platform for modern web applications. We posted some of our tools to HN in recent months [2][3]. Today, we’re excited to formally launch the project, share more about where we’re going, and of course, poll the community for some feedback. A bit of background: Vadim and I have worked at quite a few startups at this point, and a recurring challenge we’ve faced was tracing usability issues on the frontend to downstream errors and logs on the server. Understanding the real reason behind customer issues was always a chaotic juggling of multiple tools. With the rise of "frontend-forward" frameworks such as NextJS, which blur the boundary between the client and server, the complexity of tracing these issues is only growing.

This is where Highlight.io comes in: our product bridges the gap between client and server to give you a holistic view of your entire application.

At its core, Highlight.io has three main “products”: Session Replay, Error Monitoring, and Logging. The novelty here is not in each product but in how they are connected. For example, in Highlight.io it’s very easy to click from a given error to the associated user session where it is thrown [4], and from a given error, you can easily inspect all of the logs that fired leading up to it. Ensuring that all of our products work together seamlessly with little to no effort is a core principle of our product strategy. If you’re using a common framework [5], for example, we’ll automatically link your frontend sessions with backend errors and logs. No agents, configuring facets, or anything else, It just works.

We depend on several open source projects that help us move quickly. OpenTelemetry (OTEL) [6] is one of them, which helps us with maintainability, i.e. for every language that we support, we only maintain a thin wrapper around its respective OTEL SDK. OTEL is also a great way to enable the community to contribute, and we’re already seeing traction in this space (ie. an open source contributor built a wrapper for a Java SDK [7]).

rrweb [8] is another project we leverage heavily for our session replay product. It drives our ability to record and replay the DOM to visualize user flows in the frontend. We’ve had the privilege to work closely with the rrweb team to ship improvements, and we’re now actively sponsoring the project [9].

ClickHouse [10] has recently become a loved database on our team, as we historically used Opensearch for search-heavy workloads and started to hit growing pains with ingest throughput. We recently rolled it out for our logging product [3] and plan to replace our sessions and errors (and upcoming tracing work) with the database as well.

From a business perspective, Highlight.io is open source under the Apache 2.0 license, and we make money with our hosted product [11]. For the hosted product, you can set billing caps for each offering and we don’t charge for seats. At this point, we have 100+ companies paying for our product (some of which are large enterprises), and thousands of sole developers use Highlight.io every week.

On our roadmap [12] for the future includes metrics, tracing, release management and more. We also are launching several updates this week on our launch week page [13].

Overall, we’re excited to be sharing Highlight.io with the world, and Vadim and I are particularly excited to get some feedback from the HN community. Please give us a test-drive at https://app.highlight.io and let us know what you think. We would love to learn about what you wish you had in an observability product as well as any other experiences and ideas in this space. We look forward to hearing from you!

1: https://github.com/highlight...

135 comments

[ 3.1 ms ] story [ 223 ms ] thread
I'm surprised you don't list Sentry as a competitor. How do you compare? (We're a fairly happy customer of Sentry, but am always curious to see new entrants in this space)
We do consider sentry a competitor. There's a small bug on our site where our competitor page isn't rendering (taking a look).

There's a few reasons why someone would use us over Sentry. First is that our session replay product is much more robust imo, though they are working quickly in that space: https://www.highlight.io/docs/general/product-features/sessi...

Secondly, we have a logging product: https://www.highlight.io/docs/general/product-features/loggi...

And lastly, we prefer to keep our product simple and very opinionated. Most of our customers are using common frameworks and we're specifically focused on web. Long term, we see ourselves going in the direction of Datadog, building out a metrics and tracing product over the next 6 months or so.

Do you allow users to connect to Clickhouse directly with the hosted option?
Yes, our self-hosted option can plug into existing ClickHouse servers and will set up the necessary schema for highlight to function. The infrastructure configuration is driven by the docker compose file. More info in our docs: https://www.highlight.io/docs/getting-started/self-host/self...
I believe you misinterpreted the question. OP was asking if, for your hosted option, you allow customers to access the database used on the hosted option.
For the cloud version (app.highlight.io), we currently don't support plugging into your own infrastructure. We also don't give you direct access to the database we use. For the self-hosted version however, you can use any infrastructure you want.
Congratulations for the launch and thanks for making it open source!

Why using 6 databases? Kafka, redis, Postgres, ClickHouse, influxdb, opensearch

Why?

The open-source infra we use allows us to have a highly-available, scale-able system.

Kafka - buffers data ingest so that we never lose recordings. Redis - acts as a cache, optimized for write-heavy processing in our app. Postgres - stores metadata for the data we record. ClickHouse - stores logs and other time-series data that need to be aggregated.

We're looking to simplify the system and replacing InfluxDB + OpenSearch in the near future with ClickHouse as a more performance and cost-effective solution that has proven simpler to maintain.

What about keeping just ClickHouse and redis? Wouldn't that be enough? At least for the hobby that don't need to scale to millions? (Representing 99% of the use cases)
you don't go to YC to be "monitoring for hobbyists"
I haven't found a good solution that works well with fly.io (whose own monitoring is meh). Logtail just doesn't work well; logz.io have their heads up their asses; dd and nr are too expensive. If you can get a first class integration going with fly, that'd be huge.

Also please make sure you have multi-line logs covered out of the gate. (Logtail, for example, doesn't support multiline stacktraces(!))

One thing that isn't clear to me from your marketing is what capability you have to support frameworks that aren't in your list. Do you have a regexp/generic parsing engine/ui?

we have a fly.io log shipper. docs here: https://www.highlight.io/docs/getting-started/backend-loggin...

> Also please make sure you have multi-line logs covered out of the gate. (Logtail, for example, doesn't support multiline stacktraces(!))

Noted. We're doing a push on our logging UX soon and can take a look.

> One thing that isn't clear to me from your marketing is what capability you have to support frameworks that aren't in your list. Do you have a regexp/generic parsing engine/ui?

I'm not entirely sure about the question, but we can receive logs via several specifications. OTEL, HTTP, Fluentbit, etc.. Does that answer your question? Or are you talking more about log filtering (i.e. filtering out logs for a specific log level)?

Perfect, I will kick tires today. Thanks!
What could fly.io be doing better here? (There's a threshold past which we'd say you should be using Highlight.io or Sentry, I'm just curious what the nuts-and-bolts things we're missing are).
I created an account with GitHub login and it appears the set of emails your backend was presented chose one that wasn't my primary. How do I change my email once I have an account set up?
How does session-replay work with with privacy regulations like GDPR? Is it even possible to do session replays on production in a transparent non-privacy-violating way?
Preface: I was not asked to write this and these are my own experiences with Highlight

As someone building a bootstrapped product with my co-founder [1][2] Highlight has been a pretty amazing time save for us; setting up session replaying + monitoring + logging took all of 15 minutes and let me get back to actually focusing on building the product.

We're running on DOKS (Digital Ocean K8s) due to my familiarity with the hosting stack, and I really didn't want to spend the time setting up a cluster agent + log rotation strategy.

Surprisingly, the popular logging providers out there today don't really have alternative quick-start solutions for shipping logs in clusters, but Highlight DID and it also came with error monitoring + session replays.

All in all I'm pretty happy with the product and looking forward to using it more as we approach our product's soft-launch date at the end of this month with some select clubs.

[1] https://embolt.app/ [2] https://demo.embolt.app/admin/

Thanks for the kind words, we’re glad our approach to observability resonates!
> Surprisingly, the popular logging providers out there today don't really have alternative quick-start solutions for shipping logs in clusters, but Highlight DID and it also came with error monitoring + session replays.

Where did you find this? Did you self-host or go with hosted?

On the docs for ingesting data, I only found some guides for things like aws - not k8s?

And there's just some Docker guides and an open issue regarding hosting: https://github.com/highlight/highlight/issues/4390

Looking forward to dependencies being cut down a bit as it should make it almost trivial to set it up for k8s (both hosting and ingesting logs).

We're using the hosted option, and since we run on rails all we needed was the ruby SDK [1].

Essentially, we just have an additional logger attached to our stdout logger which ships logs over to highlight using their OpenTelemetry implementation. No infrastructure required, pretty simple.

[1] https://www.highlight.io/docs/getting-started/backend-sdk/ru...

Ah, I interpreted your comments as if you had automated logging from all k8s nodes/pods to go to highlight via some kind of automation like a sidecar or something (ie not just specific application logs).
> Looking forward to dependencies being cut down a bit as it should make it almost trivial to set it up for k8s (both hosting and ingesting logs).

We're planning to support k8s (openshift etc.) in the next 3-6 months. If you have another platform you'd like to see supported, please commented on the issue you linked.

Hijacking your thread a bit, but I have to give you feedback on your landing page copy. I don't understand what you sell!

I thought you were an app for people that care about their social media reach (like, twitter tech influencers). Forgiveable since your hero copy is " Build your Reach".

It's super important when writing marketing copy to name your users. If I'm a club chair for the local bowling league and I see "sports leagues" mentioned then my brain will just think "oh, this is for me!"

The first paragraph in your about page is so much better:

> Whether you're a sports club, social group, hobbyist organization, or non-profit, embolt is the solution to running your organization. We believe every club and organization should have a reliable platform to accept online member dues, manage registration, run events, and so much more.

I would replace the hero copy with a condensed version of that.

Thanks for your feedback!

I agree with what you're saying, our homepage came before our product so we're in a goofy stage of having a nearly finished MVP product and no mention or links to it on the marketing pages.

I've wanted to try highlight for our company although I find it off putting that new companies market themselves as "Open Source!" "Self Hosted!" but really aren't that accessible or documented for independent use.

I get it. it's a business, and it really is open source (thanks for the permissive license), but it often feels more like an after-thought/marketing play, which is completely fine if you're upfront. or maybe I'm just spoiled.

I understand the sentiment. Maybe we can put something in our self hosting docs [1] that is more clear about how we think about our open source stance. In short, self hosting highlight is free on a single instance, but we charge for an “enterprise” deployment where we support managed infra, etc.

Are there any other things you’d suggest we can change on our site to make it bode better?

https://www.highlight.io/docs/general/company/open-source/ho...

Not the exact same feature set as highlight, but the platform I'm building[0] is self-hosted only for this exact reason: companies that have SaaS as their main business-model have negative incentives to make their self-hosted offering too good or easy to install/use.

[0]: https://www.uxwizz.com/

This could potentially replace LogRocket / Bugsnag / Papertrail for our fly-hosted SaaS product. Only thing is, we're elixir based so I'd love to see an elixir client. I advise another company with a HIPAA compliant service and the self-hosted option would be huge for them. They're PHP / React so a PHP library would help out there.
Thanks for sharing. Yeah, that’s a very reasonable use case to switch over. We have lots of logrocket and busgnag converts.

We do have more SDKs in the works, and occasionally, community members help us out as well (see the comment about our java sdk above). If you have any thoughts, please share (tickets below).

Regarding Elixir, we have some experience with the language within our team, so please reach out if we can build something for you in the short term. I'm at jay [at] highlight [dot] io.

https://github.com/highlight/highlight/issues/5082 https://github.com/highlight/highlight/issues/4452

Would it be possible to monitor a bunch of on premise servers running on similar hardware and serving the same apps (but for different clients)?

More specifically, how would that look and work from an sre/product/devops perspective?

Thanks!

Highlight can monitor server-side web apps; I'm assuming that's what you're running on those servers? I'd suggest instrumenting the common application code with our backend SDKs and deploying that change to all on-premise servers. Alternatively, you can run an OpenTelemetry collector (https://www.highlight.io/docs/getting-started/backend-loggin...) on each server to stream logs.
Yep. Very possible. You can send us logs via Fluent bit, Otel, and many other specifications. The easiest way to differentiate between logs would probably be to send a "service name" that's different between your servers.

If you'd like to ask questions synchronously or over email, I'm a jay [at] highlight [dot] io.

Looks like Vadim beat me to it. Note what he said about running an OTEL collector. That's probably the best approach given they're onprem.
Thank you both!

I'll have a better look at the docs tomorrow and try it out.

+ [[ --go-docker --hobby == \-\-\h\o\b\b\y ]] + CUSTOM_COMPOSE='-f compose.yml -f compose.hobby.yml' + SERVICES='clickhouse collector influxdb kafka opensearch postgres redis zookeeper' + docker compose -f compose.yml -f compose.hobby.yml pull clickhouse collector influxdb kafka opensearch postgres redis zookeeper unknown shorthand flag: 'f' in -f See 'docker --help'.
Seeing open source projects backed by YC always giving me a special feeling of joy and excitement.

Good luck, I’ve been having highlights on my radar since your first post on HN.

Appreciate the sentiment. Give us a try when you get a chance!
Oh man! this is a Godsend. I've been having issues with Sentry's payment processor... And been looking for alternatives. I'm definitely in!
Try GlitchTip first! The only thing you’ll need to do is swap out the DSN.
I'm with Sentry. We're sorry to hear you're having payment issues! Could you tell us more about what's not working? We'll look into this on our end.
Thanks for your reply. I've already sent a support request and the response was less than impressive. "It's not us, it's you" type... feel free to reach out, email on profile.
Reached out on that email. Look forward to making things right!
Pinged a couple of times on that gmail ID but no response yet. LMK what's a better way to reach you.
Our team has been looking at Highlight recently and getting feedback from our team -- and they love it. Super solid product that will replace a lot of what we use now for logging and session recording, and the Highlight team is insanely responsive and has been great to work with.

Congrats on the launch!!

Thanks for the kind words. Keep the feedback coming :)
For healthcare applications, do you sign a BAA with the customer or deploy on-premise? I could see this being extremely useful to health app developers if there is a secure way to handle patient data stored in a session replay.
In some cases, we'll sign a BAA. We handle this sort of thing on a case-by-case basis depending on risk. Feel free to shoot me an email if you have any particular questions in that space. jay [at] highlight [dot] io
If you want to see what it looks like in action[1] - I deployed it very quickly to my static site. Pretty interesting so far.

In this mode you can see the cursor move, any selections, etc. You also get a basic view of the network developer tools console for that user.

Fascinating.

1: https://keeb.dev/static/highlight-crazy.png

Very cool demo. Highlight.io is a super visual tool and we've used that in demos and such as well!
Highlight has been on my todo list forever. Great to see your launch, congrats!
Appreciate it. Let us know what you think when you have a chance to try it!
Looks great, and will be testing it out soon.

I have to say though your landing page looks remarkably similar to Posthog. So much so that I am having to double check to make sure you are not the same company.

We definitely did take some inspiration there. I’ll add some attribution in the footer.
Along these lines, for those looking for modern (rrweb) session recording software first and foremost, it looks like Posthog is more cost efficient (though I’d love to be proven wrong on my math!). Do you have a rationale for why Highlight should be a preferred solution, feature-wise or otherwise?
Highlight is an application monitoring tool. Posthog is an analytics tool. I would say that it depends mostly on the buyer/audience.
There are definitely a bunch of overlap though between the two, most notably in session replay. Honestly if one of you could combine application analytics with monitoring, it would be a fantastic one stop resource. There is no reason in my mind why these two areas should be separate. Both are basically logging events of different types.
Implementation-wise, I agree. You run into similar engineering challenges in both cases. From a buyer/persona perspective it is very different as you go up-market.
Curious to try this out. We are currently using Sentry, Papertrail, and some error logs in our analytics platform. Do your users replace multiple tools with Highlight?
Yes, a good number of folks have come from those tools. Not only to consolidate tools, but to get a cohesive debugging experience (see the frontend session and the server side errors + logs all in one place).
Hiya! I'm a long term logrocket user (around 9 years now). I've been looking at alternatives as the cost is so high for us as a startup (~300k sessions per month). Highlight looks great! I have a few questions:

1. Do you or are you looking to add redux recording? This is a must for us.

2. Why are session replay costs so high? Is there a lot of data stored? Nobody seems to have a cost effective solution once you get to high volumes.

3. I'd happily self-host to take the hit on the storage/database costs internally but $3k per month is unworkable for us. Is there a way around this (I can see how this would potentially break your business model)? 4. Do you have any plans to offer discounts for startups?

Thanks!

Regarding redux recording, we've heard this occasionally, but it seems like the library (and proper state management libraries at large) is getting less popular nowadays. That being said, I think it would be cool if users could report data to the session to visualize it after the fact and we could use Redux as a first step in that direction.

I made a ticket here; do you mind helping with some of the points I added?

https://github.com/highlight/highlight/issues/5990

Regarding pricing, at that volume, we charge less than Logrocket (you'll need to reach out to us about it for now: jay [at] highlight [dot] io). We also have features that let you only record sessions with errors if you don't want to record everything. Overall, our goal from a business strategy is to be your one stop shop for application monitoring, not just a specialized tool for session replay like logrocket.

Sorry for the long reply.

Interesting..is this tool similar to replay.io? Are you competitors?
Replay.io is a browser actually, so it’s for debugging web apps in development. highlight is a better fit for production web applications.
Does it have feature parity with Sentry? Is it cheaper?

I'm not sure why they put "open source" in the pitch. I could care less if it's Open Source. I want a working product and responsive support, not a hippy license agreement.

They put "open source" in the pitch cause some folk (eg: me) give preference to vendors who allow self-host and have some hippy-license.
Open source is always going to be a major selling point for Observability. Once you get to any scale the lock-in with a closed source SaaS product is going to make your budget HURT.
Is there a way to limit ingestion so we don't get hit with an infinite loop error reporting and end up with a huge bill?

Sentry currently just drops extra errors (at least this happened to us before we upgraded)

Yes. For your trial (first two weeks) you get unlimited usage. After that, you can explicitly set billing caps.

Let me know if that doesn’t answer the question.