[{"data":1,"prerenderedAt":438},["ShallowReactive",2],{"project-21720881":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":34,"aspects":35,"strip":45,"post_text":47,"what":48,"said":84,"maker_in_thread":245,"shape":256,"grid":261,"attempts":400,"same_week":401,"maker_shows":32,"maker_hidden":430,"reader_version":431,"card":432},"21720881","Koko Analytics","Self-hosted, privacy-friendly and open-source analytics for WordPress","title","Show HN: Self-hosted, privacy-friendly and open-source analytics for WordPress","https:\u002F\u002Fwww.kokoanalytics.com\u002F","kokoanalytics.com","dvko",1575631996,2019,187,62,214,2195,10,"notable","data","web analytics","other",[24,25,26,27],"wordpress analytics","self-hosted analytics","privacy-friendly analytics","google analytics alternative","mixed",0.163,{"positive":18,"neutral":31,"mixed":32,"critical":33},14,1,6,31,{"idea":36,"execution":39,"design":40,"privacy":42,"docs":43},{"positive":37,"critical":38},4,0,{"positive":32,"critical":38},{"positive":41,"critical":38},3,{"positive":38,"critical":41},{"positive":38,"critical":44},2,[46,41,38,41,41,46,38,38,38,38,38,38,46,46,32,32,32,41,41,41,32,32,38,38,38,46,41,46,41,41,46,38,41,41,46,46,32,46,41,38],5,null,{"problem":49,"audience":59,"pricing":47,"motivation":64,"time_to_build":47,"stack":68,"openness":81,"stage":82,"team_size":83},{"value":50,"source":51,"evidence":52},"Simple, privacy-friendly website statistics without Google Analytics or server log tools","maker",[53,56],{"id":54,"by":11,"text":55},"21724222","Hah, I somewhat understand the former and fully agree with the latter. For what it’s worth, I hoped building it for WordPress would allow me to reach the most people who would…",{"id":57,"by":11,"text":58},"21721244","Hey, developer here. Thank you, would love to hear your thoughts and suggestions for it. PS. Since this is brought up all the time: in case anyone wonders why this feels similar…",{"value":60,"source":51,"evidence":61},"WordPress site owners who lack server skills to run self-hosted tools",[62,63],{"id":54,"by":11,"text":55},{"id":57,"by":11,"text":58},{"value":65,"source":51,"evidence":66},"Build a truly open-source, self-hosted analytics tool easy to install without server knowledge",[67],{"id":57,"by":11,"text":58},[69,75],{"value":70,"source":51,"evidence":71},"PHP (WordPress plugin, supports PHP 5.3+)",[72],{"id":73,"by":11,"text":74},"21723280","Thanks! Current though? The plugin supports PHP versions all the way back to 5.3 (which has been EOL for nearly 5 years). Although I certainly recommend running a current PHP…",{"value":76,"source":51,"evidence":77},"JavaScript tracking script",[78],{"id":79,"by":11,"text":80},"21724943","The plugin issues a tracking request using a tiny client-side JS script, so most of those bots will already be omitted (as lots will most likely not be executing JavaScript or…","open_source","launched","unknown",{"praise":85,"objections":120,"requests":156,"questions":186,"alternatives":209},[86,98,113],{"value":87,"source":88,"evidence":89},"Open source, self-hosted and privacy-friendly","commenter",[90,94],{"id":91,"by":92,"text":93},"21724125","stephenr","I have zero interest in running Wordpress but I just wanted to say congrats for releasing something that ticks a lot of “objectively good” boxes otherwise: open source, self…",{"id":95,"by":96,"text":97},"21723851","markosaric","This is a great alternative to Google Analytics. It's free and it works as soon as you activate the plugin. Most bloggers set up Google Analytics without thinking too much but…",{"value":99,"source":88,"evidence":100},"Clean, simple interface",[101,105,109],{"id":102,"by":103,"text":104},"21723225","onreact","Webalizer was clumsy and cluttered. I used it like 20 years ago. Koko is way cleaner.",{"id":106,"by":107,"text":108},"21721214","zapt02","Looks really nice and neat, excited to try it!",{"id":110,"by":111,"text":112},"21724587","mcescalante","Looks lovely - I'll be testing this out on a few clients websites for simpler stats experience viewing for them. I do have Google Analytics running on them but GA can be…",{"value":114,"source":88,"evidence":115},"Easy to use, works right after activation",[116,117],{"id":95,"by":96,"text":97},{"id":118,"by":103,"text":119},"21723243","I tried Koko on two of my blogs. I really like it. You just need a current PHP version.",[121,136,146],{"value":122,"source":88,"evidence":123},"Cookie-less returning visitor detection via referrer is less reliable and misnamed",[124,128,132],{"id":125,"by":126,"text":127},"21721663","smonsays","> Option to not use any cookies while still being able to determine returning visitors and unique pageviews. This strikes me as a potentially non privacy-friendly feature. How is…",{"id":129,"by":130,"text":131},"21722136","iudqnolq","I don't think it's at all clear from the term that returning visitors wouldn't include someone who visited your page from a search page, went back, made a new search, and clicked…",{"id":133,"by":134,"text":135},"21722420","JangoSteve","I agree. A returning visitor is someone who visited your site before and now they're back again. The \"return\" in returning visitor is the fact that they left and came back. What…",{"value":137,"source":88,"evidence":138},"Still uses JavaScript, not fully server-side",[139,143],{"id":140,"by":141,"text":142},"21725970","Mathnerd314","It still uses JavaScript. I'd rather see something completely server-side that sets Etag evercookies.",{"id":144,"by":92,"text":145},"21724018","GoAccess is a modern log based analyser. I’ve just deployed it analysing logs coming out of varnish cache (on two servers, using syslog to keep log data the same across machines)…",{"value":147,"source":88,"evidence":148},"Not trusted by buyers who expect Google Analytics",[149,153],{"id":150,"by":151,"text":152},"21724489","x__x","The only downside I see is for people who plan on selling their website at a later time. The industry standard is GA and people want access to this before buying a website, many…",{"id":154,"by":151,"text":155},"21724831","Maybe trust wasn't the best word. Most marketplaces where you can sell a website has an option to link your GA account directly to the sales page, showing the site stats directly…",[157,165,172,179],{"value":158,"source":88,"evidence":159},"Filter out bots and crawlers",[160,164],{"id":161,"by":162,"text":163},"21724920","ac29","Installed this on a few sites I run, its really seems like exactly what I want for simple \"is anyone viewing this page\" type of info. I had previously left GA and analytics all…",{"id":79,"by":11,"text":80},{"value":166,"source":88,"evidence":167},"Add browser, screen size, time on page, bounce rate and pathing metrics",[168],{"id":169,"by":170,"text":171},"21725502","donohoe","This is really great. I'm trying it now on my local dev environment. I'm looking for a GDPR-friendly analytics solution for a media property I am building so I am very excited in…",{"value":173,"source":88,"evidence":174},"WooCommerce support",[175],{"id":176,"by":177,"text":178},"21721968","agustif","Well since I saw in hn all the fuck-fest with fathom v2 and the founders talking down to legitimate users asking about the open source version, I'm glad you released it, will try…",{"value":180,"source":88,"evidence":181},"Static site version",[182],{"id":183,"by":184,"text":185},"21725654","fbnlsr","Looks really nice. I wish there was kind of the same thing for static website. A super simple, minimalist, privacy-friendly statistics tool.",[187,198,202],{"value":188,"source":88,"evidence":189},"Does it work behind Cloudflare",[190,194],{"id":191,"by":192,"text":193},"21721227","acomjean","Reminds me of the programs that would make summary pages from your web logs. (Webalizer) http:\u002F\u002Fwww.webalizer.org\u002F But how does it work if you are behind a cdn like cloudflare is…",{"id":195,"by":196,"text":197},"21721585","9HZZRfNlpR","You can make it work with cloudflare, just a bit configuration needed so CF is sending you the real visitor IPs, otherwise every hit looks like it's done by distributed CF…",{"value":199,"source":88,"evidence":200},"How returning visitors are determined without fingerprinting",[201],{"id":125,"by":126,"text":127},{"value":203,"source":88,"evidence":204},"How to use it with the WordPress REST API front end",[205],{"id":206,"by":207,"text":208},"21721477","TamDenholm","When a wordpress site is required, I use the REST API to build the front end so that its not bloated to hell the WP's own theming system, is this plugin available to those using…",[210,221,225,232,236,241],{"value":211,"source":88,"evidence":212},"Matomo",[213,217],{"id":214,"by":215,"text":216},"21721396","jotm","Speaking of self hosted analytics, I used to use Piwik and it was great. It's called Matomo now https:\u002F\u002Fmatomo.org\u002F",{"id":218,"by":219,"text":220},"21722353","Lerain","I am a great fan (as much as one can be a fan of an analytics tool) and advocate for matomo. They even have server log analytics with no client-side tracking whatsoever. We're…",{"value":222,"source":88,"evidence":223},"GoAccess",[224],{"id":144,"by":92,"text":145},{"value":226,"source":88,"evidence":227},"AWStats",[228],{"id":229,"by":230,"text":231},"21724961","Lammy","AWStats still gets frequent updates. I use it for all of my sites' nginx logs since I prefer that over anything that requires JavaScript. https:\u002F\u002Fwww.awstats.org\u002F",{"value":233,"source":88,"evidence":234},"Webalizer",[235],{"id":191,"by":192,"text":193},{"value":237,"source":88,"evidence":238},"Google Analytics",[239,240],{"id":95,"by":96,"text":97},{"id":150,"by":151,"text":152},{"value":242,"source":51,"evidence":243},"Fathom Analytics",[244],{"id":57,"by":11,"text":58},{"comments":246,"answered":247,"key":248},15,7,[249,250,253],{"id":54,"text":55},{"id":251,"text":252},"21724627","I’ve been doing it for the last 10 years and have built other analytics tools before (Ana in 2016, then Fathom in 2018) as well, so it was super easy to build for me. But if…",{"id":254,"text":255},"21721351","Hey, this uses a tracking request that is initiated client-side. So even if the page is not generated dynamically, Koko Analytics will work just fine.",{"commenters":257,"max_depth":258,"maker_replies":246,"first_comment_mins":259,"lifespan_hours":260},37,8,61,69,[262,264,266,269,270,272,274,275,278,280,282,283,284,287,291,293,295,296,299,302,303,304,306,308,310,311,314,316,319,321,325,327,330,332,335,338,341,342,345,348,352,354,358,360,361,363,366,369,372,373,375,377,381,382,384,385,387,388,390,391,395,398],[91,38,46,263,92,38],"project\u002Fpositive\u002Fidea",[54,38,38,265,11,32],"maker\u002Fneutral\u002Fnone",[267,38,41,265,268,38],"21724566","mritchie712",[251,38,38,265,11,32],[191,32,41,271,192,38],"project\u002Fneutral\u002Fidea",[254,32,38,273,11,32],"project\u002Fneutral\u002Fexecution",[195,32,41,273,196,38],[276,32,38,277,11,32],"21721590","maker\u002Fneutral\u002Fprivacy",[102,32,46,279,103,38],"project\u002Fpositive\u002Fdesign",[144,32,38,281,92,38],"other\u002Fneutral\u002Fnone",[229,32,38,281,230,38],[214,44,38,281,215,38],[285,44,38,281,286,38],"21721764","mxuribe",[288,44,38,289,290,38],"21721906","commenter\u002Fneutral\u002Fnone","basilgohar",[292,44,38,289,215,38],"21722283",[294,44,38,289,286,38],"21722435",[218,44,38,281,219,38],[297,44,38,281,298,38],"21722614","Findus23",[300,44,41,301,230,38],"21725001","project\u002Fneutral\u002Fnone",[110,41,46,279,111,38],[95,37,46,263,96,38],[125,46,32,305,126,38],"project\u002Fcritical\u002Fprivacy",[307,46,38,277,11,32],"21721691",[129,46,32,309,130,38],"project\u002Fcritical\u002Fdocs",[133,46,32,309,134,38],[312,46,38,313,11,32],"21722639","maker\u002Fneutral\u002Fdocs",[315,46,41,273,130,38],"21722796",[317,46,38,318,11,32],"21723349","maker\u002Fneutral\u002Fexecution",[320,46,41,273,130,38],"21723401",[322,46,41,323,324,38],"21722921","project\u002Fneutral\u002Fprivacy","ivanhoe",[326,46,38,277,11,32],"21723037",[328,46,32,305,329,38],"21722483","AndrewStephens",[150,33,32,331,151,38],"project\u002Fcritical\u002Fnone",[333,33,41,301,334,38],"21724528","nickthemagicman",[336,33,38,289,337,38],"21727778","willio58",[339,33,38,289,340,38],"21724763","Kovah",[154,33,38,289,151,38],[343,33,38,281,344,38],"21727277","robbya",[346,33,38,281,347,38],"21728969","dazc",[349,247,46,350,351,38],"21722167","project\u002Fpositive\u002Fnone","k1m",[183,258,41,353,184,38],"project\u002Fmixed\u002Fnone",[355,356,46,263,357,38],"21722945",9,"marc_io",[359,356,38,265,11,32],"21723092",[206,18,41,273,207,38],[362,18,38,313,11,32],"21721526",[364,18,41,365,207,38],"21723625","project\u002Fneutral\u002Fdocs",[367,18,41,313,368,38],"21722096","amdavidson",[118,370,46,371,103,38],11,"project\u002Fpositive\u002Fexecution",[73,370,38,318,11,32],[374,370,38,289,103,38],"21723312",[169,376,41,301,170,38],12,[378,379,41,365,380,38],"21731166",13,"zelon88",[106,31,46,279,107,38],[57,31,38,383,11,32],"maker\u002Fneutral\u002Fidea",[176,31,46,350,177,38],[386,31,38,273,11,32],"21722659",[140,246,32,305,141,38],[161,389,46,263,162,38],16,[79,389,38,318,11,32],[392,393,41,273,394,38],"21721739",17,"pachico",[396,393,38,397,11,32],"21735484","commenter\u002Fneutral\u002Fidea",[399,393,38,397,394,38],"21741292",[],[402,407,412,416,421,425],{"id":403,"name":404,"points":405,"category":406},"21712403","Lucid Index \u002F Self Hosted Source",656,"dev_tools",{"id":408,"name":409,"points":410,"category":411},"21717022","AI Dungeon 2",584,"games",{"id":413,"name":414,"points":415,"category":411},"21719575","si78c",478,{"id":417,"name":418,"points":419,"category":420},"21757003","Kong",294,"finance_crypto",{"id":422,"name":423,"points":424,"category":406},"21742222","db",224,{"id":426,"name":427,"points":428,"category":429},"21751987","FATpick",190,"creative",false,"v2",{"id":433,"name":5,"line":6,"ai":430,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":434,"top":18,"kw":435,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":436,"url":9,"mix":437,"praise":87,"objection":122,"sub":21},21720881,0.16,[24,25,26,27],"5303350000005511133311000535335033551530",[18,31,32,33],1793990999151]