Why I Added Progress Bars to Our Notion Pages
Our team used to write status updates like "We're about 60% done" in Notion. Nobody read them. When I asked why, people said percentage numbers don't mean much—60% of what? 60% done could mean we have almost nothing left, or we could be barely started.
Then someone on the team started adding visual progress bars to our project pages. Suddenly people were actually checking status. The bar gave an immediate intuitive sense of where we were. You could see the gap between 60% and 100% and understand how much work was left.
Progress bars turn abstract percentages into visual language. Your brain processes "three-quarters full" instantly without doing math. That frictionless understanding is why I've started using them everywhere our team tracks anything in Notion.
Why Browser-Based Generation
I looked at several options for creating Notion-compatible progress widgets. Some required installing apps. Others had limits on how many you could create. A few were integrated into larger project management tools that we didn't otherwise use.
Browser-based generation seemed like the simplest approach. No accounts, no installation, just open the tool and make what you need. The SVG export works with Notion's embeds and scales cleanly at any size.
For complex dashboards, you might need more sophisticated tools. But for most teams using Notion, this kind of simple widget generator is faster and easier than switching to a different platform.
Customization Options
The generator creates SVG progress bars that you can customize for your needs:
- Bar, circle, or ring shapes — Different visualization styles for different contexts
- Color and gradient customization— Match your team's color scheme or use semantic colors (red for at-risk, green for on-track)
- Animation options — Optional fill animation for embedding in presentations or dashboards
- Multiple export formats — SVG for vectors, PNG for raster, Base64 for direct embedding without hosting
SVG is best for most uses because it scales without losing quality. PNG is useful when you need a specific size or don't want to deal with vector files. Base64 encoding lets you paste directly into Notion without hosting files anywhere.
Tips for Effective Progress Tracking
A few things I've learned about using progress bars in Notion:
Use them for milestones, not tasks.A progress bar for every individual task is noise. A progress bar for "Q4 Launch" or "Beta Testing" or "Content Migration" gives useful at-a-glance status.
Update them when they change. A progress bar showing 60% for three weeks is worse than no progress bar—it creates anxiety without providing useful information. Make updating part of your regular workflow.
Consider the psychological effect.Research on goal-setting shows that visible progress increases motivation. The bar isn't just for information—it's for motivation too. When people can see they're making progress, they tend to keep making progress.
Don't overuse them. Every metric becomes a target when you measure it. If you add progress bars to everything, people will start gaming the numbers instead of doing the actual work.
Technical Notes

The progress bars are generated as SVG, which means they scale to any size without losing quality. This matters for Notion because you might embed the same bar in a small inline widget and a full-width page. With SVG, it looks crisp in both contexts.
PNG exports at 2x resolution for retina displays. If you're putting progress bars in public-facing embeds, the high-resolution PNG ensures they look sharp even on high-DPI screens.
Base64 encoding embeds the image data directly in the Notion page. This avoids the need to host files somewhere, but the resulting Notion pages can be heavy if you embed many large bars. Use SVG for most cases, Base64 when you specifically need the portability.
Accessibility Considerations
Visual progress indicators should be supplemented with text for accessibility. Screen readers can't interpret a bar chart without alt text. When you embed progress bars in Notion, add a text description that explains what the bar represents.
I generate bars with sufficient color contrast by default, but if you're customizing colors, test that the foreground and background colors meet WCAG guidelines. A progress bar that's invisible to color-blind users isn't useful for anyone.
Getting Started
Pick a percentage, choose your style, and generate. The tool shows a live preview as you customize. When you're happy with how it looks, export in your preferred format and paste it into Notion. Takes about 30 seconds once you're familiar with the options.
Written by Bai Shuang, a full-stack engineer with 16 years of Java/JavaScript experience, 10 years of Scala, and 8 years specializing in privacy-focused tools.
GitHub: @oldbig. Open source project: redux-lite - A lightweight React state management solution.