Create the Google Sheet
Create a new Google Sheet and name the first tab roadmap (lowercase, exact match). Add these column headers in row 1:
Then share the sheet publicly: File → Share → Anyone with the link → Viewer.
Copy the Sheet ID from the URL — it's the long string between /d/ and /edit.
Generate a password hash
Choose a password for the client, then use the hash helper to convert it to a SHA-256 hash. You'll paste this into the CONFIG block — the plain-text password is never stored in the file.
Open hash helperConfigure the roadmap file
Duplicate demo.html and rename it for the project (e.g. acme-roadmap.html). Open it in a text editor and update the CONFIG block at the top — it's the only thing that needs changing between projects.
const CONFIG = {
sheetId: 'YOUR_SHEET_ID',
apiKey: 'YOUR_GOOGLE_API_KEY', // same key for all projects
projectName: 'Project name',
clientName: 'Client name',
passwordHash: 'PASTE_HASH_FROM_STEP_2',
};
Deploy and share
Drop the HTML file on any static host — no server or build step needed.
- Netlify Drop — drag the file to app.netlify.com/drop
- GitHub Pages — push to a repo and enable Pages in settings
- Vercel — drag and drop via the dashboard
Send the client the URL and password. That's it — update the sheet any time, client refreshes the page to see changes.