Rinselist welcome screen shown over abstract blue water texture

A utility web app that eliminated a category of work at Highland Group

RinseList is an email list cleaning utility that was designed to reduce friction at the beginning of every campaign cycle involving manually adding lists to email marketing clients. It's tedious work that is surprisingly easy to introduce errors, can be messy to correct and opens the door to liability.

RinseList makes it easy to conduct these checks against a suppression list while also removing invalid emails and producing a reporting document for future auditing.

The Problem

Managing email suppression lists is unglamorous, repetitive, and surprisingly error-prone. For anyone running email campaigns in Klaviyo — or handing off lists to a team — the standard workflow looks like this: export the suppression list, open Excel, run a VLOOKUP, clean the result, re-upload. Every time.

Despite our best efforts and careful documentation intended to empower anyone to handle this work, it has persisted in coming back. The work is manual enough that working with the documentation feels clunky or results in low confidence results. It's technical enough for non-technical team members to feel overwhelmed, but not technical enough to require urgency from subject matter experts. As this has continued to land on my desk, I recognized an opportunity to cancel the cognitive load and task-switching cost of this work altogether.

Approach

The real insight came from realizing that what was needed was not better process documentation, but the ability to remove the cognitive load that was added to figuring out who could handle this quickly every time a client sent a new list over. The vision was to make something simple: upload, download, done — while being easy to share and safe to use confidently.

I defined a small, quickly shippable MVP scope that handles the work instantly, delivers a clean output, forgoing early feature overload.

What it Does

1. Upload your working email list (CSV)

2. Upload your Klaviyo suppression list (CSV)

3. Rinselist removes suppressed addresses, flags invalid formats, and returns a cleaned file

4. An audit log shows exactly what was removed and why

upload dialogue states from rinselist
Managed states for file upload dialogue
Pre-clean error message in upload experience
Handling errors before cleaning a list helps frame the problem and identify next steps to users.

Constraints and Decisions

To get to launch quickly, I made several key decisions to balance shipping fast with the ability to add features and refinements in the future.

Privacy First
The tool handles real customer email data. Sending that to a server — even temporarily — introduces risk. The entire tool runs client-side. No data ever leaves the browser. No backend, no storage, no exposure.

Ruthlessly Scoped
The MVP does one thing: clean a list against a suppression file. No accounts, no history, no dashboard. The scope was defined by the smallest useful thing, not the most impressive thing. This is from the ground up — even limiting color selections to tailwind defaults.

Built to Extend
The architecture is structured so that v2 features have a clean place to land without rearchitecting the core. The roadmap includes features like: bulk file processing for contact lists with options to keep them separated or combine them into one list automatically, better ESP integration for even faster use, to customizable themes for agency cobranding.

Stack Choice
Built on the same tech stack as my portfolio site — I wanted to work quickly by collaborating with AI while having an architecture I'm familiar enough with to work on myself without outside dependency.


RinseList mobile ready state

What I Learned

Shipping a real product — even a small one — outside of any client brief or organizational context forces a different kind of decision making. There's no stakeholder to defer to.

The most important decisions were related to scope more than technical ability. Leading with the purpose to build something useful and evolve it rather than focusing on how to make it flashy or slick for a portfolio showpiece, while finding excitement in the craft of problem solving is exactly why it's worth including a project like this. The joy in this work is in addressing a problem that I've experienced first-hand. The opportunity is taking a working solution and seeing a roadmap to making that solution even more valuable.

V2 features Under Consideration

Multi-list Processing
Handle multiple files to check against suppression data with options to keep them as separate or combined outputs.

Customizable Backgrounds & Theming
There's room for improved color use and typographic refinement. Adding the ability for users to customize them opens the door for product tiers that could include white-labeled instances for agencies, and even integrations that could optimize client-data capture directly to project management software.


Interaction Design Polish
Subtle animations using Framer Motion or GSAP to help the experience feel premium and trustworthy.