Gantt Chart Utility
A lightweight Gantt chart generator built to solve roadmap visibility gaps in Autotask - evolving from Excel macros to a fully client-side web app.
Why I Built It
I needed a way to visualize project timelines across multiple initiatives.
The team I work with uses Autotask for project tracking, but it lacks even basic Gantt chart functionality across projects. That made it difficult to:
- understand timelines at a glance
- identify overlaps and dependencies
- communicate roadmap status clearly
In short, I had data-but no usable view of it.
The Iterations (What Didn’t Work First)
Attempt 1: Excel + VBA
My first attempt was exporting project data and building a Gantt chart in Excel using VBA macros.
This worked… to a point.
But I ran into consistent friction:
- formatting limitations
- difficulty aligning visuals cleanly
- awkward scaling across time ranges
- poor export options (especially for sharing as an image)
It solved the problem temporarily, but it wasn’t something I wanted to maintain or rely on.
You can see the source code for this in the “GanttChartCreator_ExcelMacro” folder in my GitHub repo linked at the top of this post.
Attempt 2: Python Script
Next, I built a Python utility to:
- read structured project data (CSV)
- generate a clean Gantt chart visualization
- give me more control over layout and rendering
This solved most of the technical limitations from Excel:
- better control over formatting
- more predictable output
- easier iteration
But it introduced a new problem:
Not everyone can (or wants to) run a Python script.
Which meant the tool wasn’t accessible to some of the people who actually needed it.
You can see the source code for this in the “GanttChartCreator_Python” folder in my GitHub repo linked at the top of this post.
Final Approach: Client-Side Web App
The final version was a shift in thinking:
Instead of a tool I run, build a tool anyone can use.
So I turned it into a client-side web app.
How It Works
- Users upload or paste structured project data
- The app parses and renders a Gantt chart in the browser
- Everything runs locally - no backend required
This approach:
- removed the need for Python
- made it accessible to non-technical users
- allowed for easy sharing and iteration
The source code for this is not currently publicly accessible, as it is part of my main website’s repo. I may move it to a separate repo in the future, and if so, I will update this post.
Design Goals
The goal wasn’t to build a full project management tool.
It was to:
- visualize timelines clearly
- support roadmap conversations
- stay lightweight and fast
- avoid unnecessary complexity
This kept the scope focused and the tool usable.
What I Learned
1. The Tool Is Not the System
Autotask had the data.
Excel had the flexibility.
Python had the power.
But none of them solved the actual problem:
Clear, usable visibility into timelines.
The solution came from combining ideas-not relying on one tool.
2. Accessibility Matters More Than Capability
The Python version was technically better.
But the web version was actually usable.
That tradeoff shows up everywhere:
The best solution isn’t the most powerful one-it’s the one people can use.
3. Iteration > Planning
This wasn’t designed upfront.
It evolved:
- Autotask → Excel → Python → Web
Each step revealed the next constraint.
4. Systems Thinking Applies Everywhere
This wasn’t just a visualization problem.
It was a system problem:
- data source (Autotask)
- transformation (CSV / structure)
- processing (Python / JS)
- presentation (Gantt chart)
Fixing the system mattered more than optimizing any single piece.
Where It Could Go Next
There’s plenty of room to expand this if needed:
- dependency visualization
- filtering by team / project group
- saved views
- integration with source systems
But for now, it solves the core problem:
Turning scattered project data into a clear, shareable timeline.
Live Demo
Try it here: https://www.chelseagrindstaff.com/utilities/gantt/