Thumbnail Automation / Tool

Sky Lotto / Virtual Lottery

  • 140+

    140+

    140+

    Assets per release

  • 40+

    40+

    40+

    Operators

  • Minutes

    Minutes

    Minutes

    Instead of days

01 Project Overview

The company I worked for was a B2B games supplier, with each new game release requiring marketing thumbnails in a variety of sizes and formats for our casino operator partners.

With more than 40 operators to support, a single release could require over 140 individual assets. A small design team shared responsibility for producing these, making what should have been a straightforward task a significant production bottleneck.

An existing Photoshop template had helped streamline the process, but the document was large, slow and still required considerable manual work. Producing assets for a release could take several days, while onboarding a new operator could mean recreating assets for a back catalogue of more than 50 games.

I saw an opportunity to automate the process, freeing designers from repetitive production tasks and making asset generation accessible to the wider team.

02 Building the Asset Generator

I designed and developed a desktop application using Electron, supported by a custom Figma plugin and a template system that defined the requirements for each operator.

The approach separated the creative work from the repetitive production process. Designers only needed to prepare two source images for each game: a background and a transparent foreground containing the game's logo or key artwork.

This introduced a creative limitation, as the foreground couldn't be integrated into the background artwork in more complex ways. However, the trade-off was considered worthwhile given the significant reduction in production time.

Background image

Transparent foreground image

Creating Templates in Figma

I used Figma to create templates frames defining the dimensions, image positioning and output requirements for each asset.

Each template could specify how the background and foreground images should scale (fit v fill), alongside additional effects such as blur using Figma's built in effects. Additional image layers for operator branding cold also be added. File formats and compression limits were specified by a frame naming convention e.g:

operator_100x100-jpeg100kb would output a jpeg that is less than 100kb

I also developed a Figma plugin that exported these specifications as JSON. Using the naming convention, the plugin automatically grouped individual templates into template sets, with one set containing all the assets required by a particular operator.

This allowed designers to create and maintain operator-specific requirements visually in Figma, without needing to edit configuration files or application code.

Templates in Figma with exported JSON

Generating Assets

The exported template sets were stored in a shared Dropbox folder, which the Electron app referenced through its settings. This kept templates synchronised across the team without requiring application updates.

Using the Node.js library Sharp, the app automatically composited, resized and exported assets according to each operator's requirements, reducing what previously took days of manual production to just minutes.

Generating operator-specific marketing assets using the Electron application.

03 Taking Automation Further

I later helped develop a more automated workflow that built on the same principle of separating source artwork from asset production.

Using Viktor, an LLM-powered assistant integrated with Slack, clients could request marketing assets and specify their requirements through a web interface.

Requests were routed to our internal Slack workspace for review by an account manager. Once approved, the system could prepare a preview or contact sheet for a designer to check before producing the requested assets.

A separate web application also supported batch review and approval, giving the team an opportunity to check the artwork before final generation.

Importantly, the images themselves were not AI-generated. The LLM interpreted requests and coordinated the workflow, while conventional image-processing libraries composited and exported the final assets from approved source artwork.

This extended the original automation beyond internal production, allowing operators to initiate requests without relying on a designer or account manager to manually prepare every asset.

04 Project Impact

The original asset generator reduced a process that could occupy a designer for one or two working days to one that could be completed in minutes.

It also enabled colleagues outside the design team to produce correctly formatted assets, reducing the dependency on specialist designers for routine production work.

The later LLM-assisted workflow extended these benefits by introducing client-initiated requests, automated previews and structured approval stages.

For me, the project demonstrated how a relatively small internal tool could remove a significant operational bottleneck, while creating opportunities to rethink the wider production process.

LONDON, UK

COPYRIGHT 2026 Oliver Farnes

Designed and built by me

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

LONDON, UK

COPYRIGHT 2026 Oliver Farnes

Designed and built by me

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

LONDON, UK

COPYRIGHT 2026 Oliver Farnes

Designed and built by me

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////