Giter Club home page Giter Club logo

plausible / analytics Goto Github PK

View Code? Open in Web Editor NEW
18.3K 132.0 966.0 167.04 MB

Simple, open source, lightweight (< 1 KB) and privacy-friendly web analytics alternative to Google Analytics.

Home Page: https://plausible.io

License: GNU Affero General Public License v3.0

Elixir 83.55% CSS 0.32% JavaScript 9.07% HTML 6.66% Shell 0.09% Dockerfile 0.06% Makefile 0.07% HCL 0.19%
analytics privacy elixir phoenix postgresql tailwindcss clickhouse plausible-analytics google-analytics web-analytics

analytics's Introduction

Plausible Analytics

Plausible Analytics

Simple Metrics | Lightweight Script | Privacy Focused | Open Source | Docs | Contributing

Plausible Analytics is an easy to use, lightweight (< 1 KB), open source and privacy-friendly alternative to Google Analytics. It doesn’t use cookies and is fully compliant with GDPR, CCPA and PECR. You can self-host Plausible Community Edition or have us manage Plausible Analytics for you in the cloud. Here's the live demo of our own website stats. Made and hosted in the EU 🇪🇺

We are dedicated to making web analytics more privacy-friendly. Our mission is to reduce corporate surveillance by providing an alternative web analytics tool which doesn’t come from the AdTech world. We are completely independent and solely funded by our subscribers.

Plausible Analytics

Why Plausible?

Here's what makes Plausible a great Google Analytics alternative and why we're trusted by 12,000+ paying subscribers to deliver their website and business insights:

  • Clutter Free: Plausible Analytics provides simple web analytics and it cuts through the noise. No layers of menus, no need for custom reports. Get all the important insights on one single page. No training necessary.
  • GDPR/CCPA/PECR compliant: Measure traffic, not individuals. No personal data or IP addresses are ever stored in our database. We don't use cookies or any other persistent identifiers. Read more about our data policy
  • Lightweight: Plausible Analytics works by loading a script on your website, like Google Analytics. Our script is 45x smaller, making your website quicker to load. You can also send events directly to our events API.
  • Email or Slack reports: Keep an eye on your traffic with weekly and/or monthly email or Slack reports. You can also get traffic spike notifications.
  • Invite team members and share stats: You have the option to be transparent and open your web analytics to everyone. Your website stats are private by default but you can choose to make them public so anyone with your custom link can view them. You can invite team members and assign user roles too.
  • Define key goals and track conversions: Create custom events with custom dimensions to track conversions and attribution to understand and identify the trends that matter. Includes easy ways to track outbound link clicks, file downloads and 404 error pages.
  • Search keywords: Integrate your dashboard with Google Search Console to get the most accurate reporting on your search keywords.
  • SPA support: Plausible is built with modern web frameworks in mind and it works automatically with any pushState based router on the frontend. We also support frameworks that use the URL hash for routing. See our documentation.
  • Smooth transition from Google Analytics: There's a realtime dashboard, entry pages report and integration with Search Console. You can track your paid campaigns and conversions. You can invite team members. You can even import your historical Google Analytics stats. Learn how to get the most out of your Plausible experience and join thousands who have already migrated from Google Analytics.

Interested to learn more? Read more on our website, learn more about the team and the goals of the project on our about page or explore the documentation.

Why is Plausible Analytics Cloud not free like Google Analytics?

Plausible Analytics is an independently owned and actively developed project. To keep the project development going, to stay in business, to continue putting effort into building a better product and to cover our costs, we need to charge a fee.

Google Analytics is free because Google has built their company and their wealth by collecting and analyzing huge amounts of personal information from web users and using these personal and behavioral insights to sell advertisements.

Plausible has no part in that business model. No personal data is being collected and analyzed either. With Plausible, you 100% own and control all of your website data. This data is not being shared with or sold to any third-parties.

We choose the subscription business model rather than the business model of surveillance capitalism. See reasons why we believe you should stop using Google Analytics on your website.

Getting started with Plausible

The easiest way to get started with Plausible Analytics is with our official managed service in the cloud. It takes 2 minutes to start counting your stats with a worldwide CDN, high availability, backups, security and maintenance all done for you by us.

