<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Hazrat Mosaddique Ali</title>
    <description>The latest articles on DEV Community by Hazrat Mosaddique Ali (@mosaddiqdev).</description>
    <link>https://dev.to/mosaddiqdev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3322825%2F30caf8a5-7738-40bc-b4da-301f07953343.png</url>
      <title>DEV Community: Hazrat Mosaddique Ali</title>
      <link>https://dev.to/mosaddiqdev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/mosaddiqdev"/>
    <language>en</language>
    <item>
      <title>From 7,000 Lines of Rejection to Research-Based Success: My Chrome Extension Journey</title>
      <dc:creator>Hazrat Mosaddique Ali</dc:creator>
      <pubDate>Fri, 04 Jul 2025 15:00:03 +0000</pubDate>
      <link>https://dev.to/mosaddiqdev/from-7000-lines-of-rejection-to-research-based-success-my-chrome-extension-journey-3a1i</link>
      <guid>https://dev.to/mosaddiqdev/from-7000-lines-of-rejection-to-research-based-success-my-chrome-extension-journey-3a1i</guid>
      <description>&lt;p&gt;&lt;em&gt;A developer's honest story about failure, learning, and finding the right path&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Breakdown
&lt;/h2&gt;

&lt;p&gt;A few weeks ago, I literally broke down.&lt;/p&gt;

&lt;p&gt;Not the dramatic kind you see in movies. Just me, sitting in front of my laptop at 2 AM, staring at another Chrome Web Store rejection email. The fourth one in as many months.&lt;/p&gt;

&lt;p&gt;"Your extension does not comply with our policies..."&lt;/p&gt;

&lt;p&gt;I'd spent six months building NEXUS New Tab. 23,000+ lines of code. AI-powered tab prediction. 12 intelligent date insights. Universal search across 5 engines. 9 accent colors. 5 typography themes. Features upon features upon features.&lt;/p&gt;

&lt;p&gt;And Chrome kept saying no.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Monster I Created
&lt;/h2&gt;

&lt;p&gt;Let me paint you a picture of what NEXUS became:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;src/pages/newtab/script.js: 7,199 lines
src/modules/quick-shortcuts.js: 4,737 lines
src/modules/tab-memory.js: 1,502 lines
src/modules/notification-system.js: 1,322 lines
src/modules/cache-manager.js: 1,114 lines
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A single JavaScript file with over 7,000 lines. I know what you're thinking - and you're right. It was a mess.&lt;/p&gt;

&lt;p&gt;But here's the thing - I was proud of it. Look at all these features! Look at this complexity! Surely this would impress everyone, right?&lt;/p&gt;

&lt;p&gt;Wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Permissions Nightmare
&lt;/h2&gt;

&lt;p&gt;NEXUS required these permissions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;code&gt;bookmarks&lt;/code&gt; (okay, reasonable)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;topSites&lt;/code&gt; (getting suspicious)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;sessions&lt;/code&gt; (why?)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;storage&lt;/code&gt; (fine)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;history&lt;/code&gt; (red flag)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;tabs&lt;/code&gt; (another red flag)&lt;/li&gt;
&lt;li&gt;
&lt;code&gt;host_permissions: ["https://*/*"]&lt;/code&gt; (MAJOR red flag)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I was asking users to trust me with their entire browsing history, all their tabs, and access to every website they visit. For a new tab page.&lt;/p&gt;

&lt;p&gt;Would you install that? Honestly?&lt;/p&gt;

&lt;h2&gt;
  
  
  Rock Bottom
&lt;/h2&gt;

&lt;p&gt;The breakdown was worse than I initially let on.&lt;/p&gt;

&lt;p&gt;I didn't just feel defeated - I felt like a fraud. In a moment of complete despair, I deleted my GitHub account. My projects, my code, my identity as a developer - gone.&lt;/p&gt;

