A single-file, browser-based work journal for developers and product managers. Log daily tasks, sync them to Google Sheets, and generate AI-powered monthly report cards with grades, deep analysis, and career insights. No server required. No installation needed. Open the HTML file and start logging.
Footprint is designed around a simple idea: the more precisely you record what you work on, the more clearly you can see your own growth. It combines a structured task log with AI analysis to give you the kind of feedback a senior manager would give after reviewing a month of your work — specific, honest, and actionable.
Everything runs in the browser. Your data lives in localStorage. Google Sheets acts as an optional remote backup with two-way sync. The AI report is generated by calling the Groq API directly from the browser using a free API key.
- Log tasks with a date, title, description, impact level (low, medium, high), key outcome, and effort in hours
- Categorise each entry with one or more tags: Dev, PM, Learning, Review, Design, Infra, Collab, Bug Fix, Meeting
- Edit or delete any entry at any time
- All entries are saved instantly to browser localStorage
- Connect multiple Google Sheets as named workspaces with colour labels
- Switch the active sheet from the header bar
- Each entry is associated with the sheet that was active when it was logged
- Entries logged in the app are pushed to your connected Google Sheet automatically when signed in
- Changes made directly in the Google Sheet (new rows, edits) are detected and pulled back into the app
- Auto-polling checks the sheet at a configurable interval (30 seconds to 5 minutes)
- Three conflict resolution strategies: keep local, keep sheet, or ask on each conflict with a side-by-side comparison
- Rows added directly in the sheet without an app ID are imported and assigned an ID, which is written back to the sheet for future tracking
- Deleting an entry in the app also removes the corresponding row from the sheet
- Browse all logged entries grouped by day
- Filter by month, sheet, category, and impact level
- Push any unsynced entries to Google Sheets from the history view
- Pull the latest sheet changes manually at any time
- Select a month and generate a full performance report using Groq (free, open-source Llama 3.3 70B model)
- The report includes letter grades (A through D) across four dimensions: Dev Skills, PM Thinking, Consistency, and Overall
- Quality scores (0 to 100) for Focus, Depth, Outcomes, and Consistency
- Executive summary, deep analysis, weekly rhythm analysis, impact analysis, and career insight — all written specifically about your actual logged tasks
- Strengths and improvement areas for both Dev and PM tracks
- Top learnings extracted from your outcome notes
- Blind spots identified from gaps in your log
- Three actionable goals recommended for the following month
- Write free-form reflections alongside the AI report: what you are most proud of, the biggest challenge, your dev focus, your PM mindset, and a personal note for next month
- Rate your own satisfaction for the month on a five-star scale
- Reflections are stored separately and persist across sessions
- Export any generated report as a formatted three-page PDF
- Page one covers grades, quality scores, executive summary, and deep analysis
- Page two covers strengths, improvements, weekly rhythm, impact analysis, career insight, and goals
- Page three covers self reflections and a complete table of all entries for the month
- PDF is generated entirely in the browser using jsPDF — no server, no upload
Download footprint.html and open it in any modern browser. No web server is needed for basic use, though Google Sheets sync and the Groq API require an internet connection.
Groq provides free API access to open-source models with no credit card required.
- Go to console.groq.com and sign up
- Navigate to API Keys and create a new key
- Copy the key, which begins with
gsk_
- Click the Manage button in the top right
- Open the AI Settings tab
- Paste your Groq key and click Save Key
You can now generate AI report cards from the Report Card tab.
If you want your entries backed up and accessible from a spreadsheet:
- Create a blank Google Sheet and copy its ID from the URL
- Enable the Google Sheets API in Google Cloud Console
- Create an OAuth 2.0 Web Application credential and add your site URL to the authorized origins
- In Footprint, open Manage, go to the Google API tab, and paste your Client ID
- In the Sheets tab, add your sheet by name and ID
Once connected, entries sync automatically. The sheet is created with a header row and each entry occupies one row with columns for date, title, description, categories, impact, outcome, effort, month, ID, created timestamp, and sheet name.
When a Google Sheet is connected, Footprint creates the following columns in row 1:
| Column | Content |
|---|---|
| A | Date (YYYY-MM-DD) |
| B | Title |
| C | Description |
| D | Categories (comma-separated) |
| E | Impact (low / medium / high) |
| F | Outcome |
| G | Effort in hours |
| H | Month (YYYY-MM) |
| I | Entry ID (used for tracking edits and deletions) |
| J | Created timestamp |
| K | Sheet name |
Rows can be added directly in the sheet without an ID in column I. Footprint will detect these on the next sync, import them, and write back an ID.
All data is stored in the browser's localStorage under three keys:
fp_entries— all task log entries as a JSON arrayfp_cfg— configuration including connected sheets, OAuth client ID, Groq API key, and sync settingsfp_refl— saved self reflections keyed by month
Clearing browser data or using a different browser will lose locally stored entries that have not been synced to a Google Sheet.
The AI prompt sent to Groq includes a full statistical summary of the month (entry count, hours, active days, category breakdown, week-by-week breakdown, outcome rate) and the complete log of all entries. The model used is llama-3.3-70b-versatile.
The response is expected as structured JSON and is rendered directly into the report card UI. If the JSON cannot be parsed, an error is shown rather than falling back to a generic report.
| Concern | Approach |
|---|---|
| Framework | None — vanilla HTML, CSS, and JavaScript |
| Storage | Browser localStorage |
| Sheets sync | Google Sheets API v4 via Google Identity Services (OAuth 2.0) |
| AI reports | Groq API (llama-3.3-70b-versatile) |
| PDF export | jsPDF 2.5.1 loaded from CDN |
| Fonts | Playfair Display, DM Mono, DM Sans via Google Fonts |
- Data is tied to the browser and device unless Google Sheets sync is configured
- The Groq free tier has rate limits (14,400 requests per day, 500,000 tokens per minute) which are unlikely to be reached in normal use
- The Google OAuth flow requires the app to be served from an origin registered in Google Cloud Console — opening the raw HTML file from the filesystem (
file://) will not work for Sheets sync - PDF generation happens entirely in the browser and may be slow on very large entry sets (100+ entries)
- No multi-user support — the app is designed for individual personal use
This project is released for personal use. No warranty is provided.