Skip to content

Case · Our studio

The platform we built for ourselves to our own drawings.

SEO7.ES — мобильная версия
🌐

3 languages out of the box

🤖

AI-generated blog

🔍

Turnkey SEO + AEO + GEO

💳

Service calculator with cart

Trilingual website, AI article generation for SEO/AEO/GEO, a case portfolio, a service calculator with a cart, an AI briefing and an admin panel — all on one backend.

seo7.es is our own full-cycle platform: we built for ourselves what we build for clients — a website that brings in leads on its own, with an AI blog, a portfolio, pricing and automated publishing.

SEO7.ES — десктоп

Our own business, not client work

Want a similar project?

Take a short brief — we’ll come back with a plan and a quote.

In brief: seo7.es is our own full-cycle platform. A trilingual website, a blog fed by an AI article factory, a portfolio of cases, a service calculator with a cart, an AI briefing and an admin panel all run on one backend. We built for ourselves exactly what we build for clients, so the studio’s showcase doubles as its working tool.

Client: SEO7’s own project · Site: https://seo7.es · Category: studio platform

What matters most in this project?

  • Three languages out of the box: Russian, Spanish and English, with a language gate against mixed locales.
  • A blog with an AI article factory tuned for classic search, answer boxes and neural networks.
  • A service calculator with a cart: the client assembles a quote and sees the price before any conversation.
  • Prerendered pages for search and AI crawlers, which barely execute JavaScript.
  • Six service-area pages and a case portfolio with internal pages.
  • Our own admin panel for content, the blog and enquiries.

What is the project built with?

Frontend:
React 18 + Vite + TypeScript + Tailwind CSS v3
Backend:
Node.js (Express) + Prisma ORM + MySQL
AI:
cascaded article generation and translation, a language QA gate against locale mixing
SEO infrastructure:
SPA prerendering (SSG) for search engines and AI crawlers, sitemap, robots, llms.txt, JSON-LD Schema.org
Design:
golden ratio, framer-motion animations, self-hosted fonts (Manrope), no render-blocking
Deployment:
static frontend, backend on a VPS, CI with auto-deploy

How did it start?

The studio needed proof rather than a website. Anyone can show screenshots of other people’s projects; handing over a link to your own platform and saying “yours will work like this” is a different matter.

So our own platform was built by the same rules as the client ones: performance, accessibility, markup, three languages and prerendering for crawlers. Everything we normally defend in other people’s projects had to hold up on ours.

The second purpose is practical. The calculator produces a quote without us, the AI briefing captures the task in the client’s own words, the blog is filled by the article factory and enquiries land in the admin panel. The showcase works as a tool, not as a folder of screenshots.

What was built?

🌐 What pages does the site have?

  • Home page with an animated hero: golden ratio, word rotator with a shine, running strip of real cases
  • A “SEO7.ES” brand preloader with a moving shimmer before the app loads
  • Separate mobile and desktop hero components (not a “squeezed desktop”)
  • Top menu (CardNav) with locales, search and login, a logo that collapses on scroll
  • “About the studio”, “Contact” pages, a footer with a white logo
  • Scroll indicator and smooth transitions between sections
  • Responsive at 375 / 768 / 1024 / 1440, no horizontal scroll

🧭 How are the 6 service pages built?

  • Web development, SEO, AI-SEO, ads/traffic, AI bots, automation
  • Each one: per-locale H2/lead, packages, a micro-service grid, a targeted CTA
  • Tier-marked features (Start / Pro / Max) with a legend and colour scale
  • Package expansion into 3–4 columns with a ~1 s animation, tooltips on stages
  • Local selling points in topFeatures, measurable KPIs in the guarantees

🧮 How do the service calculator and cart work?

  • Interactive selection of micro-services across 6 areas, price in real time
  • A global “Your set” cart (PricingCartContext), a side panel (Drawer)
  • Studio gifts: the cheapest of the chosen items + a base bonus pool
  • Checkboxes on stage rows, deep-link to the expanded service card
  • A /precios page with 6 areas and a special-offers table

📝 How does the AI-powered blog work?

  • Automatic article generation in the “etalon” format: SEO + AEO + GEO in one structure
  • ES base language → translation into RU/EN with a language QA gate (Cyrillic detection in es/en)
  • Atomic 40–60-word blocks, a Quick Answer, definition boxes, expert quotes
  • An FAQ block with FAQPage Schema, related articles, internal linking
  • An article = one record with three locales (etalonData), draft/published
  • Automated publishing, cover generation, scheduled jobs

💼 How are the portfolio and cases presented?

  • A project showcase: cards with real screenshots (laptop + phone, DeviceDuo)
  • Case page: split-hero, 2×2 highlights, a device block, a feature list, FAQ
  • A running project strip on the home page (desktop — hover tooltips, mobile — swipe)
  • A /portfolio listing with JSON-LD ItemList / CollectionPage
  • The case sitemap is generated from the registry at build time

🌍 How is the site multilingual (RU / ES / EN)?

  • Three full locales, language auto-detection by route
  • hreflang between locales, canonical URLs, tracking-parameter cleanup
  • Dedicated content on every page, no machine-translation feel
  • Protection against one language leaking into another's fields (at generation and validation)

🔍 What was done for SEO?

  • A <SEO>/PageSeo component: title, description, OG/Twitter, canonical, robots
  • sitemap.xml and robots.txt, sitemap generated from the data at build time
  • A single Schema.org graph (@graph): Organization, WebSite, BreadcrumbList
  • Page prerendering into static HTML for search-engine indexing

