Skip to content
Back to work

Self-initiated · AI product engineering · 2026

OneHub Content Studio.

I built an internal tool that turns retail offers into promo banners, taking repeated Figma work out of the update cycle.

OneHub Content Studio · Public offers walkthrough
OneHub public refresh showing 24 banners across three India retailers in the local walkthrough
Overview

A weekend prototype. Full ownership beyond it.

This began as my own initiative. I built a prototype over a weekend and presented it to my manager and senior managers, who responded positively. I then carried the tool end to end myself: product design, interface, frontend, backend, and the rules that turn offer data into regional banners. I used AI-assisted coding to build it, while owning the decisions and checking how the system behaved.

My role
Sole designer & engineer
Approach
AI-assisted development
Started
Self-initiated weekend prototype
Surface
Internal desktop web tool
01 / The challenge

Three teams were repeating the same production cycle.

01

Collect the offers

The data team gathered retailer offers and passed them to content. I estimate this took 2–3 hours for a regional update.

02

Rebuild the banners

Content handed the data to design. Manually updating the banners in Figma took another 1–2 hours.

03

Verify, then publish

Content checked the offers again for about 30 minutes, then uploaded the finished assets to the CMS. The work repeated across roughly 7–8 regions.

02 / The workflow change

The design is reusable. The offers are the update.

The opportunity was to give the teams their production time back. OneHub connects collection, banner creation, and draft curation in one place, so design does not need to remake the same assets for every offer change.

  1. 01

    Bring in the offers

    Upload the team's spreadsheet or fetch a supported public source.

  2. 02

    Apply the copy and design rules

    Offer values select the wording and regional template, without another copywriting or Figma production pass.

  3. 03

    Curate the regional draft

    Inspect the result, move or replace entries, and handle exceptions in the live editor.

  4. 04

    Export for the CMS

    Download the assets. Content uses the existing CMS publishing workflow.

Estimated weekly manual workload addressed24.5–44 team-hours / week

7–8 regional updates × 3.5–5.5 team-hours for the earlier collection, design, and verification workflow.

Data collection
14–24 h
Figma production
7–16 h
Content verification
3.5–4 h

Estimate based on my reported workflow and one update per region per week. This is the manual workload the tool addresses; net savings require subtracting review and handling time in the new workflow. CMS upload is excluded.

100-banner CSV ready0.14 s

Median local import time until rows and images were ready, across five warm runs.

Single banner PNG0.17 s

Median local export time across five warm test runs.

Public offers banners16.6–38 s

Observed regional refresh times across India, France, and Germany.

The import test used a synthetic 100-banner CSV, not the pictured tracker workbook. A ten-banner ZIP took 1.18 seconds locally (median, five warm runs). Website refreshes are single observations from 31 October 2026; timing varies by source. These measure separate steps, not an entire campaign update.

More capacity for the teams.

Data can upload the numeric tracker or fetch a supported public source. The rules produce banner wording and layouts, taking repeated production out of design. Content receives assets for the CMS, with previews and draft controls available for checks and exceptions. The opportunity spans 7–8 weekly regional updates, rather than a single banner.

03 / The decisions

Where product design became engineering.

The spreadsheet brings numbers. The rules turn them into a message.

The weekly tracker contains prices, gift-card amounts, trade-in values, and availability. I built the interpretation into the importer: it reads those fields, follows the device and retailer rules, and selects the headline, supporting wording, and regional layout.

Supplied US smartphone tracker with product variants, list prices, gift-card amounts, trade-in values, and availability
A source tracker from the earlier workflow, supplied by me. This dated sheet illustrates the input format; its values are not current offers.
Examples of the NAMER copy decisions
What the data containsWhat the tool decides
No qualifying offerUse the device's feature-led headline instead of inventing a discount.
Gift card onlyUse gift-card wording, without suggesting a trade-in is required.
Enhanced trade-in onlyDescribe the qualifying trade-in benefit and its conditions.
Enhanced trade-in + gift cardInclude both benefits in the appropriate headline or supporting offer copy.

The exact wording varies by device and offer priority. A Base trade-in value is not advertised as an enhanced saving; missing and zero-value fields are handled by the applicable rule. The source importer and its tests cover these branches.

That was the product decision: ask the team for the structured data they already receive, rather than asking them to write banner copy or rebuild the design. Fixed rules make those repeated decisions reusable and testable.

01

Keep the rules specific to the offer.

