Case study · 03 / 09

Marketin9

Content marketing marketplace + Chrome extension

A marketplace where advertisers buy sponsored articles on thousands of sites and publishers sell the space — plus a Chrome extension that shows Marketin9 prices right inside Google results.

  • Marketplace
  • AI
  • SEO
  • Chrome extension

Partner

Marketin9

Industry

Marketing & SEO

Platform

Web app + Chrome extension

Our role

Product engineering, end to end

The product

What it does

Advertisers search a catalogue of publishers by authority, traffic and price, build a campaign basket and order sponsored publications. Publishers track orders and revenue. The browser extension follows users around the web: in Google results and on any site it shows whether the domain is on Marketin9, from what price, with which offers.

Our part

What we built

A Vue 3 + TypeScript single-page app that talks to three backends at once — the legacy monolith being phased out, a Laravel 9 API on OpenSearch, and a Laravel 10 microservice for Ahrefs and OpenAI — plus a vanilla-JS Manifest V3 extension that injects UI into other people’s pages.

Under the hood

The hard parts

  1. 01

    Search across 30+ filters

    Domain rating, trust flow, organic traffic, discounted prices in several currencies — all on Elasticsearch/OpenSearch with server-side pagination.

  2. 02

    AI suggestions from embeddings

    Ahrefs keywords → a GPT-written description of each domain → OpenAI embeddings → cosine similarity between every pair of domains, with an 85% threshold for “similar to your campaign”.

  3. 03

    An extension inside Google

    Manifest V3 content scripts batch domains from search results into one API call, inject prices and offer tables, load more as you scroll and sync settings across open tabs through the service worker.

  4. 04

    Integrations that respect limits

    Scheduled Ahrefs syncs that watch monthly quotas, Contadu SEO scoring with async polling, Google Drive and WordPress — plus PayU, PayPal, Stripe, BlueMedia and wFirma invoicing.

The outcome

Advertisers find the right sites in one search — and see Marketin9 offers wherever they already browse.

Inside the product

6 screens, explained

Demo data · click any screen to enlarge

01

Extension in Google results

The content script collects domains from the results and checks them in one request. Next to each result: the “from” price, DR/OT and an expandable offer table; saved domains collect in a floating counter.

02

Popup and settings

On any site the extension checks the domain and shows a “domain available” popup that pauses its 10-second timer on hover. Settings rebuild the UI in every open tab through the service worker.

03

Publisher catalogue with AI suggestions

Server-paginated catalogue on Elasticsearch with 30+ filters, favourites, blacklist, discounts and a campaign basket. The “AI suggestions” toggle narrows it to domains similar to the campaign site.

04

SEO scoring while you write

The article editor counts recommended phrases for the keyword and colours them by target range — green in range, yellow and red overused — with Contadu results polled asynchronously.

05

Domain metrics history

DR, UR, organic traffic, referring domains, backlinks and TF over time, synced from Ahrefs by queued jobs that keep within the monthly quota.

06

Publisher dashboard

Gross revenue by month for any date range with CSV export, order counts by status and KPIs with trend against the previous period.

Stack

Frontend

  • Vue 3
  • TypeScript
  • Vite
  • Vuetify 3
  • Pinia
  • Chart.js
  • Quill

Backend

  • Laravel 9 API (JWT)
  • Laravel 10 / PHP 8.3 microservice
  • OpenSearch / Elasticsearch

AI & data

  • OpenAI (GPT + embeddings)
  • Ahrefs API
  • Contadu API

Extension & ops

  • Chrome Manifest V3
  • Service worker
  • Sentry
  • Cypress

Next case

Katrin →

B2B ordering & promotions platform

Want a product
like this?

Get a free estimate