🤖 What was done for GEO and AI search?

  • llms.txt to control LLM access to the content
  • Content structure tuned for citability in ChatGPT, Perplexity, AI Overviews
  • JSON-LD rendered into the DOM (outside Helmet) — visible to crawlers without JS
  • Schema.org Article + FAQPage on blog articles

♿ How is accessibility ensured (WCAG 2.2 AA)?

  • One h1 per screen (visual headings are divs, the SEO h1 is sr-only)
  • Visible focus states, aria labels on icon buttons, alt on images
  • AA contrast, tooltips dismissable with Escape, aria-hidden on decoration
  • prefers-reduced-motion respected across all animations (rotator, strip, shines)

⚡ How was the site made faster?

  • Self-hosted fonts (Manrope) with no render-blocking Google Fonts
  • Lazy image loading, width/height against layout shift (CLS)
  • Route-level code-splitting, animations only on transform/opacity
  • Prerender of key pages → a fast first paint

🎨 How do the design system and animations work?

  • Design tokens (--c-*), a single 1400px layout, Manrope typography
  • Golden-ratio proportions (φ≈1.618): rhythm, shine timings, split columns
  • Orchestrated animations: word → word shine → button shines → change
  • An online /style-guide page as the source of truth for the style

🗂 What powers the backend and API?

  • Express + Prisma ORM + MySQL, a service key for automations
  • Endpoints for the blog, article generation, briefing and requests
  • Field truncation to DB limits, idempotent regeneration by slug
  • Frontend error logging with throttling into the admin

🛠 What does the admin panel do?

  • A separate panel for content, blog and lead management
  • Locale tabs while editing, draft/published statuses
  • Frontend error logs, settings and service operations

📦 How do DevOps and deployment work?

  • Static frontend + backend on a VPS, CI with auto-deploy on push
  • Healthcheck after deploy, database backups
  • Separate environments (dev / prod), env variables with no secrets in the code

What is the result?

MetricValue
Language versions3: Russian, Spanish, English
Service areas on the site6
Blogarticles produced by an AI factory
Price estimationcalculator with a cart, no phone call
Crawler readinessprerendering, sitemap, robots, llms.txt, Schema.org
AccessibilityWCAG 2.2 AA
DeploymentCI with auto-deploy on push and a healthcheck
Build and deploy after a pushabout 7 minutes
Reply to an enquiry from the site24-48 hours

Not sure where to start?

We’ll review your case in a free consultation and propose a solution.

“A model is built on numbers, and a number cannot lie. Eleven is always eleven, in any language and any context. An adjective needs someone to interpret it. That is why our pricing page scores higher than any other: there you simply cannot write in adjectives.”

Evgenii Slepinin, founder of SEO7, systems architect

Frequently asked questions

What is seo7.es?

It is our own full-cycle platform: the studio's trilingual website with an AI blog, a portfolio, a service calculator and an admin — all on a single backend.

Which tech stack is used?

Frontend: React 18 + Vite + TypeScript + Tailwind. Backend: Express + Prisma + MySQL. Plus AI article generation and SPA prerendering for search engines and AI crawlers.

How does the AI blog work?

An article is generated in a single "etalon" format for SEO+AEO+GEO, then translated into three locales with a language QA gate that blocks mixed-language content from publishing.

What is the SEO + AEO + GEO format?

SEO — ranking in Google/Yandex; AEO — landing in quick answers and featured snippets; GEO — being cited by ChatGPT, Perplexity and AI Overviews. An article is written to work for all three engines at once.

Why prerendering and llms.txt?

Most AI crawlers do not run JavaScript. SPA prerendering serves them ready HTML with Schema.org, and llms.txt plus the sitemap help both search and ChatGPT/Perplexity answers.

How is multilingual support set up?

Three full locales (ru / es / en) with language auto-detection, hreflang, canonical URLs and dedicated content on every page — no machine-translation feel and no leaking between languages.

What does the service calculator do?

A client builds "their set" from micro-services across 6 areas, sees the price in real time, gets studio gifts and submits a briefing request.

How do packages and services work?

6 services (websites, SEO, AI-SEO, ads, AI bots, automation), each with 3 packages and tier-marked features. It is clear what Start, Pro and Max include and how they differ.

What is in the admin panel?

Content and blog management, requests and leads, article publishing statuses, frontend error logs and settings — all in a separate, protected panel.

Is the site fast?

Yes: self-hosted fonts with no render-blocking, lazy images, reserved space for content (no layout shift), code-splitting and prerender of key pages. Animations run on transform/opacity.

How accessible is the site (a11y)?

One h1 per screen, visible focus states, aria labels on icon buttons, WCAG 2.2 AA contrast and prefers-reduced-motion respected across all animations.

How does the site look on mobile?

Mobile and desktop have separate hero components, not a "squeezed desktop": their own typography, a finger-swipeable project strip, full-width buttons and a brand preloader.

How does a client request flow?

Cross-site CTAs lead to the AI briefing, WhatsApp or Telegram. The briefing captures the task and module set, the request lands in the admin and the client gets an estimate.

Can you build such a platform for my business?

Yes — it is our core service. We start with the website, then add a blog, portfolio, calculator, bots and automation as you grow.

Can the project launch in phases?

Yes. The "everything on one backend" architecture lets you start with the site and requests, then add the blog, calculator, bots and automation as separate phases without rewrites.

Who owns the code and the data?

All yours: source code, credentials and the database. The platform is not locked in — it can be developed anywhere.

Related projects.

Ready for your project?

Leave a request — we’ll estimate the timeline and price for your business.