&lt;p&gt;The next day, panic set in. I frantically recreated my account and started rebuilding, but the damage was done. I had destroyed the one thing that proved I was a developer.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Wake-Up Call
&lt;/h2&gt;

&lt;p&gt;After hitting rock bottom, I did something I should have done months earlier. I started researching.&lt;/p&gt;

&lt;p&gt;Not coding. Not adding features. Researching.&lt;/p&gt;

&lt;p&gt;I dove into cognitive psychology papers. Human-computer interaction studies. User experience research. I spent the next few days reading about cognitive load theory, progressive disclosure, and attention management.&lt;/p&gt;

&lt;p&gt;And then it hit me like a truck.&lt;/p&gt;

&lt;p&gt;Everything I built was wrong.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Discovered
&lt;/h2&gt;

&lt;p&gt;Here's what I learned:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cognitive Load Theory&lt;/strong&gt; says our brains can only process so much information at once. Every feature I added was cognitive overhead.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hick's Law&lt;/strong&gt; states that decision time increases with the number of choices. My 9 accent colors and 5 typography themes weren't features - they were decision paralysis.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Progressive Disclosure&lt;/strong&gt; research shows that hiding complexity until needed reduces mental load. My interface showed everything at once.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Attention Studies&lt;/strong&gt; prove that single-focus interfaces outperform multi-element designs. My new tab had 12+ competing elements.&lt;/p&gt;

&lt;p&gt;I wasn't building a productivity tool. I was building a cognitive nightmare.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Pivot
&lt;/h2&gt;

&lt;p&gt;So I did something that felt like giving up but was actually growing up.&lt;/p&gt;

&lt;p&gt;I archived NEXUS. All 23,000 lines of it.&lt;/p&gt;

&lt;p&gt;And I started over.&lt;/p&gt;

&lt;p&gt;But this time, I had a foundation: research.&lt;/p&gt;

&lt;h2&gt;
  
  
  Enter TEMPO
&lt;/h2&gt;

&lt;p&gt;TEMPO (Your rhythm for focus) became everything NEXUS wasn't:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Single primary element:&lt;/strong&gt; A large, elegant clock. That's it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Progressive disclosure:&lt;/strong&gt; Bookmarks hidden until you hover the left edge. No visual clutter.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Minimal permissions:&lt;/strong&gt; Just &lt;code&gt;bookmarks&lt;/code&gt; and &lt;code&gt;storage&lt;/code&gt;. Nothing scary.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Clean codebase:&lt;/strong&gt; ~500 lines total across all files. Every line justified.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Research-based:&lt;/strong&gt; Every design decision backed by cognitive psychology studies.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Code Comparison
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;NEXUS main file:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// 7,199 lines of complexity&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;Nexus&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;initializeAI&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setupPredictionEngine&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;loadQuotesDatabase&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// 200+ quotes&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;initializeThemes&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// 5 themes&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;setupColorSystem&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// 9 colors&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;createSearchEngines&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt; &lt;span class="c1"&gt;// 5 engines&lt;/span&gt;
    &lt;span class="c1"&gt;// ... 7,000 more lines&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;TEMPO main file:&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="c1"&gt;// 60 lines of clarity&lt;/span&gt;
&lt;span class="kd"&gt;class&lt;/span&gt; &lt;span class="nc"&gt;App&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="nf"&gt;constructor&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clock&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bookmarkSidebar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="kc"&gt;null&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;init&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;

  &lt;span class="nf"&gt;init&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;clock&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;Clock&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
    &lt;span class="k"&gt;this&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;bookmarkSidebar&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;BookmarkSidebar&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="p"&gt;}&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The difference is night and day.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Psychology Behind the Design
&lt;/h2&gt;

