CLAN Aquascaping — Corporate Site and Calculators for Planted Aquarium Design
A multilingual site with five calculators and an AI content pipeline that replaces WordPress for CLAN Aquascaping Design, a planted aquarium design and custom aquarium studio.

Description
A multilingual site with five calculators and an AI content pipeline that replaces WordPress for CLAN Aquascaping Design, a planted aquarium design and custom aquarium studio.
Case study
Challenge
On the old WordPress site, home page content came from a JavaScript slider, so AI crawlers saw an empty page; English canonicals pointed to Turkish pages and the schema was empty. The company's strong track record was not machine-readable, and the theme stack left little room for further improvement.
Approach
The old site was audited and fixed first, then a new bilingual, server-rendered site was built on Next.js and Fastify. Five calculators and a 3D planner, a content pipeline that turns the Instagram archive into human-approved blog drafts, and an entity graph centred on LocalBusiness and FAQPage were added.
Outcome
Fixes on the old site raised the composite GEO score from 55 to 67. The new site is live over HTTPS at clanaquascaping.tech, with tools, blog, press and project content managed from the panel. Moving the main domain to the new platform is the next step.
Tools
Next.js 16, React 19, TypeScript, Fastify, Drizzle ORM, MySQL 8, Bun, Tailwind CSS 4, Claude API, Cloudinary, Nginx, PM2
Key Features
Five free calculators: volume, CO2-pH-KH, fertiliser, PAR, nutrients
Three.js 3D aquarium planner with a one-year habitat model
Save aquarium designs to a member account, export as JSON
Instagram post to per-language blog draft, human-approved
TR/EN structure: separate URLs per language with hreflang
LocalBusiness, FAQPage and SoftwareApplication entity graph
llms.txt, IndexNow and robots rules open to AI crawlers
503 + Retry-After instead of 404 during back-end outages
Panel: services, projects, gallery, press, blog, tools, FAQ
Technologies Used
Next.js 16
React 19
TypeScript
Fastify
Drizzle ORM
MySQL 8
Bun
Tailwind CSS 4
Claude API
Cloudinary
Nginx
PM2
Design Highlights
Server-side rendering: content readable without JavaScript
Static fallback view in the 3D planner for touch and reduced motion
Dark cards with light text on tool pages, measured contrast ≥ 8.32:1
Model limits stated plainly next to calculation results
Brand and copy come from settings, checked automatically before deploy
Details
CLAN Aquascaping Design is a studio based in Kartal, Istanbul: it designs planted aquariums (aquascapes) and builds custom aquariums and aquarium cabinetry. The founder had a strong track record, including international competition rankings and TV documentaries, yet almost none of it was on the website in a form search engines and AI assistants could read. The project set out to replace the old WordPress/WooCommerce setup with a new bilingual, tool-driven site that renders its content on the server and is fed from an admin panel.
Context and requirements
The work began with a GEO/SEO audit of the old site. The measurements pointed to structural problems: the home page content came from a JavaScript slider, so AI crawlers saw an almost empty page; the English pages carried canonical tags pointing to the Turkish ones; the corporate schema was an empty shell, and there was not a single FAQ section on the site. Fixes on the old site raised the composite GEO score from 55 to 67, but the theme and plugin stack would not allow much more. The decision was a new foundation carrying the same content, built correctly from the start.
The brief had two firm boundaries. The company does not offer aquarium maintenance, and that had to be reflected in every layer, from the menu and service copy to the AI content prompts. And the site was not to be a mere showcase: it had to give aquarists calculators that do real work.
Solution and scope
Corporate showcase
- Home page: latest projects, services, work process, press, client testimonials and FAQ; section order and content are managed in the admin panel.
- Services: separate detail pages for planted aquarium design, custom aquarium fabrication, aquarium cabinetry and project consulting, each with long-form copy in two languages and its own SEO fields.
- Projects and gallery: a visual archive of completed aquariums with project details.
- Press: cards linking to TV programmes, documentaries and newspaper coverage.
- References, blog and legal pages: including data protection, privacy, cookie policy and terms of use.
Calculators
The tools page offers five calculators that require no sign-up: aquarium volume and weight, CO2-pH-KH balance, fertiliser dosing, lighting (PAR) and nutrient build-up. Each tool has its own explanatory content and diagram; card copy comes from the database, the calculation logic from code.
The sixth tool, Build Your Aquarium, is a 3D planner built on Three.js. Users set tank dimensions and substrate profile and place rocks, plant groups, fish and equipment; net litres, weight, estimated PAR and water chemistry are all calculated from the same plan. The planner's habitat model runs a full year deterministically in hourly steps, and events such as water changes, filter cleaning and pruning can be added to the timeline. The interface states the model's limits plainly: results are scenario calculations, not biological guarantees. Plans can be stored on the device and exported as JSON, and registered users can save designs to their account. On touch devices and with reduced-motion preferences, a functional static view takes over.
AI-assisted content pipeline
The blog draws on the company's own Instagram archive. A post is pasted into the panel, AI expands it into a blog draft per language, and nothing is published without human approval; there is deliberately no auto-publish. Each source has a usage policy (own content, permitted rewrite, excerpt only, link only), and originality is measured. A provider chain tries several model services in turn. Blog posts ship with an FAQ section and FAQPage data.
Admin panel
A separate Next.js admin panel manages the home page layout, slider, services, projects, gallery, references, press entries, blog, FAQ, custom pages, menu and navigation, calculator copy, testimonials and comments. On the content side there are content sources, a content inbox and AI prompt templates; on the communication side, incoming messages, email templates and notifications. Site settings, media storage, users and roles, audit logs and cache clearing are part of the panel too. For pre-launch feedback, an on-page note tool was built: notes are prioritised, voice notes are transcribed, and administrators are notified.
Technical architecture
- Front end: Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS 4; pages are server-rendered, so content is available to crawlers that do not run JavaScript.
- Back end: Fastify on Bun with Drizzle ORM and MySQL 8; endpoints sit under a versioned API, admin endpoints in a separate scope.
- Data model: services, projects, blog, gallery, references, FAQ and tools each have a dedicated translation table; content ingestion uses source, item and per-language draft tables.
- Multilingual: Turkish and English, with separate URLs per language and hreflang pairing.
- SEO and GEO: an entity graph with LocalBusiness, Person, Service, Review, FAQPage and SoftwareApplication; llms.txt, a sitemap, robots rules open to AI crawlers and IndexNow pings.
- Resilience: if the back end is down, pages return 503 with Retry-After instead of 404, so a temporary outage does not drop pages from the index. The temporary server address is marked noindex automatically.
- Security and branding: signing secrets have no fallback values; the app will not start without them. The visible brand comes from settings, not code, and the deploy script checks this, along with any maintenance-service claim, automatically.
Integrations
A multi-provider AI setup led by the Claude API for the content pipeline; Cloudinary for media; Search Console URL inspection results cached in the panel; Google account connection and OAuth groundwork for social accounts; email and Telegram for notifications. Hosting runs on Nginx and PM2, with a deploy script that handles build, seeding, cache clearing and restart in one command.
Today
The new site is live over HTTPS at clanaquascaping.tech. Service pages were rewritten with real content, leftover template copy and stock images were removed, and the tools page is live with five calculators and the 3D planner. The next step is moving the main domain from the old WordPress site to the new platform.