Show your daily progress as a live heatmap on any site

Get a website widget that displays a live graphic of your progress, from data in a Google Sheet


We even have a web button you can deploy, to automatically update your Sheet with one click each day.

◻️◻️◻️◻️◻️◻️

Track daily habits

  • Exercise

  • Meditation

  • Journaling

  • Reading

Track creative output

  • Writing

  • Coding

  • Shipping

  • Drawing

Show accountability

  • Progress reporting

  • Social posting calendar

  • Campaign tracking

  • Safety checks


Show your progress for accountability, or just for some kudos

◻️◻️◻️◻️◻️◻️


Click the button, it automatically updates your Sheet

Which then automatically updates your widget


◻️◻️◻️◻️◻️◻️


Set up a Google Sheet & put our log button on a secret web page

Connect your Sheet and button to the tracker widget.

Embed the tracker widget anywhere with just an iframe.

Add your email to try it or get updates


Current features

  • Track progress in Sheets, via a web button

  • Generate a tracker widget iframe embed code (requires a Google API key)

  • Embed on a website or Notion page

  • Hover to see dates

window.addEventListener('message', e => { if (e.data.type === 'resize') { const iframe = document.querySelector('iframe'); // assumes one iframe if (iframe) iframe.style.height = e.data.height + 'px'; } });
window.onload = () => { const a = document.createElement('a'); a.innerHTML = 'Made by @markbowley'; a.setAttribute('href', 'https://markbowley.com'); Object.assign(a.style, { 'position': 'fixed', 'top': 'null', 'right': '0', 'bottom': '0', 'left': 'null', 'padding': '0.3rem 0.39999999999999997rem', 'margin': '1rem 1rem 1rem 1rem', 'line-height': '0.6rem', 'color': '#ffffff', 'backgroundColor': '#333333', 'textDecoration': 'none', 'borderRadius': '0.3rem', 'font-size': '0.6rem', 'font-weight': 'normal', 'cursor': 'pointer', 'transition': 'all .2s ease-in-out', 'z-index': '1000', 'box-shadow': '0 4px 6px -4px rgb(0 0 0 / 0.1)', 'font-family': '-apple-system, BlinkMacSystemFont, avenir next, avenir, segoe ui, helvetica neue, helvetica, Cantarell, Ubuntu, roboto, noto, arial, sans-serif' }); a.onmouseover = () => a.style.transform = 'scale(1.1)'; a.onmouseout = () => a.style.transform = 'scale(1)'; a.setAttribute('target', '_blank'); document.body.append(a); }

Logging button demo

Test the logging button function with this demo, which updates the live tracker below

Did you do the thing today?




Example trackers


These are live embeds, using the prototype


Days I published a blog post this year

Days I shipped a prototype this year