1. 35
  1. 3

    Hey, nice work. I’ve been following the project a bit after reading your launch post and I like how you are progressing at a steady pace.

    I’m working on something similar but aimed at somewhat less tech savvy users and solely focussed on WordPress, as I felt that’s where I could get the most “bang for my buck” and make it super easy to hopefully get some people off of Google Analytics. It’s called Koko Analytics, GPL licensed, free, no need for monetization at this point.

    Also, I’m sorry for ignoring your PR on Fathom for so long as I was also the person that developed the initial open-source version of that. I’m happy GoatCounter sprung into existence though. As most can tell looking at Fathom now, the open-source version of it is pretty much dead at this point. That’s why I wholeheartedly agree with your other comment in this thread:

    In short, focusing only on business use might make sense if you’re only interested in running a business, but if you want to make the internet a bit better, then the only real option is to offer a Saas for free, at least for personal use. Actually, I don’t even see the point of this entire project without doing this to be honest.

    Anyway, keep up the good work!

    1. 1

      Thanks!

      The focus isn’t really on “tech savvy users”; ideally, it should be usable for everyone. I admit there’s still some work to be done there though 😅 One step at a time…

      The PR isn’t a big issue; it was minor and I intentionally didn’t do more to “test the waters” to see how actively maintained the project is. I just wish the current maintainers would be more upfront about Fathom’s status as they’re kind of leading people on with it IMHO. Either way, I’m happy with how things worked out.

      1. 1

        I just wish the current maintainers would be more upfront about Fathom’s status as they’re kind of leading people on with it IMHO.

        Agreed. That’s also perhaps a failure on my part as I should have been more clear in my terms for handing over the project, as I was probably much too generous. I didn’t sell my stake or anything as I was mostly concerned about ensuring the project lives-on. But by project, I meant open-source project mostly, not the direction they went into.

    2. 2

      Congrats on the release! I like the design principles of GoatCounter and I should give it a try some time.

      1. 2

        Congrats on shipping!

        What’s the rationale behind the free plan? It’s super generous, but I’m thinking if 100k views per month for unlimited sites is easy to hit and could result in a lot more effort at your end?

        1. 17

          A lot of people add Google Analytics to their weblogs, portfolios, side projects, etc. because it’s basically the only free service; almost all other ones are very much priced towards business use.

          I think it’s important to make software like this as accessible as feasible to make actual meaningful inroads to “de-Google-fi” the internet a bit, and make pervasive tracking less common. Making it freely available (for personal use) is part of that. In my own online purchasing behaviour I find that even a small $1 or $2 subscription is quite a barrier, especially for personal projects. From what I see, I don’t think my behaviour is an outlier.

          The only other options you have are to use GA, pay upwards of $10/month, or self-host – which also isn’t free in terms of hosting costs, setup time, maintenance, etc. Never mind that Average Joe running his photography website probably doesn’t have the know-how.

          Right now, hosting the free package basically costs me nothing; last time I benchmarked the software can handle something around 500 pageviews/second on a $5/month Linode VPS. Most personal sites get very little traffic anyway (much less than 100k/month) and quite a significant percentage of the free users actually donate. When I originally posted this people advised that “Your life will be much easier with 3 customers paying $500, than 500 customers paying $3”. This is not bad advice as such, but also what everyone else seems to be doing, leaving consumers without a good solution.

          In short, focusing only on business use might make sense if you’re only interested in running a business, but if you want to make the internet a bit better, then the only real option is to offer a Saas for free, at least for personal use. Actually, I don’t even see the point of this entire project without doing this to be honest.

          1. 1

            Your rationale mirrors my feelings about the web.

        2. 1

          Congratulations on 1.0! Happy customer here using it for three sites. I’ve enjoyed seeing the changes and improvements trickle in since your original announcement and really appreciate your dedication to efficiency and privacy.

          1. 1

            Congrats on releasing a 1.0!

            I’ve been using goatcounter for ~5 months and have really enjoyed it. It’s one of those products that is exactly what it needs to be and no more. And super initiative to use. I can wholeheartedly recommend other lobsters check it out.

            1. 1

              Oh, was tired when I wrote ^ and didn’t notice: s/initiative/intuitive/

            2. 1

              In the features section you wrote

              Privacy-aware; doesn’t track users; doesn’t need a GDPR consent notice.

              If I understand your application correctly, you are using a cookie to give each user a random ID, so that you can find the same client between requests.

              I worked for a company in Germany where we did the same to track users - we used cookies to store a random ID for each user, so that we can find the same client. We were also storing this ID in our database, so that later we can say that this client did this and that. At no point could we tell who you are. We could only tell that this is the same client making different requests. Delete your cookie and our tracking is reset.

              Our company lawyer at the time GDPR was showing said that this is user tracking. We must provide a way for a user to both receive and delete all the data. I know, it makes little sense. But I am not a lawyer, so my opinion does not matter here.

              Anyway, great job and good luck with your project. I really appreciate that you make it open source!

              1. 1

                you are using a cookie to give each user a random ID

                Nah, there is no user-identifiable ID at all yet (persistent or otherwise). There (probably) are ways to do this without making it possible to single out an individual user even with full DB access, and thus not requiring GDPR consent, but I need to investigate and think about it carefully; I have some ideas about this, but haven’t worked anything out yet. There is some prior art in Fathom and SimpleAnalytics here.

                The GDPR is kinda vague about this, and the exact interpretation is also up to the member states. Right now, there is a lot of uncertainty here since there is not a lot of case law yet. That said, a simple unique identifier that’s stored in a cookie almost certainly requires a consent notice, since it enables “singling out” by the entity collecting the data, so the trick will be to ensure that I (or anyone else) won’t be able to do this.

                1. 1

                  Wait, how does goatcounter use cookies then?

                  1. 1

                    Right now it doesn’t.

                    1. 2
                      1. 2

                        That’s just the session ID for the login; it’s not related to the tracker.

              2. 1

                Congrats on 1.0! I’ve been testing out GoatCounter on my own sites and I’m really liking it so far. It provides pretty much all of the details I need to know. My only issue (and this is my issue not GoatCounter) is that I can’t seem to get it working with Nuxt JS.

                1. 1

                  Cheers; did you try hooking in to the pushState()? There is some example code at the bottom of Settings -> Site code -> SPA.

                  1. 1

                    Thanks, I didn’t try pushState() yet, but I’m using NuxtJS to generate a static site rather than an SPA so I didn’t think it would be needed.

                    My issue is more figuring out how I’m supposed to add the code to NuxtJS as it doesn’t seem to be playing ball. Which is why I think it’s more about me not knowing Nuxt JS well enough rather than an issue with GoatCounter.

                2. 1

                  Congrats on shipping! Here’s to much success 🍾

                  I’ve got a project I’d like to get out there in a similar fashion and with similar ideals, always super inspiring to see steps like this 🎊

                  1. 1

                    Thank you arp242 this is a nice and simple solution, a great alternative to google analytics.. although I wonder . . what was the rationale behind the name?

                    1. 1

                      It’s written in Go, and it’s an unwritten rule that programs written in Go must start with “Go” ;-) I don’t recall how, but I eventually figured out that zgo.at was still available, so I went with the “goat” thing (and “z” prefix for libraries, e.g. zhttp, zlog, etc.) I can reuse it for future projects too (e.g. “GoatLetter”, which is the newsletter service I made before GoatCounter, but haven’t quite finished yet to a point where I can release it).

                      I wanted to avoid association with “analytics”, as that implies privacy-invading tracking and the like, hence “counter”. I’m not sure if that was really necessary, but it’s out there now so it is what it is. Still a less silly name than DuckDuckGo :-)

                    2. [Comment from banned user removed]

                      1. 7

                        This is the second time you’ve attacked a person on here for blocking you on GitHub. It’s petty and disrespectful as hell. This is not a place for you to air your personal grievances with people, especially when it’s completely irrelevant to the actual topic, especially especially when they asked you to leave them alone.

                        1. 5

                          I originally wrote a lengthy reply to this to set the record straight and telling “my side of the story”, but this is not the place. Dragging out a very minor incident here like this is incredibly inappropriate and misplaced. This is also not the first time I’ve seen you badger people on Lobsters for blocking you on GitHub. Just … stop.

                          If anyone is truly concerned about this then feel free to contact me in private to ask for details.

                          @pushcx do we really want to have people air grudges on unrelated stories like this?

                          1. 3

                            No. One user (@shamar) has already been removed for using Lobsters to harass people over disagreements elsewhere. @cup, don’t do this again.