Client work for OC Racing

OC Racing

How does a media brand become a platform that helps people buy, with prices that keep themselves current?

The ocracing.com homepage with the line “Sim Racing is for Everyone.”, a sample build and figures on partners and products.
ocracing.com homepage, October 2026. Design and build by CIDIX; logos and product names belong to their manufacturers.

CIDIX designed and built ocracing.com for the sim racing brand OC Racing, including a sim rig configurator, product comparison, prebuild setups, a forum connected to Discord, review blocks with live product data, its own ad slot measurement and four sim racing calculators. Behind it runs a data pipeline that collects and checks prices from dozens of shops every day.

Client
OC Racing
Field
Sim racing media and buying advice
Period
2025–2026
Status
Live, in operation
Platforms
Web
Services
Design, Website development, WordPress extensions, Data integration, Editorial tools, Ad technology, Interactive calculators, Automation, Operation

Context

OC Racing is a sim racing brand with a YouTube channel, a Discord community and a website. Part of its income comes from partner programmes and discount codes. The website was meant to do more than show articles and help people buy. That needs current prices, real discounts, knowledge of which parts fit together, and a place for the community's questions.

CIDIX scope

Design and development of ocracing.com on behalf of OC Racing. This covers page structure and design and custom WordPress extensions for the sim rig configurator, product comparison, prebuild setups and a forum connected to Discord. It also covers review blocks for the editorial team, an ad slot plugin with its own measurement, four sim racing calculators, and the product and price data pipeline including its operation. Articles, reviews, community and brand partnerships are OC Racing's work.

Outcome

A running platform with daily deals, a sim rig configurator, product comparison, prebuild setups, a forum, calculators and product pages whose prices update automatically every day, plus tools the editorial team uses to place product data and ad slots in articles.

The sim rig configurator with a loaded MOZA setup of wheel base, wheel, pedals, shifter and cockpit with individual prices.
Configurator with a setup shared by link. The “MOZA BUILD” marker shows the chosen ecosystem; prices come from the daily collection.
The configurator on a smartphone with search, ecosystem marker and the first component.
The same configurator on a phone.

The commission

OC Racing reaches sim racers through videos, Discord and its own website. Someone reading a review there often wants to know right away: what does it cost now, where is it discounted, and does it fit my wheel? The website was meant to answer that without the team maintaining prices by hand every day, and to give the community a place for questions.

CIDIX designed and built ocracing.com on behalf of OC Racing: page structure, custom WordPress extensions for configurator, comparison, prebuilds and forum, and the data pipeline behind them. The editorial content, the community and the brand partnerships are OC Racing’s work.

A configurator that knows compatibility

In the sim rig configurator, visitors build a setup from twelve categories, from wheel base, wheel and pedals through cockpit and seat to monitor, VR and accessories. The catalogue loads once; search, filters by category, manufacturer and price, and sorting then run in the browser without a wait per click.

Many parts only work within one hardware ecosystem. As soon as someone picks a part from a specific manufacturer, that sets the setup’s ecosystem: the configurator then shows only matching and universal parts and marks the setup visibly, for example as “MOZA BUILD”. Nobody ends up with a basket of parts that do not work together.

Each product has prices from several shops in different currencies. The configurator shows subtotals per category and a total, converted with current exchange rates from the server; if that request fails, a stored table steps in. A finished setup can be shared as a link, for example in the forum. It stays saved in the browser and follows visitors as a small summary across other pages, so deals can be added to the setup directly.

Compare, suggest, ask

Three more building blocks use the same catalogue. The product comparison puts two parts side by side and lists the most compared pairs. Prebuild setups offer ready-made combinations by budget that open in the configurator with one click. And the forum collects questions in eight boards.

A large part of OC Racing’s community is active on Discord. Instead of opening a second, empty place, a custom forum extension takes threads from selected Discord channels and files them into the matching boards. Answers that would otherwise vanish in the chat history become findable on the website.

Product data inside the article

On ocracing.com a review is also a way to buy. For that the editorial team has a set of ready-made blocks in the WordPress editor. They include a recommendation card with verdict, audience, pros and cons, a verdict block with recommendation, ideal buyer and major drawback, a “How I tested” box with test duration, titles and comparison hardware, callouts, a table of contents and price buttons. On phones a slim bar with product and price stays at the edge of the screen.

The editorial team writes the verdict and the assessment. Product name, price and buy links, however, are chosen from the website’s product database, and the blocks pull that data into the article live. A review from last year therefore shows today’s price without anyone opening the article. Next to the buy link sits the shop’s matching discount code.

Ad slots that count honestly

For advertising partners CIDIX built a custom ad slot plugin. It places slots at fixed positions in articles, such as after the introduction, in the middle and at the end, and measures what happens there itself. An impression only counts once at least half of the slot has been visible for one second. After that the script records how long the slot was in view in total and, on a click, the time since the impression.

