Re: Toolcounter – a privacy-friendly hit co unter for Toolforge tools
Travis Briggs via Wikitech-l <[email protected]> Thu, 21 May 2026 21:24:10 -0700
| Newsgroups | gmane.science.linguistics.wikipedia.technical |
|---|---|
| Message-ID | <CAMPYpA4=U6VgBepZuoShE0uDAG5FP-b74fZN6gJO3HFY+ACvcQ@mail.gmail.com> |
--===============1582785855655529567== Content-Type: multipart/alternative; boundary="0000000000003279e50652606782" --0000000000003279e50652606782 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable viewstoolforgeorgtools from the people who brought you expertsexchange.com (view stool for georg tools icymi) =F0=9F=98=82 Having people use your stuff is amazing! That's probably why all those weirdo non-technical editors contribute in the first place =F0=9F=A4=94 -Travis On Thu, May 21, 2026 at 9:01=E2=80=AFPM rtnF via Wikitech-l < [email protected]> wrote: > Cool. Thank you for sharing this. > > It=E2=80=99s pretty motivating to know that somebody out there is actuall= y using my > tools <https://rtnf.substack.com/p/viewstoolforgeorgtools> :) > > On Thu, May 21, 2026 at 11:46=E2=80=AFPM Jinoy Tom Jacob via Wikitech-l < > [email protected]> wrote: > >> The toolviews API is cool. Have done a small attempt couple of months ag= o >> during a workshop for visulize the views based on this API at >> https://views.toolforge.org/tools/ >> >> Best Regards, >> >> *Jinoy * >> Email: [email protected] >> >> >> *Please don=E2=80=99t print this e-mail unless you really need to.Every = 3000 >> sheets consume a tree. Conserve Trees for a better tomorrow!* >> >> >> On Thu, 21 May 2026 at 22:11, Sohom Datta via Wikitech-l < >> [email protected]> wrote: >> >>> @Bd808: Ooh, this is nice, I did not know about the existence of this >>> service! >>> >>> I wonder if there is an easy way for the tool view to tell if a view wa= s >>> from a bot? >>> >>> Regards, >>> Sohom Datta >>> --- >>> Open-source contributor @Wikimedia >>> >>> >>> On Thu, May 21, 2026 at 12:15=E2=80=AFPM Bryan Davis via Wikitech-l < >>> [email protected]> wrote: >>> >>>> On Wed, May 20, 2026 at 11:45=E2=80=AFPM Suyash Dwivedi via Wikitech-l >>>> <[email protected]> wrote: >>>> > >>>> > Hi everyone, >>>> > >>>> > I've always been curious about how many people actually visit my >>>> Toolforge tools - and I suspect I'm not alone. So I built Toolcounter = ( >>>> https://toolcounter.toolforge.org/), a lightweight, privacy-friendly >>>> hit counter designed specifically for Toolforge-hosted tools. >>>> > >>>> > What it tracks >>>> > >>>> > =F0=9F=93=84 Page views - counted on every page load (including refr= eshes). >>>> Good for total traffic. >>>> > =F0=9F=91=A4 Sessions (unique visit approximation) =E2=80=94 uses se= ssionStorage in the >>>> visitor's browser. First open in a tab =3D 1 session. Refresh =3D not = counted >>>> again. New tab =3D counted again. No cookies, no IP, no personal data = stored. >>>> > >>>> > Both counts appear separately on the dashboard with a per-day bar >>>> chart. >>>> > >>>> > Quick integration (replace YOUR_TOOL and PAGE) >>>> > >>>> > Option 1 - SVG badge (no JS, image only, shows page views): >>>> > <img src=3D" >>>> https://toolcounter.toolforge.org/badge.php?tool=3DYOUR_TOOL&page=3DPA= GE" >>>> alt=3D"Page views"> >>>> > >>>> > Option 2 - JS embed (shows both views + unique sessions): >>>> > =F0=9F=91=81 Views: <span id=3D"tc-views"></span> >>>> > =F0=9F=91=A4 Unique: <span id=3D"tc-sessions"></span> >>>> > <script src=3D" >>>> https://toolcounter.toolforge.org/embed.js.php?tool=3DYOUR_TOOL&page= =3DPAGE >>>> "></script> >>>> > >>>> > An embed code generator is available on the homepage. >>>> > >>>> > Privacy >>>> > The database stores zero personal data, only anonymous counters per >>>> (tool, page) pair. No cookies are set. No IP addresses, User-Agent str= ings, >>>> or usernames are ever written to the database. Full privacy policy: >>>> https://toolcounter.toolforge.org/privacy.php >>>> > >>>> > Source code is publicly available and open for audit. >>>> >>>> Seeing many flowers bloom is great. There is also a system you can use >>>> at https://toolviews.toolforge.org/api/ which attempts to count 2xx >>>> status responses ("hits") for all tools by parsing the access logs >>>> generated at the Toolforge reverse proxy service. That system does not >>>> currently have a nice UI, but it does have data going back to at least >>>> 2019 and does not require inserting tracking tokens in your pages. >>>> >>>> Bryan >>>> -- >>>> Bryan Davis Wikimedia Foundatio= n >>>> Principal Software Engineer Boise, ID US= A >>>> [[m:User:BDavis (WMF)]] irc: bd80= 8 >>>> _______________________________________________ >>>> Wikitech-l mailing list -- [email protected] >>>> To unsubscribe send an email to [email protected] >>>> >>>> https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia= .org/ >>> >>> _______________________________________________ >>> Wikitech-l mailing list -- [email protected] >>> To unsubscribe send an email to [email protected] >>> >>> https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.= org/ >> >> _______________________________________________ >> Wikitech-l mailing list -- [email protected] >> To unsubscribe send an email to [email protected] >> >> https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.o= rg/ > > _______________________________________________ > Wikitech-l mailing list -- [email protected] > To unsubscribe send an email to [email protected] > https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.or= g/ --0000000000003279e50652606782 Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: quoted-printable <div dir=3D"ltr">viewstoolforgeorgtools<div><br></div><div>from the people = who brought you=C2=A0<a href=3D"http://expertsexchange.com">expertsexchange= .com</a> (view stool for georg tools icymi)</div><div><br></div><div>=F0=9F= =98=82</div><div><br></div><div>Having people use your stuff is amazing! Th= at's probably why all those weirdo non-technical editors contribute in = the first place=C2=A0=F0=9F=A4=94</div><div><br></div><div>-Travis</div></d= iv><br><div class=3D"gmail_quote gmail_quote_container"><div dir=3D"ltr" cl= ass=3D"gmail_attr">On Thu, May 21, 2026 at 9:01=E2=80=AFPM rtnF via Wikitec= h-l <<a href=3D"mailto:[email protected]">wikitech-l@lists.= wikimedia.org</a>> wrote:<br></div><blockquote class=3D"gmail_quote" sty= le=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddi= ng-left:1ex"><div dir=3D"ltr"><p>Cool. Thank you for sharing this.</p><p>It= =E2=80=99s pretty motivating to know that somebody out there is actually us= ing <a href=3D"https://rtnf.substack.com/p/viewstoolforgeorgtools" target= =3D"_blank">my tools</a> :)</p></div><br><div class=3D"gmail_quote"><div di= r=3D"ltr" class=3D"gmail_attr">On Thu, May 21, 2026 at 11:46=E2=80=AFPM Jin= oy Tom Jacob via Wikitech-l <<a href=3D"mailto:[email protected]= a.org" target=3D"_blank">[email protected]</a>> wrote:<br><= /div><blockquote class=3D"gmail_quote" style=3D"margin:0px 0px 0px 0.8ex;bo= rder-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir=3D"ltr"><di= v>The toolviews API is cool. Have done a small attempt=C2=A0couple of month= s ago during a workshop for visulize the views based on this API at=C2=A0<a= href=3D"https://views.toolforge.org/tools/" target=3D"_blank">https://view= s.toolforge.org/tools/</a></div><div><br></div><div>Best Regards,</div><div= ><div dir=3D"ltr" class=3D"gmail_signature"><div dir=3D"ltr"><div dir=3D"lt= r"><div dir=3D"ltr"><div dir=3D"ltr"><div dir=3D"ltr" style=3D"font-size:sm= all"><div style=3D"color:rgb(136,136,136)"><b style=3D"color:rgb(34,34,34)"= >Jinoy=C2=A0<br></b><div style=3D"color:rgb(34,34,34)">Email:=C2=A0<a href= =3D"mailto:[email protected]" style=3D"color:rgb(17,85,204)" target= =3D"_blank">[email protected]</a><br></div></div><div style=3D"colo= r:rgb(34,34,34)"><br></div><div><i><font color=3D"#38761d"><span style=3D"f= ont-size:12.8px">Please don=E2=80=99t print this e-mail unless you really n= eed to.</span><br style=3D"font-size:12.8px"><span style=3D"font-size:12.8p= x">Every 3000 sheets consume a tree. Conserve Trees for a better=C2=A0</spa= n><span style=3D"font-size:12.8px">tomorrow</span><span style=3D"font-size:= 12.8px">!</span></font></i></div></div></div></div></div></div></div></div>= <br></div><br><div class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_at= tr">On Thu, 21 May 2026 at 22:11, Sohom Datta via Wikitech-l <<a href=3D= "mailto:[email protected]" target=3D"_blank">wikitech-l@lists.= wikimedia.org</a>> wrote:<br></div><blockquote class=3D"gmail_quote" sty= le=3D"margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);paddi= ng-left:1ex"><div dir=3D"ltr"><div><div class=3D"gmail_default" style=3D"fo= nt-family:verdana,sans-serif">@Bd808: Ooh, this is nice, I did not know <sp= an style=3D"border-style:none;background:none">about the existence of this = service!</span></div><div class=3D"gmail_default" style=3D"font-family:verd= ana,sans-serif"><br></div><div class=3D"gmail_default" style=3D"font-family= :verdana,sans-serif">I wonder if there is an easy way for=C2=A0the tool vie= w to tell if a view <span style=3D"border-style:none;background:none">was</= span> from a bot?</div><br clear=3D"all"></div><div><div dir=3D"ltr" class= =3D"gmail_signature"><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir= =3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"ltr"><div><div dir=3D"ltr">= <div><font face=3D"verdana, sans-serif" color=3D"#666666">Regards,</font></= div><div><font face=3D"verdana, sans-serif" color=3D"#666666">Sohom Datta</= font><span></span></div><div><font face=3D"verdana, sans-serif" color=3D"#6= 66666">---</font></div><div><font face=3D"verdana, sans-serif" color=3D"#66= 6666">Open-source contributor @Wikimedia</font></div></div></div></div></di= v></div></div></div></div></div></div></div></div></div><br></div><br><div = class=3D"gmail_quote"><div dir=3D"ltr" class=3D"gmail_attr">On Thu, May 21,= 2026 at 12:15=E2=80=AFPM Bryan Davis via Wikitech-l <<a href=3D"mailto:= [email protected]" target=3D"_blank">[email protected]= a.org</a>> wrote:<br></div><blockquote class=3D"gmail_quote" style=3D"ma= rgin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:= 1ex">On Wed, May 20, 2026 at 11:45=E2=80=AFPM Suyash Dwivedi via Wikitech-l= <br> <<a href=3D"mailto:[email protected]" target=3D"_blank">wik= [email protected]</a>> wrote:<br> ><br> > Hi everyone,<br> ><br> > I've always been curious about how many people actually visit my T= oolforge tools - and I suspect I'm not alone. So I built Toolcounter (<= a href=3D"https://toolcounter.toolforge.org/" rel=3D"noreferrer" target=3D"= _blank">https://toolcounter.toolforge.org/</a>), a lightweight, privacy-fri= endly hit counter designed specifically for Toolforge-hosted tools.<br> ><br> > What it tracks<br> ><br> > =F0=9F=93=84 Page views - counted on every page load (including refres= hes). Good for total traffic.<br> > =F0=9F=91=A4 Sessions (unique visit approximation) =E2=80=94 uses sess= ionStorage in the visitor's browser. First open in a tab =3D 1 session.= Refresh =3D not counted again. New tab =3D counted again. No cookies, no I= P, no personal data stored.<br> ><br> > Both counts appear separately on the dashboard with a per-day bar char= t.<br> ><br> > Quick integration (replace YOUR_TOOL and PAGE)<br> ><br> > Option 1 - SVG badge (no JS, image only, shows page views):<br> > <img src=3D"<a href=3D"https://toolcounter.toolforge.org/badge= .php?tool=3DYOUR_TOOL&page=3DPAGE" rel=3D"noreferrer" target=3D"_blank"= >https://toolcounter.toolforge.org/badge.php?tool=3DYOUR_TOOL&page=3DPA= GE</a>" alt=3D"Page views"><br> ><br> > Option 2 - JS embed (shows both views + unique sessions):<br> > =F0=9F=91=81 Views: <span id=3D"tc-views"></span>= ;<br> > =F0=9F=91=A4 Unique: <span id=3D"tc-sessions"></spa= n><br> > <script src=3D"<a href=3D"https://toolcounter.toolforge.org/em= bed.js.php?tool=3DYOUR_TOOL&page=3DPAGE" rel=3D"noreferrer" target=3D"_= blank">https://toolcounter.toolforge.org/embed.js.php?tool=3DYOUR_TOOL&= page=3DPAGE</a>"></script><br> ><br> > An embed code generator is available on the homepage.<br> ><br> > Privacy<br> > The database stores zero personal data, only anonymous counters per (t= ool, page) pair. No cookies are set. No IP addresses, User-Agent strings, o= r usernames are ever written to the database. Full privacy policy: <a href= =3D"https://toolcounter.toolforge.org/privacy.php" rel=3D"noreferrer" targe= t=3D"_blank">https://toolcounter.toolforge.org/privacy.php</a><br> ><br> > Source code is publicly available and open for audit.<br> <br> Seeing many flowers bloom is great. There is also a system you can use<br> at <a href=3D"https://toolviews.toolforge.org/api/" rel=3D"noreferrer" targ= et=3D"_blank">https://toolviews.toolforge.org/api/</a> which attempts to co= unt 2xx<br> status responses ("hits") for all tools by parsing the access log= s<br> generated at the Toolforge reverse proxy service. That system does not<br> currently have a nice UI, but it does have data going back to at least<br> 2019 and does not require inserting tracking tokens in your pages.<br> <br> Bryan<br> -- <br> Bryan Davis=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 Wikimedia Foundation<br> Principal Software Engineer=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0= =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0Boise, ID US= A<br> [[m:User:BDavis (WMF)]]=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2= =A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 = =C2=A0 irc: bd808<br> _______________________________________________<br> Wikitech-l mailing list -- <a href=3D"mailto:[email protected]= " target=3D"_blank">[email protected]</a><br> To unsubscribe send an email to <a href=3D"mailto:[email protected]= kimedia.org" target=3D"_blank">[email protected]</a><br> <a href=3D"https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wik= imedia.org/" rel=3D"noreferrer" target=3D"_blank">https://lists.wikimedia.o= rg/postorius/lists/wikitech-l.lists.wikimedia.org/</a></blockquote></div> _______________________________________________<br> Wikitech-l mailing list -- <a href=3D"mailto:[email protected]= " target=3D"_blank">[email protected]</a><br> To unsubscribe send an email to <a href=3D"mailto:[email protected]= kimedia.org" target=3D"_blank">[email protected]</a><br> <a href=3D"https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wik= imedia.org/" rel=3D"noreferrer" target=3D"_blank">https://lists.wikimedia.o= rg/postorius/lists/wikitech-l.lists.wikimedia.org/</a></blockquote></div> _______________________________________________<br> Wikitech-l mailing list -- <a href=3D"mailto:[email protected]= " target=3D"_blank">[email protected]</a><br> To unsubscribe send an email to <a href=3D"mailto:[email protected]= kimedia.org" target=3D"_blank">[email protected]</a><br> <a href=3D"https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wik= imedia.org/" rel=3D"noreferrer" target=3D"_blank">https://lists.wikimedia.o= rg/postorius/lists/wikitech-l.lists.wikimedia.org/</a></blockquote></div> _______________________________________________<br> Wikitech-l mailing list -- <a href=3D"mailto:[email protected]= " target=3D"_blank">[email protected]</a><br> To unsubscribe send an email to <a href=3D"mailto:[email protected]= kimedia.org" target=3D"_blank">[email protected]</a><br> <a href=3D"https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wik= imedia.org/" rel=3D"noreferrer" target=3D"_blank">https://lists.wikimedia.o= rg/postorius/lists/wikitech-l.lists.wikimedia.org/</a></blockquote></div> --0000000000003279e50652606782-- --===============1582785855655529567== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline _______________________________________________ Wikitech-l mailing list -- [email protected] To unsubscribe send an email to [email protected] https://lists.wikimedia.org/postorius/lists/wikitech-l.lists.wikimedia.org/ --===============1582785855655529567==--