Case StudyChrome ExtensionAllegro AdsE-commerce

Panel Pro: How We Built an AllegroAds Management Extension for 2,000+ Agency Users

Published · 11 min read · By the Optymized team

Panel Pro is an advanced AllegroAds management panel built as a Chrome extension for digital marketing agencies managing campaigns on Allegro — Poland's largest e-commerce platform. Built in partnership with Pryzmat.Media, it has grown to 2,000+ users and a 4.4-star rating on the Chrome Web Store. This is the story of how we built it and what we learned along the way.

1. The challenge: managing 50+ Allegro Ads campaigns by hand

Allegro is to Poland what Amazon is to the US — the dominant e-commerce marketplace where millions of transactions happen every day. For digital marketing agencies running Allegro Ads campaigns, the native advertising panel is the central tool. And it was never built for agencies managing dozens of clients at scale.

The problems were specific and painful. There were no bulk operations — adjusting bids across 50 campaigns meant clicking into each one individually, changing a value, saving, going back, and repeating. Cross-campaign reporting did not exist — agencies had to manually export data from each campaign, paste it into spreadsheets, and build their own aggregated views. Multi-client management was a nightmare of tab switching and mental context juggling.

The agencies we talked to were spending 3 to 5 hours per week on work that was purely mechanical — not strategic, not creative, just clicking through the same interface over and over. For a team managing 20+ clients, that adds up to an entire person's workload lost to repetitive operations.

Our business partner, Pryzmat.Media, came to us with a clear brief: their agency team needed better tooling, and the native Allegro Ads panel was not going to provide it anytime soon. They needed something that worked now, not a feature request filed into a backlog.

2. Why a browser extension — not a SaaS dashboard

The first instinct most teams have is to build a standalone dashboard. Pull data from the platform's API, display it in your own UI, let users manage everything from a single place. It sounds clean. In practice, for Allegro Ads, it was a non-starter.

Allegro's API has limitations

Not every feature available in the web dashboard is exposed through the API. Some campaign settings, reporting granularities, and management actions simply are not accessible programmatically. Building a SaaS dashboard on top of an incomplete API means you are always one step behind the native interface.

Zero API dependency

A browser extension injects directly into the existing Allegro Ads dashboard. It reads the same data the user sees. It clicks the same buttons the user clicks. If a feature exists in the web UI, the extension can work with it — regardless of whether Allegro has exposed it through an API or not.

No context switching

Agency teams already know the Allegro Ads interface. They have muscle memory for where things are. A browser extension enhances the interface they already use instead of forcing them to learn an entirely new tool. The adoption curve is nearly flat — install the extension, and your existing workflow gets new superpowers.

Faster time to value

Building a full SaaS dashboard means authentication, data syncing, permissions, hosting, and a UI that replicates what Allegro already provides. A browser extension skips all of that. We built and shipped the first working version in weeks, not months.

The key decision

Instead of building around the platform, we built on top of it. The extension treats the Allegro Ads dashboard as its foundation — adding what is missing without replacing what already works. This is the fundamental advantage of the browser extension approach for platform-dependent tools.

3. Technical architecture

Panel Pro is built on the same production stack we use for all our extensions, refined over 100+ shipped versions. Here is how the pieces fit together:

React + CRXJS + Vite

The core build pipeline. CRXJS is the Vite plugin that understands Chrome extension structure — we are contributors to the project. It reads the manifest, handles content scripts, background workers, and hot module replacement automatically. React provides the component architecture for every UI surface: injected panels, popups, and settings pages.

Content script injection into Allegro's SPA

Allegro Ads is a single-page application. Routes change without full page reloads. The DOM is constantly being rebuilt by the framework. Our internal react-content-script-injector library monitors injection points and automatically re-mounts Panel Pro's UI components when Allegro re-renders or navigates. Client-side route changes, dynamic content loading, A/B tests on Allegro's side — all handled automatically.

Shadow DOM for style isolation

Panel Pro injects its own UI elements directly into Allegro's pages. Without style isolation, Allegro's CSS would break our components and our CSS would break Allegro's layout. Shadow DOM provides true encapsulation — styles inside the shadow root do not leak out, and Allegro's styles do not leak in. Our library handles injecting Tailwind into the shadow root, font loading across the shadow boundary, and React Portals for modals and dropdowns.

TanStack Query for data caching

Campaign data, bid information, and reporting metrics are read from the Allegro interface and cached locally using TanStack Query. This means the extension UI stays responsive even when Allegro's pages are loading. Stale-while-revalidate patterns keep the data fresh without hammering the DOM with constant reads. Background refetching ensures numbers stay current across tab switches.

TypeScript end to end

The entire codebase is TypeScript. Chrome API types, message schemas between content scripts and the service worker, and the data models for campaigns and reports are all fully typed. This catches an entire class of bugs at build time that would otherwise surface as silent failures in production.

Background service worker for cross-tab state

Agency users often have multiple Allegro tabs open — one per client account. The background service worker acts as the central state coordinator, syncing settings, cached data, and user preferences across all active tabs. When a user changes a setting in one tab, every other tab picks it up instantly via chrome.storage.onChanged.

The entire extension is covered by end-to-end, integration, and unit tests. CI/CD automatically builds and deploys on every code change — a fix goes from code to production in minutes, not days.

4. Key features we built

Every feature in Panel Pro was driven by the same question: what is the team doing manually today that we can automate or simplify? Here is what we shipped:

01

Bulk campaign management

Select multiple campaigns, apply changes to all of them at once. Pause, resume, adjust budgets, change targeting — operations that used to require clicking into each campaign individually now happen in a single action. What took 45 minutes across 50 campaigns now takes 30 seconds.

