I just finished submitting my open-source Chrome extension, SmrutiCortex, to the Chrome Web Store. This isn't just a "how-to"; it's a developer journal detailing the entire process, from the initial build to navigating the tricky parts of the review process, with a relentless focus on user privacy. I’m writing this for other developers who are on the same path.
SmrutiCortex was born from a simple need: an ultra-fast, completely private way to search my own browser history. Commercial tools existed, but I wanted something local-only, with zero analytics, and open-source. The initial architecture uses IndexedDB for local storage, a modular scoring system, and a snappy UI. But building the extension was only half the battle. Getting it into the store was a journey in itself.
<all_urls> permission at install time. This is a common blocker that leads to long review delays.<all_urls> permission optional using optional_host_permissions. The core extension works perfectly on install, and the user can later grant permission for enhanced features.Here are the exact steps and commands I used to prepare and package the extension for submission.
docs/privacy.html.These are the exact commands I ran to create the final .zip file for upload.
bash
# Ensure manifest.json version matches package.json
npm run sync-version
# Create a clean, optimized production build in the /dist folder
npm run build:prod
# Package the /dist folder into a zip file for the store
npm run package
# Result -> Packaged file created at: release/smruti-cortex-v6.0.0.zip