I encoded the copy decisions alongside regional layouts, offer groups, capacity limits, and device-image rules. A spreadsheet supplies the values; the tool supplies the appropriate message and composition.

Region-specific controls keep savings, installment payments, eligibility, and bundles distinct. The importer can combine a qualifying trade-in with a gift card, or choose a different message when that benefit is absent. I backed these cases with tests rather than relying on one good-looking example.

Read offer valuesSelect copy rulesRender template

The tradeoff. More regional rules mean more cases to maintain. The value is taking repetitive production out of design while leaving room for exceptions.

02

Keep incoming offers separate from the Main Draft.

Uploads and website refreshes open as sources. A deliberate move puts a selected banner into the regional Main Draft.

If that device and retailer already exist, the tool offers a replacement and shows the current and incoming values. That gives the operator a clear point to check what will become the working campaign content.

Inspect sourceConfirm move or replaceCurate Main Draft

The tradeoff. Confirmation adds a step, but avoids treating every fetched offer as ready to use. Website extraction still needs checks when source content changes.

03

Let people keep their place.

Browser-style tabs hold uploads, website results, manual banners, and drafts in the same workspace. Each source keeps its filters and edits while the operator switches.

Pinned previews and a live editor keep the banner close to its data. The operator can inspect the output without reopening a design file or losing the source they were reviewing.

Open sourcesSwitch with contextPreview in place

The tradeoff. Tabs retain context within the session; they are not a promise that unsaved work survives a browser reload.

04 / The experience

From incoming offers to a curated banner set.

Actual product screens from the local walkthrough. Source offers include live retrievals from 31 October 2026; draft and editing flows use synthetic data and a test backend. Prices are illustrative, not current offers.

OneHub starting screen with spreadsheet upload and regional templates
Upload

Upload the tracker. Let the rules do the writing.

The operator supplies the supported numeric tracker. The importer reads the values and offer conditions, chooses the applicable wording, and fills the regional banner template. There is no need to manually translate every row into banner copy and a Figma layout.

OneHub public-offer results from three India retailers in the local audit workspace
Fetch

Bring public offers into the workspace.

Refresh a retailer or a supported region directly. This India walkthrough returned 24 banners across three retailers. Operators can inspect the offers and import warnings before curating the result.

Five OneHub source and Main Draft tabs open together
Switch

Keep multiple sources open together.

A spreadsheet, public refresh, manual banner, and Main Draft can sit in separate tabs. Filters and edits stay with their source while the operator switches tasks.

Confirmation before moving a sample retailer banner to India Main Draft
Curate

Choose what goes into Main Draft.

The move action names the region, device, and retailer before adding the banner. An existing entry gets a replace confirmation rather than another duplicate.

Side-by-side current and incoming sample prices before replacing an entry in India Main Draft
Replace

Change the offer without duplicating the banner.

For an existing device and retailer, the confirmation compares the current draft with the incoming price. The operator chooses whether to replace it, keeping one curated entry rather than creating another copy.

OneHub editor with a sample price change reflected in the banner preview
Edit

Check a change as it happens.

The properties panel and live banner share one view. Wording, offers, and price formatting can be adjusted in context; the operator sees the result before downloading it.

OneHub imported IND Banner Weekly workbook showing 27 banners and row-level export actions
Export

Inspect once, then hand off the assets.

The imported weekly workbook holds 27 banners for review. Download an individual PNG or a batch ZIP, then use the company's existing CMS process to publish the assets.

05 / Looking back

What the work taught me.

Initiative became ownership

I did not wait for a brief to automate work I could see repeating. The weekend prototype made the opportunity tangible for my managers; taking it through the frontend and backend made me responsible for the whole outcome.

AI helped me build; I owned the judgment

AI-assisted coding let me work beyond the design file. I still had to define the workflow, model regional differences, validate the rules, and follow the behavior through to the exported asset.

An internal tool still needs engineering discipline

I treated access and data handling as part of the product. Role boundaries and explicit draft updates matter, but the local walkthrough does not establish production security or concurrent-user reliability. Those need separate verification.

Measure the whole job next

The business opportunity is team capacity: less extraction, less repeated Figma production, and fewer handoffs. A timed regional update, including review, corrections, and CMS upload, is the next step to quantify the net hours saved.

The earlier workflow and effort estimates come from my own account. Performance figures are local test observations; net team-hours saved and a universal accuracy rate have not been established.

Up nextScoreKeeperA football companion where every saved match creates a clearer rivalry, ranking goal and reason to play again.