💊 Painkiller – Bulk downloading internal content
Milkywire, 2024
Role
Designer & Developer
Time
1 week
Tools
CLI, Web App, Internal APIs, AI assistance
Context
Our internal tool for managing assets from impact organizations wasn't built for bulk operations—assets had to be downloaded individually, and crucial information like copyrights and captions risked getting lost or mismatched along the way.
Since I was personally struggling with this, I decided to try building a solution myself. It turned out I wasn't alone, and soon others expressed interest, leading me to build both a CLI and a web app.
Problem
Previously, the workflow involved manually scrolling through posts in a social-media style feed, individually downloading each asset, and separately managing captions and metadata—a time-consuming and error-prone process.
Process
Identifying the pain
Our existing tool wasn't designed for the expanding volume and complexity of our assets. It didn't offer a straightforward way to bulk download or organize content effectively.
Solution building
Initially, I created a CLI tool with an interactive mode using our APIs, allowing users to:
- Filter by fund, initiative, impacter
- Choose asset type (image/video)
- Apply date filters and limits
- Ensure copyright and highlights were managed correctly
The assets were automatically structured into organized folders:
Fund/
└── Initiative (date)/
└── initiative_name_date/
├── asset_1
├── asset_2
└── caption.txt
As the CLI gained traction internally, I expanded its functionality into a more user-friendly web application to cater to colleagues who preferred a graphical interface.
Challenges & learnings
Being primarily a designer and a hobbyist coder, building a CLI and web tool from scratch had a steep learning curve. Leveraging AI tools for support and guidance significantly accelerated my learning, helping me move quickly from idea to deployment.
Result
Now our teams spend less time on tedious manual downloads and more time focusing on impactful communication, with assets and metadata neatly organized and instantly accessible.