This repo shows a sample implementation of using an existing Next.js app to have the capability to use GDPR friendly first-party cookies with the Tinybird web analytics starter kit.
This example uses Typescript. It should be straightforward to convert it to plain JavaScript if that is your preference.
Copy the file pages/api/tracking.ts
to your own project in the same location. This API will proxy all requests from the client-side flock.js
tracking script to Tinybird.
TINYBIRD_TRACKER_TOKEN
: set this to the value of yourtracker
auth token after running the Tinybird workspace starter. This will only be visible on the server-sidetracking.js
proxy.NEXT_PUBLIC_TINYBIRD_TRACKER_PROXY
: Set this to the origin of your application. For example, if your app is publicly hosted athttps://myapp.example.com:8080
you would specify that. This is used by the client-side tracking JavaScript and so must be prefixed withNEXT_PUBLIC_
or it won't be visible to the client code. This will be converted tohttps://myapp.example.com:8080/api/tracking
by theflock.js
code.
There are a couple of other optional environment variables that you can see in the tracking.js
script.
To make the tracking script available on every page in your app you'll need to create the pages/_document.tsx
file and add the tracking script to it. You can learn more about custom documents in Next.js.
You can see the tracking script has no knowledge of the Tinybird token, and now uses NEXT_PUBLIC_TINYBIRD_TRACKER_PROXY
to set the data-proxy
script attribute.
If you add a .env.local
file to the root of this repo you can configure your environment to test this locally.
Here's a sample:
TINYBIRD_TRACKER_TOKEN=replace-me-with-your token
NEXT_PUBLIC_TINYBIRD_TRACKER_PROXY=http://127.0.0.1:3000
Run npm install && npm run dev
and page loads should start showing in your Tinybird console.
This is a Next.js project bootstrapped with create-next-app
.
First, run the development server:
npm run dev
# or
yarn dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying pages/index.tsx
. The page auto-updates as you edit the file.
API routes can be accessed on http://localhost:3000/api/hello. This endpoint can be edited in pages/api/hello.ts
.
The pages/api
directory is mapped to /api/*
. Files in this directory are treated as API routes instead of React pages.
To learn more about Next.js, take a look at the following resources:
- Next.js Documentation - learn about Next.js features and API.
- Learn Next.js - an interactive Next.js tutorial.
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.