[{"data":1,"prerenderedAt":536},["ShallowReactive",2],{"project-42270389":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":46,"post_text":49,"what":50,"said":100,"maker_in_thread":245,"shape":253,"grid":256,"attempts":496,"same_week":497,"maker_shows":41,"maker_hidden":528,"reader_version":529,"card":530},"42270389","Vince","A self hosted alternative to Google Analytics","title","Show HN: Vince – A self hosted alternative to Google Analytics","https:\u002F\u002Fgithub.com\u002Fvinceanalytics\u002Fvince","github.com","gernest",1732848840,2024,283,86,230,3515,7,"legend","infrastructure","self-hosted web analytics","web_app",[24,25,26,27],"self hosted analytics","google analytics alternative","plausible alternative","web analytics","curious",-0.036,{"positive":31,"neutral":32,"mixed":33,"critical":31},9,28,2,48,{"pricing":36,"execution":38,"design":40,"docs":42,"performance":43,"privacy":44,"idea":45},{"positive":33,"critical":37},0,{"positive":33,"critical":39},3,{"positive":37,"critical":41},1,{"positive":37,"critical":33},{"positive":37,"critical":41},{"positive":37,"critical":41},{"positive":41,"critical":41},[39,39,39,47,47,47,41,39,41,39,37,47,41,48,41,37,47,37,37,39,47,39,37,39,41,39,33,37,37,37,37,37,39,41,39,41,39,37,41,47],5,4,"For the past 3 years I have been working on a Golang port of plausible analytics dashboard.\n\nvince is a single binary, single user with multiple website system with zero runtime dependency.\n\nKey featues:\n\n- Automatic TLS - Outbounds link tracking - File downloads tracking - 404 pages tracking - Custom event tracking\n\nAnd so much more, basically everything that you see on plausible dashboard except funnels and custom properties.\n\nYou can use vince as a drop in replacement for plausible for personal websites.\n\nThe goal is to make the plausible dashboard easily accessible  for people who like to ",{"problem":51,"audience":57,"pricing":64,"motivation":65,"time_to_build":70,"stack":74,"openness":97,"stage":98,"team_size":99},{"value":52,"source":53,"evidence":54},"Self-hosted website analytics without depending on Google Analytics","maker",[55],{"id":56},"post",{"value":58,"source":53,"evidence":59},"People who like to self host, owners of personal websites",[60,61],{"id":56},{"id":62,"by":11,"text":63},"42281951","This is one of the reason I created vince. For reference, the demo is hosted on a 6$ vultr instance, the last 3 days it handled about 11.9K pageviws with 4.3K unique visitors. I…",null,{"value":66,"source":53,"evidence":67},"Make the Plausible dashboard accessible to people who self host; cheaper than hosted Plausible",[68,69],{"id":56},{"id":62,"by":11,"text":63},{"value":71,"source":53,"evidence":72},"About 3 years of work",[73],{"id":56},[75,79,89,93],{"value":76,"source":53,"evidence":77},"Go",[78],{"id":56},{"value":80,"source":53,"evidence":81},"Pebble key-value store",[82,85],{"id":83,"by":11,"text":84},"42277096","Thanks, > Why protocol buffers ? They are very good for defining API boundaries, in vince we only use them for configuration and admin structure. We use Roaring Bitmap based…",{"id":86,"by":87,"text":88},"42272177","akshayshah","It uses Pebble, the key-value store that backs CockroachDB.",{"value":90,"source":53,"evidence":91},"Roaring Bitmap storage",[92],{"id":83,"by":11,"text":84},{"value":94,"source":53,"evidence":95},"Protocol Buffers",[96],{"id":83,"by":11,"text":84},"unknown","launched","solo",{"praise":101,"objections":125,"requests":169,"questions":189,"alternatives":208},[102,114],{"value":103,"source":104,"evidence":105},"Code quality and efficiency; runs on a $6 VPS","commenter",[106,110,111],{"id":107,"by":108,"text":109},"42274681","written-beyond","Code quality is pristine, really great job! I see that you've used protocol buffers, can you expand on why? I am aware of the benefits it offers but I think it adds a bit of…",{"id":62,"by":11,"text":63},{"id":112,"by":11,"text":113},"42284537","The demo, which survived HN hug of death is running on 6$ vultr instance. RAM : 1GB STORAGE: 25 GB so far bandwidth used is 3.6GB So, you can successful deploy vince on low spec…",{"value":115,"source":104,"evidence":116},"Single binary with zero runtime dependencies is easy to install",[117,121],{"id":118,"by":119,"text":120},"42280509","lomkju","Nice Work! Very easy to install and use. I deployed this on our cloud (excloud.in) in less than 2 mins. Anyone you can use the below k8s manifest to deploy it to their k8s…",{"id":122,"by":123,"text":124},"42271800","colesantiago","Great project keep it up it's good to see competition in this space. Plausible gets crazy expensive on their hosted option and it complex to setup (needs elixir + high memory…",[126,141,152,158],{"value":127,"source":104,"evidence":128},"Dashboard looks almost identical to Plausible",[129,133,137],{"id":130,"by":131,"text":132},"42273029","pdyc","Looks exactly like plausible, may be change the ui a bit to avoid legal issues.",{"id":134,"by":135,"text":136},"42323397","XCSme","That looks exactly like Plausible",{"id":138,"by":139,"text":140},"42271875","just-tom","The screenshot on your homepage looks very similar to plausible's https:\u002F\u002Fplausible.io\u002F which is also open-source analytics software. Is it based on it? What are the differences?…",{"value":142,"source":104,"evidence":143},"Privacy claims about IP hashing are questioned",[144,148],{"id":145,"by":146,"text":147},"42273586","chrismorgan","> Since IP addresses are considered personal data under GDPR, we anonymize them using a one-way cryptographic hash function. Um... hashing IPv4 addresses, even with salt, does…",{"id":149,"by":150,"text":151},"42273802","kadoban","The problem, in general with hashing IP addresses (especially ipv4) is that there's not that many of them. If I tell you the value is either 1 or 2, but I hashed it with sha256…",{"value":153,"source":104,"evidence":154},"Pebble storage raises data corruption concern",[155],{"id":156,"by":123,"text":157},"42272349","Just saw this notice: > WARNING: Pebble may silently corrupt data or behave incorrectly if used with a RocksDB database that uses a feature Pebble doesn't support. Caveat emptor!…",{"value":159,"source":104,"evidence":160},"Demo link broken or 404",[161,165],{"id":162,"by":163,"text":164},"42271147","rgbrgb","> Full dashboard demo hosted on 6$ vultr instance https:\u002F\u002Fdemo.vinceanalytics.com\u002Fshare\u002Fvinceanalytics.com\u002Fv1\u002F... 404 page not found",{"id":166,"by":167,"text":168},"42273155","notRobot","The dashboard demo isn't working :(",[170,177,184],{"value":171,"source":104,"evidence":172},"Setup docs showing how to add the tracking snippet to a site",[173],{"id":174,"by":175,"text":176},"42278029","slyall","Going through the docs I find you don't actually have a bit about how to make your website to use it. I mean I can work it would and it'll be obvious to proper front end…",{"value":178,"source":104,"evidence":179},"Dark mode for dashboard",[180],{"id":181,"by":182,"text":183},"42277232","sira04","Looks great! I found a small bug, if you click Expand in the Top Pages section, the Time on Page column has NaNs. Dark mode for the dashboard and showing realtime current…",{"value":185,"source":104,"evidence":186},"ClickHouse or Postgres backend option",[187,188],{"id":122,"by":123,"text":124},{"id":156,"by":123,"text":157},[190,201],{"value":191,"source":104,"evidence":192},"How unique visitors are calculated and whether it is GDPR compliant",[193,197],{"id":194,"by":195,"text":196},"42272190","t0mas88","It says GDPR compliant and no cookies on the project page. How are unique visitors calculated? And I'm assuming it can't link conversions to campaigns without some…",{"id":198,"by":199,"text":200},"42273230","beeb","At least for Plausible, they state this (https:\u002F\u002Fplausible.io\u002Fblog\u002Fgoogle-analytics-cookies): > Instead of tagging users with cookies, we count the number of unique IP addresses…",{"value":202,"source":104,"evidence":203},"Pricing or licensing plans",[204],{"id":205,"by":206,"text":207},"42276142","vextea","There seems to be some mentions of selling licenses (and pricing) in the source. What are the plans around that?…",[209,217,224,231,238],{"value":210,"source":104,"evidence":211},"Plausible",[212,213],{"id":122,"by":123,"text":124},{"id":214,"by":215,"text":216},"42274661","paradite","Not sure why I would use this over Plausible CE on docker. Does it consume less memory\u002FCPU? Also I am pretty sure Plausible CE doesn't limit number of sites \u002F events, unlike…",{"value":218,"source":104,"evidence":219},"GoatCounter",[220],{"id":221,"by":222,"text":223},"42273186","zoidb","My go-to self hosted GA alternative is goatcounter https:\u002F\u002Fwww.goatcounter.com. It would be interesting to know what advantages it has over it.",{"value":225,"source":104,"evidence":226},"Umami",[227],{"id":228,"by":229,"text":230},"42275758","gonafr","How this compares to umami (https:\u002F\u002Fumami.is\u002F)?",{"value":232,"source":104,"evidence":233},"Matomo",[234],{"id":235,"by":236,"text":237},"42271134","8ig8","Matomo is another one… https:\u002F\u002Fmatomo.org\u002F",{"value":239,"source":104,"evidence":240},"Shynet",[241],{"id":242,"by":243,"text":244},"42281248","QuasarLogic","can we compare it with Shynet? https:\u002F\u002Fgithub.com\u002Fmilesmcc\u002Fshynet Shynet is similarly self hostable, and has a tiny footprint..",{"comments":246,"answered":39,"key":247},6,[248,251,252],{"id":249,"text":250},"42277016","When I started working on vince, I thought I could bootstrap a sustainable business, that was about 3 years ago. My dream for a business is practically dead now. That snippet is…",{"id":83,"text":84},{"id":62,"text":63},{"commenters":254,"max_depth":18,"maker_replies":246,"first_comment_mins":246,"lifespan_hours":255},62,190,[257,259,263,267,270,272,274,276,279,281,283,285,287,291,293,297,298,300,302,305,307,309,312,315,319,321,322,324,327,331,335,336,338,341,344,347,351,353,357,360,362,364,366,370,373,376,379,381,385,387,390,395,397,400,403,406,408,409,411,415,417,420,422,424,427,429,432,434,437,440,443,445,448,453,458,462,466,468,472,476,479,481,483,485,489,493],[221,37,39,258,222,37],"project\u002Fneutral\u002Fnone",[260,37,37,261,262,37],"42273401","commenter\u002Fneutral\u002Fdesign","james-bcn",[264,37,37,265,266,37],"42274413","other\u002Fneutral\u002Fnone","TravisPeacock",[268,37,39,258,269,37],"42275037","huhtenberg",[271,37,39,258,222,37],"42281024",[205,41,39,273,206,37],"project\u002Fneutral\u002Fpricing",[249,41,37,275,11,41],"maker\u002Fneutral\u002Fpricing",[277,41,47,278,206,37],"42277658","maker\u002Fpositive\u002Fnone",[107,33,47,280,108,37],"maker\u002Fpositive\u002Fexecution",[83,33,37,282,11,41],"maker\u002Fneutral\u002Fexecution",[284,33,47,278,108,37],"42277592",[138,39,39,286,139,37],"project\u002Fneutral\u002Fdesign",[288,39,37,289,290,37],"42273848","other\u002Fneutral\u002Fdesign","dewey",[162,48,41,292,163,37],"project\u002Fcritical\u002Fdocs",[294,48,39,295,296,37],"42271957","project\u002Fneutral\u002Fdocs","thangngoc89",[134,48,39,286,135,37],[299,48,39,286,296,37],"42326212",[130,47,41,301,131,37],"project\u002Fcritical\u002Fdesign",[303,47,39,286,304,37],"42273402","carlosjobim",[306,47,37,289,290,37],"42273855",[308,47,39,286,269,37],"42275095",[310,47,37,265,311,37],"42276048","rkuodys",[313,47,37,289,314,37],"42274501","serial_dev",[316,47,37,317,318,37],"42276586","commenter\u002Fneutral\u002Fnone","NelsonMinar",[122,246,47,320,123,37],"project\u002Fpositive\u002Fpricing",[174,18,41,292,175,37],[228,323,39,258,229,37],8,[325,323,39,286,326,37],"42278629","arcastroe",[328,31,47,329,330,37],"42272132","project\u002Fpositive\u002Fnone","brokegrammer",[332,31,39,333,334,37],"42272172","project\u002Fneutral\u002Fexecution","tricked",[86,31,39,258,87,37],[156,31,41,337,123,37],"project\u002Fcritical\u002Fexecution",[339,31,37,317,340,37],"42272460","rickette",[342,31,37,317,343,37],"42294335","kamikazechaser",[345,31,37,317,346,37],"42273520","dangoodmanUT",[348,349,47,320,350,37],"42281231",10,"kukkeliskuu",[62,349,37,352,11,41],"maker\u002Fpositive\u002Fpricing",[354,349,37,355,356,37],"42282712","other\u002Fneutral\u002Fpricing","openplatypus",[358,349,37,355,359,37],"42287069","maeil",[361,349,37,355,350,37],"42295213",[363,349,37,265,359,37],"42304062",[365,349,37,265,350,37],"42346360",[367,368,39,286,369,37],"42272331",11,"lovegrenoble",[371,368,39,258,372,37],"42272419","__jonas",[118,374,47,375,119,37],12,"project\u002Fpositive\u002Fexecution",[377,374,37,378,11,41],"42282123","maker\u002Fneutral\u002Fnone",[380,374,39,295,119,37],"42283740",[382,383,37,265,384,37],"42270416",13,"cebert",[386,383,37,265,11,41],"42270503",[388,383,37,265,389,37],"42276309","reincoder",[391,392,39,393,394,37],"42271429",14,"project\u002Fneutral\u002Fperformance","aaronbrethorst",[112,392,37,396,11,41],"maker\u002Fpositive\u002Fperformance",[214,398,41,399,215,37],15,"project\u002Fcritical\u002Fperformance",[194,401,39,402,195,37],16,"project\u002Fneutral\u002Fprivacy",[404,401,39,402,405,37],"42272691","withinboredom",[407,401,39,402,131,37],"42273043",[198,401,39,402,199,37],[145,401,41,410,146,37],"project\u002Fcritical\u002Fprivacy",[412,401,37,413,414,37],"42273741","commenter\u002Fneutral\u002Fprivacy","gizzlon",[149,401,37,416,150,37],"commenter\u002Fcritical\u002Fprivacy",[418,401,37,419,146,37],"42273819","other\u002Fneutral\u002Fprivacy",[421,401,37,413,150,37],"42273781",[423,401,37,416,146,37],"42273911",[425,401,37,413,426,37],"42274357","tingletech",[428,401,37,413,146,37],"42280039",[430,401,37,419,431,37],"42273790","Semaphor",[433,401,37,419,150,37],"42274486",[435,401,37,419,436,37],"42274442","jszymborski",[438,401,39,402,439,37],"42293974","alkonaut",[441,401,37,419,442,37],"42283718","awongh",[444,401,37,419,195,37],"42311889",[181,446,39,447,182,37],17,"project\u002Fmixed\u002Fexecution",[449,450,41,451,452,37],"42274365",18,"project\u002Fcritical\u002Fidea","manishsharan",[454,455,39,456,457,37],"42275239",19,"project\u002Fneutral\u002Fidea","skeptrune",[459,460,39,447,461,37],"42272645",20,"samdung",[463,464,41,337,465,37],"42277532",21,"cchance",[242,467,39,456,243,37],22,[469,470,37,265,471,37],"42273271",23,"cpursley",[473,474,39,393,475,37],"42273557",24,"rasso",[477,474,37,265,478,37],"42273611","diggan",[480,474,37,265,475,37],"42274342",[166,482,41,337,167,37],25,[235,484,39,456,236,37],26,[486,487,39,456,488,37],"42273282",27,"Oras",[490,487,47,491,492,37],"42273521","project\u002Fpositive\u002Fidea","rrr_oh_man",[494,32,47,278,495,37],"42272271","drchaim",[],[498,503,508,513,518,523],{"id":499,"name":500,"points":501,"category":502},"42289690","Markwhen",912,"productivity",{"id":504,"name":505,"points":506,"category":507},"42284412","Privastead",551,"security_privacy",{"id":509,"name":510,"points":511,"category":512},"42320032","Outerbase Studio",356,"dev_tools",{"id":514,"name":515,"points":516,"category":517},"42311031","30cc",275,"languages",{"id":519,"name":520,"points":521,"category":522},"42261909","Voice-Pro",271,"creative",{"id":524,"name":525,"points":526,"category":527},"42295792","SeekStorm",245,"data",false,"v2",{"id":531,"name":5,"line":6,"ai":528,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":532,"top":18,"kw":533,"maker":11,"domain":10,"tier":19,"attempts":37,"strip":534,"url":9,"mix":535,"praise":103,"objection":127,"sub":21},42270389,-0.04,[24,25,26,27],"3335551313051410500353031320000031313015",[31,32,33,31],1794036665074]