5 ms·
Hi HN friends! Over the last 8 years I worked on userTrack.net as a side-project. userTrack is a self-hosted analytics platform that provides multiple tools to
by XCSme 6y ago
Hi HN friends!
Over the last 8 years I worked on userTrack.net as a side-project.
userTrack is a self-hosted analytics platform that provides multiple tools to understand what visitors are doing on your site.
It initially started as a heatmap/session-recording tool but since October 2019 I started working on it full-time and managed to add more features such as stats/graphs, segments and a way to easily A/B test copy on a landing page.
I would say that it can now be used as a replacement for both Hotjar and Google Analytics, thus eliminating the need of relying on 3rd parties for analytics.
I think the platform most similar to userTrack is Matomo, as it has a similar feature set and it is also self-hosted.
The biggest difference between userTrack and Matomo is how modern/friendly/fast the dashboards are and the pricing structure (as far as I know, Matomo only provides heatmaps/session-recordings for their cloud-only subscriptions).
I have been regularly released updates (see changelog at the bottom) and improved userTrack based on existing customer feedback (2000+ webmasters). In total I earned from it about $60k in 8 years of being a side-project (which is only around $6k/year, but enough to keep me going).
My bigger goal is to make self-hosting in general a lot more appealing for non-technical users or small businesses who can't afford sys admins and they have to rely on "free" services that affect the privacy of their users and even of their own data.
I think this is not only possible, but the expected future. We just have to create useful products that can be self-hosted AND find an easy way to allow users to install/use them.
I am glad to answer any questions about userTrack, the tech stack, its history or myself.
Demo (automatic login): https://dashboard.usertrack.net/server/demoLogin.php https://dashboard.usertrack.net/server/demoLogin.php
Changelog: https://docs.usertrack.net/changelog https://docs.usertrack.net/changelog
Roadmap: https://trello.com/b/z4HCNb15/usertrack-roadmap https://trello.com/b/z4HCNb15/usertrack-roadmap
- l1am0 6y agoAre you planing a hosted solution? Actually I would prefer to just give some more cash and not host it myself :D
- XCSme 6y agoI have considered it and I was actually thinking to put more emphasis of it. The thing I'm mostly worried about "hosted" versions is centralization. To avoid this, I do provide a managed alternative, where I create, host and maintain your VPS. This way, each installation is done on its own server and there is no direct way to easily aggregate data from multiple users. You can find more info on this page: https://www.usertrack.net/hosting https://www.usertrack.net/hosting Fun fact, the "Hosting" page was actually one of the three buttons in the navbar (Features, Hosting, Pricing), but I replaced Hosting with Demo as the way I'm marketing userTrack only attracted customers that wanted either the self-hosted version or the agency one (them being the one providing the hosted userTrack for others).
- social_quotient 6y agoMaybe consider making an AMI for sale via AWS. You can continue to get revenue via Aws hourly while the setup of the platform is easier in the case of the person above. https://docs.aws.amazon.com/marketplace/latest/userguide/user-guide-for-sellers.html https://docs.aws.amazon.com/marketplace/latest/userguide/use... You could probably make an optin update method as well.
- XCSme 6y agoThank you for the suggestion! I did look over it at some point, as kept searching for the best way to allow users to install userTrack. I don't recall exactly why I didn't go forward with it, but I will have another look as they seem to allow paid products. One problem I kept encountering while searching for platforms to distribute on was that most platforms only provide one-click installs for open-source software, not for premium software. That being said, many non-techincal users have trouble using the not-amazing interface of AWS, this is why I ended up recommending DigitalOcean, as their interface is one of the best and using the cloud-init script you can deploy a server just by clicking some buttons, also the pricing structure is easier to understand.
- XCSme 6y agoTo add to the previous comment: I mostly don't recommend the hosted solution because I tried to make self-hosting as easy as possible. You can set-up your own userTrack dashboard on DigitalOcean in a few clicks and use your own domain name. You can enable automatic backups and userTrack comes with an auto-updater system, so it doesn't need maintenance. If you encounter any issue you can still just contact support (me) and I will look over your installation to see what's wrong.
- hn_throwaway_99 6y agoGood to see "Privacy: Option to disable full session recordings" is in your roadmap, but I think what a lot of users want is the ability to have full recordings, but have the text on the page "blocked out" and not sent to the server so you don't accidentally scrape up things like credit card numbers or PII. For an example see https://help.fullstory.com/hc/en-us/articles/360044349073-FullStory-Private-by-Default https://help.fullstory.com/hc/en-us/articles/360044349073-Fu....
- XCSme 6y agoYou can already disable keyboard (form) input entirely or on specific fields by adding the "noRecord" class. https://docs.usertrack.net/api/client-side-api#4-disable-tracking-a-text-input-field https://docs.usertrack.net/api/client-side-api#4-disable-tra... Another thing to note is that userTrack uses a custom tracking method that doesn't actually store or send existing page content. This way it is A LOT more efficient and provides much better privacy. This also leads to some limitations in the way session recording and playback works, but for landing pages and static content it works as good as other methods. I have a more detailed explanation about how the session tracking works here: https://docs.usertrack.net/requirements-and-limitations/limitations https://docs.usertrack.net/requirements-and-limitations/limi... EDIT: That FullStory docs page is a really good example of the feature you mentioned. They provide more options than userTrack does for filtering out specific recording input but currently their tracking method also stores more personal data than the one userTrack uses.
- ganeshkrishnan 6y agoI have been looking for something like this for years. Matomo doesn't have heat map recording and their plugin is too expensive. I will use the self hosting for now and let you know how it goes
- pbreit 6y ago"My bigger goal is to make self-hosting in general a lot more appealing" Monthly billing seems like an odd way to pay for self-installed software.
- XCSme 6y agoThere is also a lifetime option. There is a FAQ explaining why, the main reason is to allow for a cheaper way to try userTrack and also ensure new customers that the platform will continue to be maintained in the future.
- heroprotagonist 6y agoHow feasible would it be to create a plugin that stores the data elsewhere? The objective being to avoid calling the PHP server API initially, then import data on demand to view analytics. This would: * Avoid continuous operation of extra services * Fit well with serverless architectures * Enable true first party through avoidance of subdomain or path proxying * Improve site load times by reducing extraneous calls For example, consider this flow: * Site javascript converts API calls to userTrack into calls to AWS AppSync, API Gateway, or other primary application datastore * Analytics store in external data source as events * When you desire to view analytics, a bootstrap script: * Pulls the data from external datasource * Imports data to MySQL * Launches a temporary (or incrementally updated) instance of userTrack * userTrack is shut down when not in use
- XCSme 6y ago> How feasible would it be to create a plugin that stores the data elsewhere? Currently there is some processing done (in PHP) on the server like getting IP, generating user hash, getting exact browser version from UA. I think this could somehow be integrated directly into the datastore, but I never thought about it before so I'm not sure how doable it actually is. > When you desire to view analytics, a bootstrap script Ok, so the main idea is to provide a better separation from data collection and data vizualization. Currently the UI and back-end can be separated, the UI just makes requests to the backend API, which loads data from the MySQL db and a few extra PHP calls to check for permissions and convert it to JSON. > AWS AppSync, API Gateway, or other primary application datastore I am not very familiar with AWS or those technologies, but I am not sure how they can handle user authentication and custom data mutation before storing it. I assume the point of using those is to have an auto-scaling data store where you only pay for what you use. The scaling part is always tricky, it is probably cheaper for low-traffic, but for high amounts of traffic you might be better of renting your own powerful VPS or dedicated server. I assume the main reason to have the userTrack dashboard load only on-demand would be cost. This is a good idea, only that the benefit is not that big as the dashboard can easily run on a $5/mo droplet, so you would safe at max a few dollars a month (if you manage to make the auto-provisioning server cheaper than the regular VPS). In conclusion, it is probably possible with not a huge effort. I am not really into this serverless trend so I think that for small to medium businesses just having a VPS will be easier and probably as cheap as all those AWS services.
- nodesocket 6y agoI would limit the amount of domains for the personal license to 3. There is not enough value added between the personal and company pricing. Leaving money on the table. Also, monthly pricing for self-hosted is sort of strange. Really consider switching to annual license pricing ONLY. This will be good for you as it will reduce monthly churn.
- chrismeller 6y agoDitto on annual billing. Most companies think in terms of annual budgets anyway. It’d also cut down on support issues related to billing for a one-dev shop.
- XCSme 6y ago> It’d also cut down on support issues related to billing for a one-dev shop. Thanks for pointing this out! Currently I use Gumroad, so they handle the payment and invoices and only send me the money with a weekly invoice, regardless of the number of sales. BUT, I always wanted to use Stripe instead of Gumroad for various reasons (lower fees, multiple currencies, per-country pricing, better withdrawl methods), only that by doing so I would have to deal with a lot more invoices. Having only the annual (and lifetime) options would really make me reconsider Stripe.
- XCSme 6y agoI agree, the company license is more of a "if your company has enough money to support userTrack, please do" than "get this to get better features". The main reason it is like that, is because if I limit anything on the personal license I would have to take care of existing customers and provide them with new business licenses, provide a way to distribute different userTrack versions and make sure the auto-updater always updates to the correct version. It is something that I have considered, but I preferred to focus on improving the product as I am a techincal personal and I am still struggling to improve my sales/business skills without feeling that I over-charge people or force them to pay more than they can afford. > Also, monthly pricing for self-hosted is sort of strange. Really consider switching to annual license pricing ONLY This is a really good suggestion and I will do it really soon. Initially I wanted to also provide an annual option, but there were too many options to choose from (Monthly, Annual, Lifetime). > Really consider switching to annual license pricing ONLY Are you also suggesting to drop the lifetime plan? The main reason why the lifetime plan exists is that previously userTrack was sold on CodeCanyon, where the lifetime plan is the only option. After that I kept it as, personally, I hate paying recurrent fees for a product (eg. I preferred Photoshop CS6 a lot more than CC with its subscription, just let me "buy" the product). I understand that by having only a lifetime plan it is a lot harder to keep maintaining it and have consistent revenue: what if sales suddenly stop, do I stop working on the product? I am still experiment with pricing, and I will try the annual pricing only. Thanks a lot for the suggestion!
- an_opabinia 6y ago> I am glad to answer any questions about userTrack, the tech stack, its history or myself. How do you detect if a visitor is real and not a bot?
- XCSme 6y agouserTrack does not have any bot-detection system yet. Many bots are filtered automatically as the tracking is done in JavaScript, so HTML-only crawlers do not show up in the dashboard. Bots that run JavaScript might appear in the total stats and the visitors list, but usually in the list you can visually see if the user was a bot (usually has a low screen resolution and a session length of 0). I do plan to add better bot-detection, but currently I didn't see any noticeable problem with it nor any existing customer reported this problem. I think one reason why bot percentage overall is lower than in Google Analytics is because GA is a very popular and old platform and there are many spam bots created specificially for it whereas userTrack is still new and has a lower market-share, so it is not even blocked in any way by ad-blockers yet. I have focused more on the features/issues reported by existing clients than the bot-detection, but I did add it to the roadmap and plan to work on it soon.