About this site

🏠 Home

This website was built when we had sleepless nights with our first son. We wanted to find patterns to see if we can improve our situation.
Later we realized that this application could be of use for many tired parents.

The visualization that is loaded by default uses randomized data as a source, but if you want to drive it using your own data, fill in your sheetId and set the correct range. Select both column headings (ISO dates) and row headings (24h time).

Settings ⚙

I give you a head start with this sheet containing some random values.
Save it to your Drive and modify if you want to keep your own log.

👌🏻 Everything runs locally in your browser and the application is not using any database to store settings or sheet data. It's your data.

Google Auth Error:
* Required field

Sheet validation

What is under the hood? 🏗

This application is built with Gatsby (only because CRA developer experience sucks) and hosted by Netlify.

Charts are constructed using Crossfilter and D3.js, but rendered with React.
Data is fetched from Google Sheets API with some help from React Query and React Hook Form.

I created the styles using Styled Components, Tailwind and Twin.macro.

Weather data is coming from my own Davis Vantage Pro2 weather station. It is uploading to WOW but unfortunately the Met Office API is so badly maintained that the SSL certificate has expired. So I cannot retrieve it to feed the weather charts. Therefore I circumvented this API by uploading the raw weather data into Firestore using a Cloud Function.

Firestore is not very suitable for timebased data, so in 2023 I replaced it with InfluxDB OSS with Telefgraf running in Docker on a NAS.

The weather data visible on this website is updated every 5 minutes.

© 2020-2025 Frank van Wijk