0%

CleanSlate for Reddit — Private Reddit History Cleanup

Rianvy
This post is also available in 🇷🇺 Русский
CleanSlate for Reddit — Private Reddit History Cleanup
Completed

Project successfully completed and running

Tools Used

React
TypeScript
WXT
Vite
Vitest
WebExtensions API

CleanSlate for Reddit is a local browser extension for safely and deliberately cleaning your own Reddit history without a subscription, an external server, or third-party data sharing.

📌 About the project

CleanSlate can delete your posts and comments, remove saved items, clear upvotes and downvotes, and optionally hide processed posts. It uses the Reddit session already open in the browser and runs entirely on the client — with no Client ID, separate OAuth flow, or external backend.

The main goal was to provide a transparent and predictable cleanup tool: scan the history first, review every proposed action, and start the queue only after explicit confirmation.


✨ What was done

Interface & UX

  • Implemented a compact launcher that opens the workspace directly over Reddit
  • Designed a step-by-step flow for scope selection, filters, review, and execution
  • Added clear active-session, progress, paused, error, and completion states
  • Isolated the interface from Reddit styles with Shadow DOM
  • Added complete English and Russian localization

Scanning & filtering

  • Scanning for the user’s posts, comments, saved items, upvotes, and downvotes
  • Full cursor pagination for up to 2,000 items in each section
  • Filters for text, subreddits, score, date range, and NSFW content
  • Result deduplication before the action queue is created
  • Preview export in JSON or CSV format

Safe execution

  • Review of every matched item with the option to deselect it
  • An additional DELETE confirmation before posts or comments are removed
  • Optional comment rewriting before deletion
  • Pause, resume, stop, and retry-failed-actions controls
  • Automatic Reddit rate-limit handling with a countdown after a 429 response
  • Backoff retries for temporary 503 errors
  • Controlled request intervals and scheduled breaks during long queues

Privacy

  • Data is processed locally and retained only in the tab’s memory
  • The existing browser cookie session is used
  • Requests are sent only to Reddit domains
  • No analytics, ads, telemetry, licensing, or payments
  • The manifest requests access only to https://*.reddit.com/*

🖼️ Extension interface


🎨 Design system

Reddit Orange

#FF4500

Background

#0F1113

Surface

#1B1F22

Text Primary

#F5F5F5

Session Active

#3DDC84
  • Visual style: dark surfaces, a high-contrast orange accent, and a subtle glow for primary actions
  • Components: scope cards, filters, checkboxes, queue progress, and status indicators
  • Isolation: interface styling remains independent of Reddit’s current visual design

🛠️ Technical implementation

The extension is built with WXT, React 19, and TypeScript 6. A content script mounts the application on Reddit pages, while Shadow DOM prevents conflicts with the site’s styles. A separate popup provides project status and guides the user to the main tab.

The session client retrieves the current user and modhash, scans Reddit JSON listings with cursor pagination, and performs confirmed actions through Reddit’s native API endpoints. The action queue is separated from the UI and controls request intervals, pauses, retries, and rate limiting. Critical filtering, session, and queue behavior is covered by Vitest tests.

The project builds for Chromium and Firefox, uses Manifest V3, and is distributed under the MIT license.


🌐 Summary

  • A complete local-first tool for managing Reddit history
  • A clear review flow with explicit confirmation for destructive actions
  • Resilient processing of large queues within Reddit’s rate limits
  • Minimal permissions and no external infrastructure
  • Open-source code and a bilingual interface

© 2025 - 2026 0x69.ru

Powered by ❤️

Readme.md

whoami 👨‍💻

$ cat /etc/profile

Username: Rianvy
Real name: Maksim Alexandrov
Age: 28
Location: Tula, RU
Role: Senior Developer & UI/UX Designer 😎

About

This blog is my personal knowledge base, where I push notes about my tech stack, life experience, and everything that triggers my interest => 🚀

Contact

Open for collaboration 🤝 — ready to merge ideas and work on joint projects.

Stack

💻 Programming Languages

  • C#, PHP, JavaScript/TypeScript, Python

⚛️ Frontend

  • React / Next.js, Vue.js / Nuxt.js
  • Tailwind CSS / SCSS
  • Responsive layout (HTML, CSS, JS) 📱

🔧 Backend

  • Laravel, Node.js / Express / NestJS
  • REST APIs

🗄️ Databases

  • MySQL, PostgreSQL, MongoDB, Redis

🛠️ DevOps

  • Docker, Git, CI/CD, Linux 🐧

🎨 Design & Graphics

  • Figma — UI/UX design and prototyping
  • Photoshop — graphics and image editing
  • After Effects — motion design and animation 🎬
My Open Source Projects 🌟
Name VKify
Description A powerful browser extension for customizing VKontakte with ad blocking, themes, privacy mode, and custom CSS
Description A private local-first extension for cleaning Reddit posts, comments, saved items, and votes directly in the browser