In order to be compliant with the GDPR and the Schrems II ruling, all visitor data for our managed service in the cloud is exclusively processed on servers and cloud infrastructure owned and operated by European providers. Your website data never leaves the EU.

Our managed hosting can save a substantial amount of developer time and resources. For most sites this ends up being the best value option and the revenue goes to funding the maintenance and further development of Plausible. So you’ll be supporting open source software and getting a great service!

Can Plausible be self-hosted?

Plausible is open source web analytics and we have a free as in beer and self-hosted solution called Plausible Community Edition (CE). Here are the differences between Plausible Analytics managed hosting in the cloud and the Plausible CE:

Plausible Analytics Cloud Plausible Community Edition
Infrastructure management Easy and convenient. It takes 2 minutes to start counting your stats with a worldwide CDN, high availability, backups, security and maintenance all done for you by us. We manage everything so you don’t have to worry about anything and can focus on your stats. You do it all yourself. You need to get a server and you need to manage your infrastructure. You are responsible for installation, maintenance, upgrades, server capacity, uptime, backup, security, stability, consistency, loading time and so on.
Release schedule Continuously developed and improved with new features and updates multiple times per week. It's a long term release published twice per year so latest features and improvements won't be immediately available.
Premium features All features available as listed in our pricing plans. Selected premium features such as funnels and ecommerce revenue goals are not available as we aim to ensure a protective barrier around our cloud offering.
Bot filtering Advanced bot filtering for more accurate stats. Our algorithm detects and excludes non-human traffic patterns. We also exclude known bots by the User-Agent header and filter out traffic from data centers and referrer spam domains. Basic bot filtering that targets the most common non-human traffic based on the User-Agent header and referrer spam domains.
Server location All visitor data is exclusively processed on EU-owned cloud infrastructure. We keep your site data on a secure, encrypted and green energy powered server in Germany. This ensures that your site data is protected by the strict European Union data privacy laws and ensures compliance with GDPR. Your website data never leaves the EU. You have full control and can host your instance on any server in any country that you wish. Host it on a server in your basement or host it with any cloud provider wherever you want, even those that are not GDPR compliant.
Data portability You see all your site stats and metrics on our modern-looking, simple to use and fast loading dashboard. You can only see the stats aggregated in the dashboard. You can download the stats using the CSV export, stats API or tools such as the Data Studio Connector. Do you want access to the raw data? Self-hosting gives you that option. You can take the data directly from the ClickHouse database.
Premium support Real support delivered by real human beings who build and maintain Plausible. Premium support is not included. CE is community supported only.
Costs There's a cost associated with providing an analytics service so we charge a subscription fee. We choose the subscription business model rather than the business model of surveillance capitalism. Your money funds further development of Plausible. You need to pay for your server, CDN, backups and whatever other cost there is associated with running the infrastructure. You never have to pay any fees to us. Your money goes to 3rd party companies with no connection to us.

Interested in self-hosting Plausible CE on your server? Take a look at our Plausible CE installation instructions.

Plausible CE is a community supported project and there are no guarantees that you will get support from the creators of Plausible to troubleshoot your self-hosting issues. There is a community supported forum where you can ask for help.

Our only source of funding is our premium, managed service for running Plausible in the cloud.

Technology

Plausible Analytics is a standard Elixir/Phoenix application backed by a PostgreSQL database for general data and a Clickhouse database for stats. On the frontend we use TailwindCSS for styling and React to make the dashboard interactive.

Contributors

For anyone wishing to contribute to Plausible, we recommend taking a look at our contributor guide.

Feedback & Roadmap

We welcome feedback from our community. We have a public roadmap driven by the features suggested by the community members. Take a look at our feedback board. Please let us know if you have any requests and vote on open issues so we can better prioritize.

To stay up to date with all the latest news and product updates, make sure to follow us on X (formerly Twitter), LinkedIn or Mastodon.

License & Trademarks

Plausible CE is open source under the GNU Affero General Public License Version 3 (AGPLv3) or any later version. You can find it here.

To avoid issues with AGPL virality, we've released the JavaScript tracker which gets included on your website under the MIT license. You can find it here.

Copyright (c) 2018-present Plausible Insights OÜ. Plausible Analytics name and logo are trademarks of Plausible Insights OÜ. Please see our trademark guidelines for info on acceptable usage.

analytics's People

Contributors

aerosol avatar andreamazza89 avatar bhavin192 avatar birjj avatar bobymcbobs avatar cnkk avatar dependabot[bot] avatar djanda97 avatar happysalada avatar kianmeng avatar kolaente avatar l2dy avatar m-col avatar maco avatar macobo avatar manusajith avatar maybethisisru avatar metmarkosaric avatar oliver-kriska avatar realorangeone avatar ro-savage avatar robertjoonas avatar ruslandoga avatar sashaafm avatar shornuk avatar tckb avatar ukutaht avatar vigasaurus avatar vinibrsl avatar zoldar avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

analytics's Issues

Option to disble registration

It'd be good to be able to disable registration on self-hosted instances, so people can't create accounts on private instances.

Re-order websites on landing

"i have quite a few websites and i would like to change my landing page. i would like to order it such that the important sites are on top and the open source projects are on the bottom. currently there does not seem to be a UI element for this."

(imported from the old roadmap)

Add more details in HOSTING.md

In HOSTING.md you have written about the hosting setup you are using with Digital Ocean. It would be nice to have details about what kind of traffic that setup is handling right now.

Disable subscription pipeline when selfhosting

It'd be great to disable the subscription workflow entirely when running self hosted. A 100 year free trial is definitely a quick way of implementing (and so generous 😉), but it'd be nice if it were removed.

Specifically, the trial box on the top right, the "Subscription Plan" box in settings, and any integration with upstream payment.

API Documentation for Android SDK

First off, thanks for working on this! 👏 As a privacy-conscious person, I for one appreciate it.

I wanted to see if you had any API documentation available, as I'd like to build an Android SDK for use of Plausible in some of my apps. Many of the reasons for tracking user interactions with a website apply to an app as well, and I'd like to help provide a nice alternative to Google Analytics for mobile developers as well (at least on Android). I don't imagine you want to take on the burden of supporting an official Android SDK but I'd love to put together an unofficial one an perhaps collaborate if you're interested.

Linkify the top pages

Hello, we just enabled our public dashboard at https://plausible.io/kitspace.org/ (looks great!)

For our use, I think it would be cool if people could click on the top pages: i.e. go "oh what's this, it seems to be very popular" and go check out the page on our site.

Ability to add metadata to an event

"When sending an event, it would be nice to attach arbitrary metadata to it. For example, I could send a “SignUp” event but add a formName property as metadata to track which sign up form they used. i.e { formName: “footer” } or { formName: “popup” }

Also need the ability to sort events by that metadata in the dashboard UI"

Update: Metadata for goals is now live! See instructions here: https://docs.plausible.io/custom-event-goals#using-custom-props

Add iOS icon or create an iOS app

"I’ve added Plausible to my home screen, but the website doesn’t have an iOS icon. Creating a simple iOS app using a web view would also be nice.

This would be much appreciated and would take about 5 minutes. Just create a PNG (512x512) file in the root of the site named: apple-touch-icon.png with the apps icon. Done.

I’d recommend this, if you haven’t yet seen it: https://realfavicongenerator.net/"

(imported from the old roadmap)

Option to not require authentication at all

Our self hosted version is behind a network-level authentication wall already, it would be nice to not require additional accounts.

An easy way perhaps is to automatically sign into the default account and disable the sign out option?

P.S. Thank you thank you so much for supporting open source efforts <3

Cannot delete account

Hi there,

I am experiencing the following behavior:

  1. created an account
  2. added a website, added your script to my website
  3. tested website, noticed you do use cookies despite advertising you don't, so felt tricked
  4. clicked delete account, got message "account cannot be deleted",
  5. account still there, but website disappeared in plausible account
  6. cannot recreate website because it seems it wasn't actually deleted
  7. ...and cannot delete account either.

Thanks,
Daniel

See users flow inside the Website

One of the main reasons for me to want Analytics is to see the users flow inside the Website itself, so that I can tailor it to the way the users are actually using it. The way I did it previously (when I had Google Analytics) was to have a Sankey Diagram which showed me how many users were flowing from one page to another. Is this something supported by Plausible or planned to be supported at some point?

