CSV Deduper - 100% Private B2B CSV Lead List Cleaner via Telegram

by
Ultra-fast B2B CSV Deduper & Lead List Cleaner built on Rust + WebAssembly.

Add a comment

Replies

Best

Hey Hunters! 👋

I built this tool because I was tired of uploading sensitive lead lists and B2B data backups to random websites just to clean duplicates.
This is a Telegram Mini App powered by pure Rust + WebAssembly.

Why use it?
• 100% Private: Zero backend. Processing happens strictly inside your device's WebView. Your data never leaves your chat.
• Blazing Fast: Thanks to Rust compilation, it handles large CSV files easily on the fly without lagging your phone.
• No Signup: Launch right inside Telegram and clean your files in seconds.

I'd love to hear your feedback on the performance and UI. Give it a spin at

The Rust + WebAssembly combo here is a smart call for something crunching huge CSVs, makes the whole thing feel instant instead of dragging. Curious how you handled memory for those massive lead lists under the hood.

 Thanks for checking it out, Savaş!

Memory management is exactly why we went with Rust here. Under the hood, we don't load or materialize the entire massive CSV file or string into memory.

Instead, we stream the data using csv::ReaderBuilder and process records line-by-line via a single loop iteration. To keep memory consumption at an absolute minimum, our IndexSet stores only unique dedup keys (hashes/strings) rather than full CSV lines.

For whole-row comparison, we join fields using an ASCII Unit Separator (\u{1F}) to avoid collisions without allocations overhead. If a specific column like "email" is picked, only that trimmed field is kept in the unique set.

This keeps the memory footprint tight and deterministic even within a constrained mobile WebView container. Try throwing a nasty file at it!

Cleaned a messy 50k row lead list in seconds right in the browser, no upload needed. The Rust + WASM combo really shows, it handled fuzzy matches way better than the spreadsheets I usually fight with.

 Thanks for the feedback, Öykü! Glad to hear it saved you from spreadsheet hell.

You're exactly right — running the Rust engine directly inside the browser via WebAssembly is what allows us to analyze massive datasets instantly without any UI lag.

Appreciate your support and glad the performance met your expectations

Handled a messy 50k row list in seconds and the Rust + WASM combo really does feel snappy compared to my old Python scripts. Wish I'd found this sooner.

 Thanks, Sultan! Python is great, but compiled Rust to WebAssembly brings that raw native speed straight into the browser container. Glad it felt snappy and saved you some time. Appreciate the support

Rust + WASM for CSV deduping is a smart stack choice and it actually feels snappy on big lists. The matching options are straightforward without burying you in settings.

 Thanks for the support, Cansel! Keeping the UI clean and the settings straightforward was a priority. Glad you found the matching modes simple and the Rust/WASM core responsive on large datasets.

the rust + wasm choice is genuinely smart for something like this, processing lead lists client-side without round trips to a server just feels right. curious how you handle the larger files though.

 Thanks, Zehra! Client-side processing via WASM is our core feature for total privacy.

For larger files, we stream the data line-by-line using buffered readers, so we never load the whole file into the browser memory at once. Memory footprint stays tight and deterministic. Appreciate your support!

Was skeptical about wasm doing dedup fast but this actually chewed through a messy 50k row export in seconds. Nice work.

 Thanks for the support, Tuncay! Compiled Rust to WebAssembly allows us to bypass the usual browser performance bottlenecks. Glad the 50k row processing speed met your expectations!

honestly this looks super useful for anyone wrangling messy lead lists. one thing i'd love to see is a fuzzy match toggle for company names, like catching "Acme Inc" vs "ACME Incorporated" since that's where most of my dupes hide. would make the cleanup way more accurate for B2B data imo

 Thanks for the great feedback, Ceyda! You hit the exact pain point of B2B data cleaning.

Right now, our core engine is optimized for absolute raw speed and 100% exact/deterministic deduplication on client-side WebAssembly to keep it lightweight.

However, adding normalization heuristics (like stripping "Inc", "Ltd", "Incorporated" and converting to lowercase before hashing) is a fantastic idea and totally doable without sacrificing performance. I'll look into adding this toggle in the next update. Thanks for supporting us!

honestly the rust + wasm choice is kind of inspired for something as mundane as deduping csvs, love that you went performance-first on a tool most people would have just shipped as a python script

 Thanks, Toprak! You nailed it. Shipping this as a standard Python or Node backend script means handling huge file uploads, server bottlenecks, and scaling costs.

By compiling Rust into WebAssembly, we completely offload the processing to the client side. The user gets native performance inside their local WebView container, and we get zero server overhead. Performance-first was definitely the only way to build this. Appreciate your support!

Ran a messy 12k row file through it and the fuzzy match caught duplicates my spreadsheet formulas kept missing, which is honestly more than I expected from something that loads instantly in the browser.