The Client
Eksosanlegg AS is Norway's exhaust system specialist, based in Moss. They construct, produce, repair, and import exhaust systems for most vehicle models - with a particular focus on American cars and classic vehicles. Custom fabrication is available by appointment and carried out Monday through Wednesday. Components are sold directly through their online shop, covering everything from straight tubes and Y-pipes to headers, end pipes, clamps, and mufflers. Their partner brands include Supersprint from Italy and MagnaFlow from the United States. The company operates from Rabekkgata 17, 1523 Moss, and can be reached at [email protected].
The Problem
Eksosanlegg had a working website with a large product catalogue - over a hundred pages - but the presentation was letting the content down. All images were stored as jpg and png at the root level without any organisation. The front page category cards had gradient overlays that made them inconsistent with the rest of the site's design language. The hero image showed the top of a car rather than the exhaust - the one thing the company actually specialises in. The gallery preview section used an embedded YouTube iframe instead of owned video content.
The gallery itself had 19 entries pointing to files that no longer existed, three filter categories that didn't accurately describe the content, and a large number of images that were never displayed anywhere. The klemmer product page grouped all clamp types on one page but linked every product card to the same default view, forcing the customer to manually switch between AccuSeal, U-klemmer, and galvanised clamps regardless of which card they clicked.
The underlying codebase was sound. The job was not to rebuild - it was to fix the specific things that made the site feel incomplete and unpolished.
What We Improved
Image migration and organisation
All images were converted to WebP. 94 HTML files were relinked from jpg/png references to their WebP equivalents, and the images were reorganised from a flat root folder into named subfolders: american_classic, cars_and_bikes, Parts, Verksted, and case_toyota_crown. 149 original jpg and png files were deleted once all references had been confirmed safe to remove.
Gallery - rebuilt from scratch
The filter structure was redesigned around three meaningful categories: Verksted (workshop and process shots), Kundebilder (customer cars), and Deler (components and parts). American classic and cars_and_bikes content moved to Kundebilder, parts photography to Deler, and workshop process shots to Verksted. Thirty new gallery items were added from previously unused images. All 19 entries pointing to missing files were removed.
Front page category cards
Six new product images with no background were sourced from a dedicated forside_produkter folder and applied to all six category cards. The gradient overlays that were inconsistent with the rest of the page were removed and replaced with a uniform #111 background across all cards, bringing them in line with the site's design system.
Hero image
The hero was updated to a photograph of an American classic car with the exhaust visible. The image position was adjusted using object-position to frame the bottom of the car - the part that makes the company's speciality immediately legible on first load.
Gallery video section
The YouTube embed in the homepage gallery preview was replaced with a locally hosted MP4. A custom volume control dial was added - muted by default, with the option to increase volume. A small CTA beneath the section points visitors to the company's YouTube channel for more video content.
Klemmer deep linking
The three clamp product cards on the komponenter page (AccuSeal, U-klemmer, Galvaniserte) now link to klemmer.html#accuseal, klemmer.html#uklemmer, and klemmer.html#galvanisert respectively. JavaScript on the klemmer page reads the URL hash on load and automatically activates the corresponding product filter, so the customer lands directly on what they clicked.
Product card images
The AccuSeal card was updated to use the band clamp closeup photograph that best represents the product. The U-klemmer card was updated to use the correct U-clamp image. Product images on the klemmer detail page were adjusted to remove a promotional photo that was not appropriate for the product view.
Decisions Worth Explaining
Migration
Scripted WebP migration, not manual re-upload
The site had around 150 jpg and png images spread across a flat root folder. A Python script handled the bulk relinking across all 94 HTML files in one pass, using regex patterns mapped to the new subfolder structure. Manual updates would have introduced inconsistencies and taken significantly longer.
Gallery
Categories based on what the images actually are
The original gallery filters didn't reflect the content. Calling workshop photos 'Verksted' and customer cars 'Kundebilder' makes the navigation accurate rather than approximate. Deler is a new category that didn't exist before - it gives product photography a home in the gallery.
Video
Local MP4 over embedded YouTube
An iframe embed depends on a third-party service being available and loads additional scripts. A local MP4 is faster, doesn't carry YouTube UI chrome, and keeps the visitor on the page. The YouTube CTA below serves the same promotional purpose without putting the platform's controls in the middle of the homepage.
Audio
Volume dial, not autoplay with sound
Autoplay with sound is blocked by most browsers and would be intrusive. The video plays silently by default - standard practice. Adding an accessible volume slider gives the visitor the option without forcing it.
Navigation
Hash routing on a single product page
Keeping AccuSeal, U-klemmer, and galvanised clamps on one shared page with a filter makes sense - the products are closely related. But linking all three cards to the same default view meant the filter was effectively invisible. URL hash routing adds no complexity to the page and makes navigation behave exactly as a customer would expect.
Scope
No rebuild
The existing codebase was sound. A rebuild would have taken longer, introduced risk, and delivered the same result. Targeted improvements - image migration, gallery restructure, navigation fixes - delivered more value faster across all 106 pages.
The Result
The site now loads faster, references no broken images, and presents every product and image in the correct context. The gallery is accurate and complete. Category cards are visually consistent. The hero communicates what the company does. Customers navigating from a specific clamp card arrive on the correct product view without needing to know the filter system exists. The video section is owned content with a clean CTA. All 94 HTML pages link to WebP images across a properly organised folder structure.
106 pages. Same codebase. Everything in the right place.
Faster loads. No broken images. Every product card lands where it should. The site didn't need rebuilding - it needed finishing.