Skip to content

Hits? #7

@nelsonic

Description

@nelsonic

"Make Something People Want"

In August 2015, to "scratch my own itch," I created https://github.com/dwyl/hits
to track the "Page Views" on all of our learn-... tutorials and Open Source projects. 📈
It does (exactly) one thing and nothing else.

Rather than keeping it "private" (only for dwyl repos) I made it public so anyone could use it.
It's an incredibly simple (single-purpose) Web Service that only has one endpoint.

I did not promote it or try to ask anyone in my network to use it.
I did not do any "press" or "Show HN" ...
people have found the service 100% "organically", they want it

Last year I added a (basic) front-end to help people create their own badge: https://hits.dwyl.com
image

I linked to it on https://github.com/dwyl/repo-badges and waited to see if:

A) Anyone would Find it!

B) People would Use it without any prompting or promotion!

C) Running a basic (single metric) analytics service could be done on a low ($5/month) budget.

Fast forward a year and there are thousands of GitHub projects using the "Hits Badge"! 😮
image

It's been collecting Millions of "Hits" (Page Views) for some of the top projects on GitHub:
hits-xbmc-stats
"XBMC" (originally "XBox Media Center" now "KODI" because it runs on more hardware)
https://github.com/xbmc/xbmc is a super popular GitHub repo
and the project maintainer added the Hits Badge ...

There's even a project from the Apache Software Foundation:
https://github.com/apache/incubator-servicecomb-service-center using a Hits Badge:
apache-hits-stats

There is a lot of "noise" from random "pet projects" using the Hits "Badge" ...
But that's a good thing because it simulates usage (the Page View counts are all real!)
and has generated a lot of data that I can now analyse.

Product-Market Fit?

"Product/market fit is the degree to which a product satisfies a strong market demand."
"a first step to building a successful venture in which the company meets early adopters, gathers feedback and gauges interest in its product(s)."

Hits is a single function product/service - it does only one thing -
that Users have organically discovered and are using completely "under the radar"!

Note: I am aware that many people consider "Page Views" to be a "vanity metric",
for the most part I agree. However, there are also smart people who like the simplicity of the counter as a reminder of demand.

Cost?

initially, I ran the service on a Free Heroku Dyno: https://hitt.herokuapp.com
At the time the hits (Node.js) app was only incrementing a counter
for each page/project that was being tracked and I thought that was useless data for analysis.
So rather than paying $9/month for Heroku's PostgreSQL,
I decided to run the app on a $5/month Linode VM. see: learn-devops/linode-setup.md

https://manager.linode.com/account/billing_history
image

Resource Usage

CPU

The CPU usage never goes above 3%:
image
And the only reason for the "spikes" is that I'm using a (filesystem based) append-only log,
so each time the count needs to be displayed I have to stream the entire file which is quite "slow".
But still, CPU is definitely not a " performance bottleneck" in the App.

Traffic (Bandwidth in KiloBytes Per Second)

Bandwidth is negligible:
image

Because the response is almost always an SVG which is 511 Bytes:
image

The Linode Instance has 1000GB (1TB!) of Monthly Network Transfer and we are using less than 1%:
image

Storage

The App is using 20Gb of SSD Storage for the page view
image

Well, there's your problem ...

theres-your-problem

Data cost will only ever increase over time. 💸

Benefit?

Until now, the only benefit has been learning for me
and a counter for the people displaying the "badge".

Could we get a bit more out of this project ...?
(and could it be part of the "product roadmap"...? hence opening this issue/discussion here...)

Two <option>'s For ...

There are two options for what we can do with this product that clearly has traction:

  1. Do Nothing. Leave it the way it is and gradually pay more for it over time as more people discover it and storage costs increase but do no more "dev" work on the idea. (lowest time/cash investment by far!)

  2. Build Out an idea that has "Product-Market-Fit" (PMF) See How far it Goes!
    Build out the UI to include:

  • Dashboard with graph of usage over time including (aggregate) User Agent and Location Stats
  • Chart showing the progression of GitHub Stars over Time (using the GitHub API)

Note the "core" page view counting service would not change, it will still do exactly one thing.
all we would be doing is extending the UI such that repository owner can see a breakdown of the data that we have already been collecting.

Along the way:

Metadata

Metadata

Assignees

No one assigned

    Labels

    discussShare your constructive thoughts on how to make progress with this issueenhancementNew feature or enhancement of existing functionalityquestionA question needs to be answered before progress can be made on this issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions