├── .npmrc ├── example_tracking ├── functions │ ├── utils │ │ ├── salt.js │ │ └── languagecodes.js │ └── counter.js ├── netlify.toml ├── plugins │ └── netlify-plugin-handle-mysalt │ │ ├── manifest.yml │ │ └── index.js ├── package.json ├── public │ └── index.html └── .github │ └── workflows │ └── main.yml ├── src ├── app.css ├── lib │ ├── images │ │ └── logo.png │ ├── index.ts │ ├── components │ │ ├── BoxTopRow.svelte │ │ ├── ListItemLink.svelte │ │ └── ListItemBarChart.svelte │ ├── types.ts │ └── helper.ts ├── routes │ ├── +layout.svelte │ ├── logout │ │ └── +page.server.ts │ ├── +page.svelte │ └── stats │ │ ├── +page.ts │ │ └── +page.svelte ├── app.d.ts ├── app.html └── stores │ └── dataStore.ts ├── static ├── favicon.png └── _redirects ├── .gitattributes ├── .prettierignore ├── postcss.config.js ├── vite.config.ts ├── netlify.toml ├── tailwind.config.ts ├── functions ├── fauna │ └── client.ts ├── getHitsOverall.ts ├── getHitsByDate.ts ├── getHitsByYear.ts ├── getHitsByDateUnique.ts ├── getHitsByYearByMonth.ts ├── getHitsByOSOverall.ts ├── getHitsByUrlOverall.ts ├── getHitsByLanguageOverall.ts ├── getHitsByBrowserOverall.ts ├── getHitsByOSByYear.ts ├── getHitsByUrlByYear.ts ├── getHitsByLanguageByYear.ts ├── getHitsByBrowserByYear.mts └── login.ts ├── .prettierrc ├── .gitignore ├── tsconfig.json ├── svelte.config.js ├── eslint.config.js ├── package.json ├── LICENSE └── README.md /.npmrc: -------------------------------------------------------------------------------- 1 | engine-strict=true 2 | -------------------------------------------------------------------------------- /example_tracking/functions/utils/salt.js: -------------------------------------------------------------------------------- 1 | module.exports.salt = '' -------------------------------------------------------------------------------- /src/app.css: -------------------------------------------------------------------------------- 1 | @tailwind base; 2 | @tailwind components; 3 | @tailwind utilities; -------------------------------------------------------------------------------- /static/favicon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pa-nic/vidu/HEAD/static/favicon.png -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | # Package Managers 2 | package-lock.json 3 | pnpm-lock.yaml 4 | yarn.lock 5 | -------------------------------------------------------------------------------- /src/lib/images/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/pa-nic/vidu/HEAD/src/lib/images/logo.png -------------------------------------------------------------------------------- /src/lib/index.ts: -------------------------------------------------------------------------------- 1 | // place files you want to import through the `$lib` alias in this folder. 2 | -------------------------------------------------------------------------------- /postcss.config.js: -------------------------------------------------------------------------------- 1 | export default { 2 | plugins: { 3 | tailwindcss: {}, 4 | autoprefixer: {} 5 | } 6 | }; 7 | -------------------------------------------------------------------------------- /static/_redirects: -------------------------------------------------------------------------------- 1 | / /stats/ 302! Role=stats 2 | 3 | /stats/* /.netlify/functions/sveltekit-render 200! Role=stats 4 | 5 | /stats/* / 302! -------------------------------------------------------------------------------- /example_tracking/netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | publish = "public" 3 | functions = "./functions" 4 | 5 | [[plugins]] 6 | package = "/plugins/netlify-plugin-handle-mysalt" -------------------------------------------------------------------------------- /vite.config.ts: -------------------------------------------------------------------------------- 1 | import { sveltekit } from '@sveltejs/kit/vite'; 2 | import { defineConfig } from 'vite'; 3 | 4 | export default defineConfig({ 5 | plugins: [sveltekit()] 6 | }); 7 | -------------------------------------------------------------------------------- /netlify.toml: -------------------------------------------------------------------------------- 1 | [build] 2 | command = "npm run build" 3 | functions = "functions" 4 | publish = "public" 5 | 6 | [template.environment] 7 | FAUNA_SECRET = "change me for your secret fauna key" -------------------------------------------------------------------------------- /example_tracking/plugins/netlify-plugin-handle-mysalt/manifest.yml: -------------------------------------------------------------------------------- 1 | name: netlify-plugin-handle-mysalt 2 | inputs: 3 | - name: filename 4 | description: Filename of salt js file 5 | default: "salt" -------------------------------------------------------------------------------- /src/routes/+layout.svelte: -------------------------------------------------------------------------------- 1 | 4 | 5 |
11 | {formatNumber(data)} 12 | hits 13 |
14 |Look into the code to see the tracker snippet implementation
10 |
Vidu - Minimal (jamstack) web analytics
11 | 12 |
And that's just about it!
182 | -------------------------------------------------------------------------------- /src/routes/stats/+page.svelte: -------------------------------------------------------------------------------- 1 | 303 | 304 | 314 | 315 |