02

Automated bid adjustments

Set rules for automatic bid changes based on performance metrics. If a campaign's cost-per-click exceeds a threshold, lower the bid. If ROAS is above target, increase it. The extension monitors campaign performance data and applies adjustments according to rules the agency defines — no more manual bid babysitting throughout the day.

03

Cross-campaign reporting

Aggregated views across all campaigns, all clients, all accounts. Performance summaries that Allegro's native panel simply does not offer. Agencies can see total spend, average ROAS, and top-performing campaigns across their entire portfolio without leaving the Allegro dashboard.

04

Client collaboration tools

Annotations, notes, and tagging systems layered on top of Allegro's interface. Account managers can leave context about why a campaign was paused, what the client requested, or what the next optimization step is. This context lives in the extension and travels with the team — no more digging through Slack threads to find a decision.

05

One-click report exports

Generate client-ready reports directly from the Allegro Ads dashboard. Select the campaigns, pick a date range, and export a formatted report that can go straight to the client. No more copy-pasting into spreadsheets, no more screenshot decks, no more "I will send you the numbers by end of day."

Each feature was built iteratively with direct feedback from agency teams using Panel Pro daily. We shipped weekly, gathered feedback, and adjusted. The features that exist today are the ones that survived real-world usage, not the ones that sounded good in a planning meeting.

5. Results: 2,000+ users and 3-5 hours saved per week

Panel Pro has grown entirely through word-of-mouth in the Polish e-commerce and digital marketing community. No paid acquisition, no Product Hunt launch, no influencer partnerships. Agencies started using it, told other agencies, and it spread.

2,000+

Active users on the Chrome Web Store

4.4 / 5

Star rating across 13 reviews

3-5 hrs

Saved per week per agency team

The time savings come from the accumulation of small efficiencies: bulk operations that replace one-by-one clicking, reports that generate in seconds instead of being assembled manually over an hour, bid adjustments that happen automatically instead of requiring constant monitoring.

For agencies managing 20+ client accounts, those 3 to 5 hours per week translate directly into capacity. That is time the team can spend on strategy, client communication, and campaign optimization — the work that actually drives results.

The word-of-mouth growth tells us something important: when you build a tool that solves a specific, painful problem for a tight-knit community, you do not need a marketing budget. The Polish e-commerce agency community is small enough that a genuinely useful tool gets noticed quickly. The 4.4-star rating after 13 reviews is not a vanity metric — it is agencies voting with their workflows.

6. Lessons learned

Building Panel Pro reinforced several principles that apply to any extension that injects into a third-party application. Here is what we took away:

Third-party SPAs change — build for it

Allegro updates their Ads dashboard regularly. CSS class names change, DOM structure shifts, new elements appear, old ones are removed. If you hard-code selectors and assume the page structure will stay the same, your extension will break within weeks. We built robust DOM monitoring with multiple fallback strategies: if one selector breaks, the extension tries alternative paths. MutationObserver watches for structural changes and re-injects components automatically. This approach means minor Allegro updates rarely require a Panel Pro update.

Shadow DOM is non-negotiable

We learned this the hard way on earlier projects. Without Shadow DOM isolation, your injected UI is at the mercy of the host page's CSS. Allegro's stylesheets are complex and change frequently. A CSS update on their side could suddenly break your button styling, mess up your layout, or make text unreadable. Shadow DOM eliminates this entire class of problems. It is more work upfront — you need to handle font loading, portal rendering, and Tailwind injection into the shadow root — but it pays for itself within the first month of production use.

Build for a specific workflow, not a general tool

Panel Pro is not a "general Allegro enhancement." It is a tool for agencies managing multiple Allegro Ads campaigns. That specificity is its strength. We know exactly who the user is, what they do every day, and where the pain points are. Every feature maps to a real workflow step. This focus led to faster adoption than a broader, more general tool would have achieved. Users install it and immediately see value because it solves their exact problem, not a generic approximation of it.

Error monitoring is not optional

When Allegro pushes an update, we need to know within minutes if something broke. Panel Pro includes built-in error reporting that alerts us to injection failures, DOM changes that affect our selectors, and runtime errors across the user base. We often know about Allegro UI changes before most users notice. This lets us push fixes proactively, sometimes before any user reports an issue.

Weekly shipping builds trust

We shipped updates to Panel Pro weekly during active development. This cadence built trust with the agency users — they saw their feedback turning into features within days, not quarters. It also meant bugs were caught and fixed quickly. Our CI/CD pipeline makes this sustainable: every merge to main triggers a build, test, and deploy cycle. No manual steps, no deployment ceremonies.

The biggest takeaway

Building on top of a platform you do not control is a fundamentally different engineering challenge than building your own application. The platform will change under you. The question is not whether it will break — it is how fast you can detect and fix it. Invest in monitoring, fallback strategies, and a fast deployment pipeline. Everything else follows from that.

Need an extension built for your agency's workflow?

We built Panel Pro from zero to 2,000+ users. If your agency team is wasting hours on repetitive browser-based work, we can build an extension that solves it. Tell us what your workflow looks like — we will tell you what we can automate.

Who's behind this

Tomasz Dłuski

Tomasz Dłuski

Founder & CEO

Senior Software Engineer with 10+ years of experience. Previously part of a company that scaled from 5 to 50+ engineers. Now building Optymized — a company that combines enterprise project delivery experience with own SaaS products. Maintainer of CRXJS (3.9k GitHub stars), one of the most popular tools for building browser extensions.

Let's discuss your project

Whether you need a custom browser extension, a dedicated dev team, or technical consulting — let's find the best approach together.

or send us a message