Details:
For this to be useful for larger websites, I will describe how I would imagine it for a Blog (The web's standard Hello World of websites :P )

The user would define custom page types. In this case, it would be:
HomePage: Has it's own type
About: Has it's own type
Posts: All posts share this type.

Then the Analytics allows me to select a page type (Say HomePage) and see how users flow from there (maybe 90% go to a Posts type page, and 10% to the About page).

Does this make sense?

Example Diagram:
image

Custom events with the JavaScript API

Hello,

Is there an official method for sending custom data via the JS API?

I have seen users use window.plausible('eventName', ...) How would the Plausible API react to an object as the second parameter? Would it serialise it?

So many questions... 😝

Many thanks,
Synth

Page drilldown

"It’d be nice if you could click on urls in "Top pages" to get a breakdown page of the traffic for that specific url, with all the same data.

The same would be true for other items (great to filter on them if you click), but I find myself trying to do it for urls most of all.

I really like this idea of being able to filter based on whatever you click in the UI (referrers, countries, screen sizes, etc). When you click on a page, let’s say would you want to see only traffic that landed on that page (so this was strictly the entry page), or all traffic that visited that page at some point during their session? Let me know if the question isn’t clear.

I think I’d keep it consistent with the original section head (page views) so I assume views rather than landing pages. Landing pages might be nice but feels like it would be another section focused more on the user journey through the site (so I wouldn’t have landing pages but perhaps something like journeys instead)."

(imported from the old roadmap)

plausible.js includes a lot of unnecessary padding

The first 962 bytes of https://plausible.io/js/plausible.js (as it is at present) is unnecessary build tool nonsense and should be deleted. Combined with the matching three bytes at the end, this makes up about 30% of the file size (26% gzipped).

The whole inner thing is an IIFE doing no exports, so it doesn’t need that wrapping at all.

Skimming through it, there’s quite a lot of other low-hanging fruit too. Some examples: the programmatic RegExp construction in IIFE for cookie matching can readily be reduced to /(?:^|; )plausible_user=([^;]*)/; XMLHttpRequest.DONE can become 4; window.foo (i.foo as minified) is a waste of window., just write foo if you know it exists; more IIFEs can be vanquished.

I’m also bemused by the plausible_user encoding—to encode it, you URL-encode values, then in putting them in an object JSON-encode them. When decoding it, you URL-decode the entire result first, so that you’re URL-decoding twice. That seems wrong, though probably fairly harmless in practice. But it’d be more compact if you just encoded the object directly and then URL-encoded it once.

Also just FYI, no browser will respect your request for a cookie expiry 3000 years in the future! (I’m guessing you’ve used someone else’s code there; for something like this I’d say hand-write the entire lot, inlining any dependencies manually and making sure they’re sanely written.)

Then as often happens I got sucked into manual minification which is a hobby of mine. Here’s what I ended up with:

!function(e){"use strict";try{var t=window.plausible&&plausible.q||[],n=0,i=function(){return(location.search.match(/[?&](?:ref|source|utm_source)=([^?&]+)/)||[null])[0]},r=plausible=function(t,n){if(/localhost$/.test(location.hostname)||"file:"==location.protocol)return console.warn("[Plausible] Ignoring event because website is running locally");if("prerender"==document.visibilityState)return console.warn("[Plausible] Ignoring event because document is prerendering");var r={name:t,url:location.protocol+"//"+location.hostname+location.pathname+location.search,domain:s,referrer:document.referrer||null,source:i(),user_agent:navigator.userAgent,screen_width:innerWidth};c&&((t=(t=document.cookie.match(/(?:^|; )plausible_user=([^;]*)/))?JSON.parse(decodeURIComponent(t[1])):null)?(r.initial_referrer=t.initial_referrer&&decodeURIComponent(t.initial_referrer),r.initial_source=t.initial_source&&decodeURIComponent(t.initial_source)):((t=new Date).setTime(t.getTime()+94608e6),document.cookie="plausible_user="+JSON.stringify({initial_referrer:(r.initial_referrer=document.referrer||null)&&encodeURIComponent(r.initial_referrer),initial_source:(r.initial_source=i())&&encodeURIComponent(r.initial_source)})+"; expires="+t.toUTCString()+"; samesite=strict; path=/"));(t=new XMLHttpRequest).open("POST",e+"/api/event"),t.setRequestHeader("content-type","text/plain"),t.send(JSON.stringify(r)),t.onreadystatechange=function(){4==t.readyState&&n&&n.callback&&n.callback()}},o=function(){r("pageview")},a=document.querySelector('[src*="'+e+'"]'),s=a&&a.getAttribute("data-domain")||location.hostname,c="string"==typeof(a&&a.getAttribute("data-track-acquisition")),l=history.pushState;for(l&&(history.pushState=function(){l.apply(this,arguments),o()},addEventListener("popstate",o));n<t.length;n++)r.apply(this,t[n]);o()}catch(r){(new Image).src=e+"/api/error?message="+encodeURIComponent(r.message)}}("https://plausible.io");

1.88KB, 0.92KB gzipped (40%/36% smaller compared to the current baseline). Even less warranty on that than any warranty that might have been offered, but it should behave the same. Do what you will with it, including ignoring it if you like.

Just passing by, I have no intention of using your product at this time and do not plan to speak further about this beyond what I have already written in this issue.

Accepting cryptocurrencies as a payment method

"As a privacy-respecting service I think it would be cool if you would accept cryptocurrencies as a payment method for your paid plans. Preferably Monero, as it’s the best privacy coin, but just Bitcoin for simplicity would also be fine.."

(imported from the old roadmap)

At this stage, our payment processor Paddle doesn't allow cryptocurrency payments and they deal with all the VAT and taxes for us. We may move to a more flexible system later on.

Self hosting on podman

First of all, thank you for the work on plausible and especially the recent effort on self-hosting.

I am using podman instead of docker to run the containers. When running the main container, I get the following error:

# podman run --name plausible-eph --hostname plausible --pod plausible plausible:http db migrate
Loading plausible..
Starting dependencies..
Starting repos..
Running migrations for plausible
** (Postgrex.Error) ERROR 42704 (undefined_object) type "regnamespace" does not exist
    (ecto_sql 3.4.4) lib/ecto/adapters/sql.ex:593: Ecto.Adapters.SQL.raise_sql_call_error/1
    (elixir 1.10.3) lib/enum.ex:1396: Enum."-map/2-lists^map/1-0-"/2
    (ecto_sql 3.4.4) lib/ecto/adapters/sql.ex:686: Ecto.Adapters.SQL.execute_ddl/4
    (ecto_sql 3.4.4) lib/ecto/migration/runner.ex:343: Ecto.Migration.Runner.log_and_execute_ddl/3
    (ecto_sql 3.4.4) lib/ecto/migration/runner.ex:117: anonymous fn/6 in Ecto.Migration.Runner.flush/0
    (elixir 1.10.3) lib/enum.ex:2111: Enum."-reduce/3-lists^foldl/2-0-"/3
    (ecto_sql 3.4.4) lib/ecto/migration/runner.ex:116: Ecto.Migration.Runner.flush/0
    (stdlib 3.12.1) timer.erl:166: :timer.tc/1

I am using this bash script to start all the containers. I always start the main container manually to make sure the db and clickhouse are up.

Please let me know if I need to add more detail.

Incorrect content-type header returned for custom javascript include

I setup a custom domain to broker the javascript include and noticed that Firefox was throwing the following error message in the console:

The script from “https://stats.mashword.com/js/index.js” was loaded even though its MIME type (“text/plain”) is not a valid JavaScript MIME type

Upon inspection it seems that the content-type header is returning "text/plain" when it should be returning "application/javascript". Firefox still loads the script, but I'd like to avoid having this error show up in the console.

Remove/hide spam/bot visitors

"Being able to selectively hide/remove clusters of visitors (For example I had 40 spam visits at 5pm one day, trying to visit pages that don’t even exist on my site), so that they don’t inflate our stats and skew the data in our chats would put Plausible over the moon in my opinion, or an option to filter/remove visitors that end on a 404 would help too.

Spam/bot blocking is currently fairly basic and relies on the bots identifying themselves via the User-Agent header. This can be improved by using commercial IP address blocklists for bots as well as referrer spam blocklists. So we can definitely improve automatic bot detection. I’m not sure about a UI for manual bot removal, however. Since we don’t create individual visitor profiles on purpose, I can’t think of a way for users to select which visitor’s activity to delete?

In this case, the bot visited a bunch of random URLs on my blog for pages that don’t exist, so there are a bunch of pages showing up in my analytics like /random-plugin-name/453545.php (It seems like the bot was trying to phish for sites that may have vulnerable plugins installed, by visiting the pages those plugins would be located at, then when it finds sites that have said plugin, it knows they are vulnerable - thankfully, I didn’t have any of the plugins installed) - so perhaps, a work around could be an option to just remove a particular URL from showing up in the analytics, for example the /plugin-name/45345435.php types of pages, I have about 30 of those in my analytics yesterday. So maybe they can be removed on a URL level rather than a user level? This would help when the bots are visiting random/non-existant URLs like in my case, but I suppose it wouldn’t help when the bots are visiting actual pages that do exist, since we wouldn’t want to remove those."

(imported from the old roadmap)

email server without authentication

Hi, thank you for creating/open-sourcing plausible.io!

It's just what I wanted for personal/hobby projects and very easy to setup / migrate to it (I think it took me less than 1 hour to set it up and migrate all my personal projects from google analytics)

Some questions popped up, most of them already have issues with the self-hosted label, but one I couldn't find is: how do I have to set the environment variables if my email server doesn't require auth?

I noticed in the config auth is set to :always. It appears there's also a :if_available setting documented in bamboo_smtp -- assuming it does what I think, would it be possible to use that or, probably even better, make the option configurable?

Not sure how easy it is, but including a "send me a test email" button would be very helpful

False advertising? In fact not cookies-free?!

Hi,

you advertise this product as being cookie-free.
I like that, so I added plausible to my website.

However, when I checked there were plausible cookies in my browser.

Thanks,
Daniel

Data Outside Containers

"The containers have height in px. For people who’ve set a non-default font size in their browser, this pushes data outside the container. Removing the height elements, using em/rem, or using height: auto will fix this."

(imported from the old roadmap)

Custom domain validation not working properly?

Hi,

Just want to report an issue, it looks like you can concat any string after you put valid domain in custom domain option, including malicious one. It can lead to remote code execution on ssl provision server.

How to repro:

  • Add a new website
  • Go to settings -> Add custom domain
  • Fill it with valid domain concatenated with some command payload
    eg: stats.test.com || wget google.com replace wget google.com with any malicious command, it will run on the provision server

Tested with simple wget and curl, which send request to my server, and my server logs can see the request coming

Don't ship marketing site as part of self-hosted package

Running this self hosted is nice, but it'd be nice if it didn't contain all the marketting site components with it. Having the homepage either be the login prompt, or a list of public sites (configurable?) would be so much nicer!

Specifically, things which act a bit weirdly when self hosting:

  • "Live Demo" button doesn't work unless there's a site setup for 'plausible.io'
  • Loading up to marketing site for Plausible feels weird.
  • Footer links don't really work

Realtime view

"A board where one can see what is currently going on on the page. Things like

number of visitors
URLs opened
etc….

Definitely just a nice to have, not essential imho."

(imported from the old roadmap)

How to setup custom events with Typescript & React?

Hey, sorry for (probably) stupid question, but how do I setup custom events while using Typescript? When I add the script tag into html, ts doesn't reflect that and throws a compilation error about window not having a field called plausible.

Support sending views by HTTP

"Would be great to have ability to send pageviews by HTTP. This is useful for native mobile apps, because obviously JS script is not possible to use.

This could also be useful to send events from your website’s backend so you don’t need to install a script"

(imported from the old roadmap)

Export all data

"CSV file for top pages and time. It would be nice to get an overview of number of views, per timestamp, per page. Just a csv would be fine … I can do the analytics from there.

Would this be possible? I understand if there are privacy concerns. Alternatively just getting the pages part into a .csv file would also be a nice start.

I can imagine that getting the stuff more low-grain is gonna be a tad bit too close for ‘privacy aware’ tracking. But if I can get all the aggregated data that is shown on this page as a csv; that’d be sweet.

I don’t think I can give you all individual pageviews with timestamps in a csv. In fact I’m planning to move to a data storage format where this would be impossible. In the future, Plausible will only store aggregate data so it would be impossible to find individual pageviews.

Providing the same information as you can see in the graph via csv is very possible :)"

(imported from the old roadmap)

cannot add "." at the end of CNAME target in GoDaddy

Godaddy doesn't allow me to add the . at the end of the CNAME target. It always takes it away automatically. Is there something you can do on your end to allow it without a .? Or would it work without the . already anyways? As of right now it doesn't load the script yet (20 minutes after setup).

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.