The measurement is built for real use. Events are delivered reliably even when the page is left or the tab is switched, and when someone comes back a new viewing phase starts. Only the page path is sent, no parameters from the address. If wanted, the same events also go to an analytics tool such as Plausible or Google Analytics. Even slots without a booked ad record how often they are seen. That makes it possible to offer ad slots with traceable numbers.

Calculators for your own setup

Under “Tools” there are four calculators, built as their own extension. The field of view calculator works out the seating distance, the monitor size or the angle of the side monitors for a target viewing angle, for single, triple and curved screens including bezel width. The fuel calculator plans timed and lap races with safety laps; a reverse mode finds the highest allowed consumption per lap, and a strategy mode splits fuel across stints and pit stops.

The tyre pressure calculator works out the cold pressure for the setup screen from the target pressure in the race, the tyre temperature and the air temperature, with presets for car classes such as GT3 or LMP. The force feedback calculator goes furthest: from the wheel base’s torque and the desired force it calculates the headroom before clipping and shows in a simulated telemetry trace where detail would be lost. Below it are concrete settings for eight simulators, from Assetto Corsa Competizione through iRacing to Le Mans Ultimate, each with the menu path in the game.

Prices change every day

Sim racing hardware is sold in many shops and regions, often by the manufacturer itself in separate country shops. The first version in October 2025 was an experiment with single shops. By February 2026 it had become a configuration-driven set of shop collectors that ran daily on a server and handed deals to the website.

The current version knows 39 shop configurations, including manufacturer shops in up to five regions. Many shops run on Shopify and expose their products as a structured feed. One shared collector covers all of them instead of separate code for each shop. Only shops with their own technology get their own collector.

39 shopsregions, currencies Collectiondaily, Python Checksdiscount, condition Catalogueprice history Daily dealsone product, many shops Configuratorprices, ecosystem Product pagesprice comparison a person confirms uncertain matches
Data pipeline diagram, drawn for this case study. Not a screenshot.

A discount is only a discount if it is true

Shops deliver faulty data: strike-through prices that never applied, percentages above ninety, items that are only cheap because they were returned. A deals page loses trust the moment it shows such things as bargains. The pipeline therefore checks every discount for plausibility and detects from titles and attributes whether an item is refurbished, B-stock or open-box. Such items are labelled instead of being sold as new.

Every run ends with an honest result. If a shop fails, the run reports it instead of quietly carrying on with less data. In the last documented run, 38 of 39 shops were collected and 1,408 deals were published.

The same product in twenty shops

A wheel has a different name in every shop. To compare prices, the pipeline has to recognise that it is the same product. Clear matches are assigned automatically. Uncertain cases go into a curation log where a person confirms or rejects the match. The decision is stored and does not have to be made again every day.

While the catalogue was first built, a language model suggested which hardware ecosystem a product belongs to, for example MOZA, Fanatec or Simagic. The suggestions were reviewed before they entered the catalogue. Prices are stored in a database with history. The website receives them in chunks and only adopts them with a final commit step.

Operation without watching

The pipeline runs as a scheduled service on a Linux server. After each run a health check reports its state, and problems are sent as a message to a Discord channel. The OC Racing team does not need to check whether prices are current; they are told when they are not.

What this work shows for your project

OC Racing shows that CIDIX does not only build its own products but also designs, develops and runs websites for clients. With a clear line between what the client provides and what the technology has to deliver.

The tasks behind it exist in many industries. A configurator that knows compatibility helps sell machinery, furniture or software licences just as well. A retailer wants to match supplier prices, a comparison site needs current offers, a brand wants its community in one place. Everywhere it comes down to preparing data from third-party sources reliably so that people can make a decision more easily.

The other building blocks transfer as well. Editorial blocks with live data suit any magazine, blog or shop that writes about products. Its own ad slot measurement gives publishers numbers that do not depend on a third-party ad network. And a good calculator answers a customer’s question before they pick up the phone.

Technology and what it is for

WordPress with Breakdance
Page structure and design, editing by OC Racing
Custom WordPress extensions (PHP, JavaScript)
Configurator, comparison, prebuilds, forum, import endpoints
Discord integration
Bring community threads into the forum
Python
Shop collection, checks, catalogue building
Shopify product feeds
One collector for many Shopify shops
SQLite
Price history and curation log
Google Gemini
Ecosystem suggestions while building the catalogue
systemd timers, health checks, Discord alerts
Daily run with alerting
Custom blocks for the WordPress editor
Review blocks with product data from the database
IntersectionObserver and sendBeacon
Measure visibility, viewing time and clicks of ad slots
Custom tools plugin (JavaScript)
Calculators for FOV, fuel, tyre pressure and force feedback