&lt;p&gt;Every choice in TEMPO is intentional:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;70vh clock size:&lt;/strong&gt; Follows Fitts' Law - larger targets are easier to use and reduce cognitive load.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Hover-activated bookmarks:&lt;/strong&gt; Implements progressive disclosure - functionality exists but doesn't compete for attention.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Soft color palette:&lt;/strong&gt; Research shows high-contrast interfaces increase mental fatigue.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No weather widgets:&lt;/strong&gt; Only 12% of users check weather on new tabs, but it adds 15-20% cognitive load for everyone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No to-do lists:&lt;/strong&gt; Task lists on new tabs create "task anxiety" and transform neutral browsing into work stress.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;No news feeds:&lt;/strong&gt; Creates attention fragmentation and "rabbit hole browsing" that destroys focus.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Irony
&lt;/h2&gt;

&lt;p&gt;The extension that took me 6 months and 23,000 lines to build got rejected four times.&lt;/p&gt;

&lt;p&gt;The extension that took me a few focused days and 500 lines to build? It's clean, fast, and actually solves a real problem.&lt;/p&gt;

&lt;p&gt;Sometimes less really is more.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Learned
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Research before building&lt;/strong&gt;&lt;br&gt;
I should have studied cognitive psychology before writing a single line of code. Understanding the problem space is more important than solving it cleverly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2. Constraints breed creativity&lt;/strong&gt;&lt;br&gt;
Limiting myself to minimal permissions and simple features forced better design decisions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3. Code quality &amp;gt; feature quantity&lt;/strong&gt;&lt;br&gt;
7,000-line files don't impress anyone. They scare people. Clean, readable code is a superpower.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4. User needs &amp;gt; developer ego&lt;/strong&gt;&lt;br&gt;
I built NEXUS for me - to show off my coding skills. I built TEMPO for users - to solve their actual problems.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;5. Failure is data&lt;/strong&gt;&lt;br&gt;
Those four rejections weren't personal attacks. They were market feedback telling me I was solving the wrong problem.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Comeback
&lt;/h2&gt;

&lt;p&gt;TEMPO is now live on GitHub. Clean codebase. Research-backed design. Production-ready.&lt;/p&gt;

&lt;p&gt;But more importantly, I'm a different developer now.&lt;/p&gt;

&lt;p&gt;I think about cognitive load before adding features. I research user psychology before designing interfaces. I write code that humans can read, not just computers.&lt;/p&gt;

&lt;p&gt;NEXUS taught me how to code. TEMPO taught me how to think.&lt;/p&gt;

&lt;h2&gt;
  
  
  For Other Developers
&lt;/h2&gt;

&lt;p&gt;If you're building something complex, ask yourself:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does this feature reduce or increase cognitive load?&lt;/li&gt;
&lt;li&gt;Am I solving a real problem or showing off?&lt;/li&gt;
&lt;li&gt;Would I trust an extension that asks for these permissions?&lt;/li&gt;
&lt;li&gt;Can I explain this feature in one sentence?&lt;/li&gt;
&lt;li&gt;Does my code pass the "6-month test" - will I understand it in 6 months?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sometimes the best feature is the one you don't build.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Future
&lt;/h2&gt;

&lt;p&gt;I'm not abandoning complex projects. But I'm approaching them differently.&lt;/p&gt;

&lt;p&gt;Research first. Build second. Ship third.&lt;/p&gt;

&lt;p&gt;TEMPO is just the beginning. I'm working on more research-based tools that respect users' cognitive resources and privacy.&lt;/p&gt;

&lt;p&gt;Because at the end of the day, good software isn't about how clever you are. It's about how much you help people.&lt;/p&gt;




&lt;p&gt;&lt;strong&gt;&lt;a href="https://github.com/mosaddiqdev/tempo" rel="noopener noreferrer"&gt;TEMPO&lt;/a&gt; is open source and available on GitHub. The research document that guided its development is included - maybe it'll help you avoid my mistakes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Sometimes you have to build the wrong thing to learn how to build the right thing.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>begin</category>
      <category>career</category>
      <category>learning</category>
    </item>
  </channel>
</rss>
