work details

Karbonkompozit — GRP and Carbon Fibre B2B Catalogue Platform

A multilingual B2B platform combining composite product catalogues, industrial solutions, technical product information and project-based quotation workflows.

Client

MOE Karbonkompozit

Start

01 Mar 2025

Completed

Karbonkompozit — GRP and Carbon Fibre B2B Catalogue Platform interface and project preview
Description

A multilingual B2B platform combining composite product catalogues, industrial solutions, technical product information and project-based quotation workflows.

Case study

Challenge

The composite workshop sells into sectors that have little in common, from municipalities and amusement parks to landscaping, defence and rail supply. Most products are not stocked but made to dimensions and specifications. Enquiries often lacked the technical information production needed, which slowed down quoting.

Approach

The catalogue was structured by sector category, and every product page gained a section on what to send for a quote. The quote form was split into product, service/engineering and spare-parts tabs, with fields for material, dimensions, operating environment, surface finish and technical files. The shared Ensotek backend core was adapted with its own database and product type.

Outcome

The site is live in Turkish and English; 13 products, the product gallery and technical blog posts are managed by the team in the panel. Quote requests are numbered and sent by email, and form, phone and WhatsApp conversions are measured separately, subject to consent.

Tools

Next.js, React, TypeScript, Fastify, Bun, Drizzle ORM, MySQL, next-intl

Key Features
  • 13 live composite products across 7 sector categories

  • Quote form with Product / Service-Engineering / Spare Parts tabs

  • STEP, IGES, DXF/DWG and PDF technical file uploads

  • Material, dimension, environment and surface finish fields

  • Numbered quote records with customer and admin emails

  • Turkish and English with per-language URLs and share images

  • Panel-managed SEO titles and a dynamic llms.txt

  • Consent-based GA4 and Google Ads conversion tracking

  • Admin panel with Search Console, GA4 and Ads summaries

Technologies Used
  • Next.js

  • React

  • TypeScript

  • Fastify

  • Bun

  • Drizzle ORM

  • MySQL

  • next-intl

Design Highlights
  • A technical quote flow instead of a basket: the form asks for what production needs

  • Honest material cards marked "project-dependent" instead of unverified strength values

  • A dedicated 1200×630 share image per page and language; separate TR/EN product collages

  • Stock images removed; the gallery shows only real production photos

  • Three-option cookie consent; without ad consent, no ad tag is loaded at all

Details

Karbonkompozit (MOE Kompozit) is the B2B sales site of a composite workshop in Kahramankazan, Ankara, producing carbon fibre, GRP (glass-reinforced polyester) and fibreglass parts. Its buyers are not consumers but municipalities, amusement and theme park operators, landscaping contractors, shopping centres and event organisers, and firms in the defence and rail supply chain. They do not add items to a basket; they ask for a quote with drawings, dimensions, quantities and lead times. The platform was designed around that way of buying.

Context and requirements

In composite manufacturing, products rarely sit in stock: a ride cabin from the same mould changes with its colour, a GRP container with its volume, a defence part with the customer's specification. The site had two jobs. First, to present products that go to very different sectors in clear groups. Second, to turn incoming enquiries from a vague "can I get a price" into a technical file production can actually assess. That is a fundamentally different problem from the Ensotek cooling-tower sites that share the same core: there it is one product family with a service and spare-parts cycle; here, moulding and lamination capability has to be sold into sectors that have little in common.

Solution and scope

Sector-led product catalogue

The catalogue is organised by category: Municipal Products (GRP waste containers, composite litter bins, GRP water tank, protective enclosure panel, fibreglass service cover), Amusement Park Products (ride cabins, seats, Christmas reindeer and sleigh figures), Landscape Products (decorative planters and vases), Carbon Fibre Products, Composite Panels, Custom Manufacturing (composite train parts, defence components, composite coffin) and Moulds & Parts. Thirteen products are currently live. Each product page carries a gallery, a detailed technical description, production scope, surface and mounting options and a section on what information to send for a quote.

Materials and process

The home page sets carbon fibre and fibreglass/GRP side by side; values such as tensile strength, density and modulus are deliberately shown as "project-dependent". No numerical strength claims were published without verified test reports. A process timeline explains engineering, sampling/prototyping and series production.

Technical quote form

The quote page has three tabs: Product Request, Service / Engineering and Spare Parts. A product request captures product category (carbon fibre, GRP/FRP, fibreglass, panel/sheet, profile/pipe, tank, planter/landscape, custom part), sector, quantity, lead time, material, dimensions, operating environment and surface finish. Buyers can attach PDF, STEP, IGES, DXF/DWG or image files, which are uploaded to storage and linked to the request. Every request is numbered, and both the customer and the admin team receive an email.

Gallery, blog and company pages

The product gallery is built from real production photos; older galleries that held only stock images were unpublished and permanently redirected to it. The blog publishes technical articles on material choice and quote preparation: selecting carbon fibre parts, defining GRP versus fibreglass correctly in a quote, a sample acceptance plan and modular design. About, contact, references and legal pages run on the same content layer.

Admin panel

A separate Next.js admin panel manages products, categories and subcategories, gallery, blog and custom pages, menus and footer, references, reviews, library documents, offers and quote requests, contact messages, media storage, users and roles. On the marketing side it offers Search Console, GA4 and Google Ads summary views, URL inspection, social channel posting and a Gmail connection. Offers can be exported as PDF; audit logs and per-module data export/import are also available.

Technical architecture

  • Frontend: Next.js 16, React 19, TypeScript, Tailwind CSS v4, React Query; Turkish and English via next-intl, each with its own URL prefix.
  • Backend: Fastify 5 on Bun, Drizzle ORM, MySQL, Zod validation and JWT-protected admin endpoints. Product, category, offer, gallery and CMS modules come from the shared Ensotek backend package and are filtered by this site's own kompozit product type.
  • Data model: product, category, gallery and page tables each pair with an i18n table; offers use their own number counter. The project has its own database, and the schema can be rebuilt from seed files.
  • Brand data: logo, company name and contact details are read from site settings; the client's name is not hard-coded as a fallback.

SEO and AI visibility

Page titles, descriptions and share images are managed in the panel. Organization, LocalBusiness, Product, Article, FAQPage, HowTo, BreadcrumbList and ImageGallery structured data are rendered. A 1200×630 share image is generated per page and language, with separate product collages for the Turkish and English home pages. A dynamic llms.txt combines the panel text with real page links, and the sitemap includes language alternates. Old URLs of the retired "Solutions" section 301-redirect to the matching products and categories.

Integrations

  • SMTP via Nodemailer: customer and admin emails for quotes and contact.
  • GA4 and Google Ads: form, phone and WhatsApp clicks are measured as separate conversions; a conversion counts only after a successful save and only once per record ID.
  • Three-option cookie consent: reject, analytics only, analytics plus ad measurement. Without ad consent, no ad tag is loaded.
  • Search Console and Google Workspace connection, a social media posting gateway, Cloudinary/local media storage.

Outcome

The site is live in Turkish and English; products, categories, blog posts and SEO copy are updated by the team through the panel. Pre-release checks (SEO inventory, media SEO audit, share images and conversion tracking tests) are repeatable via scripts. Next on the content side is deepening existing product pages such as the carbon fibre panel prototype and the GRP water tank with quote checklists, without adding unverified certificates or strength figures.