惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

aimingoo的专栏
aimingoo的专栏
腾讯CDC
Y
Y Combinator Blog
L
LangChain Blog
B
Blog
U
Unit 42
P
Proofpoint News Feed
G
Google Developers Blog
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
博客园 - 【当耐特】
WordPress大学
WordPress大学
月光博客
月光博客
Vercel News
Vercel News
雷峰网
雷峰网
T
The Blog of Author Tim Ferriss
MyScale Blog
MyScale Blog
大猫的无限游戏
大猫的无限游戏
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
酷 壳 – CoolShell
酷 壳 – CoolShell
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
博客园 - 叶小钗

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant
I shipped v1.2.0 of my Chrome extension for intentional w...
Orlando Asca · 2026-04-27 · via DEV Community

I shipped v1.2.0 of my Chrome extension for intentional website blocking

I just shipped v1.2.0 of ResistGate, a Chrome extension I’m building to help people stop opening distracting websites on autopilot.

The core idea is simple:

Don’t just block distractions. Add intentional friction before access.

A lot of blockers are binary.

You either block the site completely, or you disable the blocker when you get annoyed.

I wanted something slightly different.

A gate.

A pause.

A small moment where the user has to choose consciously instead of falling into autopilot.

What’s new in v1.2.0

Graduated challenges

The biggest update is graduated challenge difficulty.

Users can now choose between:

  • Easy — a short sequence
  • Moderate — a sentence prompt
  • Hard — a five-paragraph challenge

This matters because one mistake I noticed is that too much friction too early can backfire.

If the product feels like punishment, users will uninstall it.

So the goal with graduated challenges is to let users build discipline without burning out.

Send feedback

I also added a direct feedback button inside the popup and settings page.

This is small, but important.

Before this, users had no obvious way to tell me:

  • what confused them
  • what felt annoying
  • why they uninstalled
  • what feature they expected
  • whether the product actually helped them

That’s a problem.

A product without feedback is mostly guessing.

Cleaner first-run experience

I redesigned the welcome page so new users can understand the extension faster and get to the first important action:

Setting up their blocklist.

The first-run experience matters a lot because the real activation moment is not “user installed the extension.”

The real activation moment is:

User adds a distracting site, hits the block page, and understands the value.

That’s the moment I need to optimize for.

Funnel analytics

I also added analytics to understand the funnel.

Not because I want vanity metrics.

Because right now I need to know where the product breaks.

For example:

  • Do users install but never open settings?
  • Do they open settings but never add a site?
  • Do they add a site but never trigger the block page?
  • Do they complete the challenge?
  • Do they come back?

Without this, I’m just building in the dark.

What I’m learning

The technical part of a Chrome extension is only one piece.

The harder part is the product loop.

Someone has to:

  1. Discover it
  2. Trust it
  3. Install it
  4. Understand it
  5. Set it up
  6. Use it at the right moment
  7. Feel the benefit
  8. Come back again

That is the real challenge.

v1.2.0 is not about adding random features.

It’s about making the product easier to understand, easier to start, and easier to improve based on real behavior.

Chrome Web Store:
https://chromewebstore.google.com/detail/resistgate-website-blocke/elpiihpfmgipodcddhhpiijmppkmlpnc

I’m open to feedback, especially from anyone who has built Chrome extensions, productivity tools, or onboarding flows.