🖨️

Business-Card Site for a 3D Printing Engineer

for an additive-manufacturing engineer in Cheboksary: its own domain and a blog instead of a long chat

A business-card site for a 3D printing and reverse engineering engineer in Cheboksary on its own domain rekad3d.ru: a canvas scanner with no libraries, a 5-post blog, Person, ProfessionalService and FAQPage markup, consent-based Yandex Metrica, a QR code and vCard, static files on nginx.

Client: Valery Afanasiev

In production
1 page
profile, process, services, FAQ and contacts with no extra clicks
560 points
per part in the lightened canvas 3D scanner, at most 30 frames per second
107 KB
own fonts instead of Google Fonts, the two main ones preloaded
One-page website of 3D printing engineer Valery Afanasiev: first screen with a canvas 3D scanner
One-page website of 3D printing engineer Valery Afanasiev: first screen with a canvas 3D scanner

The task

A 3D printing and reverse engineering engineer in Cheboksary gets orders from messengers and referrals. He needed a page to send a customer to instead of a long chat: who the specialist is, what he does, how the process works and how to get in touch. It is a business card for an individual specialist, not for a company.

The solution

A business-card site is a short page about a specialist: who he is, what he does and how to reach him. Here it is styled like engineering software, to suit the profession.

  • The first screen is a 3D scanner viewport on canvas: three parts in rotation (a gear, a flange and a bracket), a scanner beam turns the point cloud into a wireframe, and the model rotates with a mouse or a finger.
  • A «Process» section: scan, geometry, print, drawings. A mobile menu and a highlight for the current section in the header.
  • A «Frequently asked questions» section on <details> elements, with no JavaScript.
  • A contact for the phone: a QR code pointing to the page and a vCard file; on a phone, a single «Add to contacts» button replaces the QR code.
  • Own fonts, a link preview image and icons for search results.

How it works

A 3D scanner on canvas with no libraries

Canvas is an area of the page where a script draws graphics. The scanner uses its own 3D projection on canvas 2D with no external libraries. Drawing runs only while the viewport is visible and the tab is active. Points are drawn in three brightness batches, the beam gradients are created once per size, and the pixel density is capped at 1.5. By the developer's measurements, script time on the first screen is about half of the first version's.

A phone contact: QR and vCard

A vCard is a business-card file that a phone opens as a new contact. Nginx serves .vcf as text/vcard, because the standard type list does not include it. On phones the download attribute on the link is removed by a script: with it an iPhone puts the file into Files, without it the phone opens «Create contact» straight away. The vCard gives the city as Cheboksary.

Caching and indexing

The site runs in its own valera-web container with its own nginx config. The page, robots.txt and sitemap.xml are no-cache; CSS, JS and fonts with ?v= are cached for a year and images for a week. A new version of the page is submitted to IndexNow, a protocol a site uses to tell search engines about changes.

Own domain, blog and analytics

The main address is rekad3d.ru. The www, рекад.рф and рекад3д.рф addresses and the old subdomain on the studio's server redirect to it with a 301, keeping the path, so old links and bookmarks keep working.

The blog has 5 posts: restoring a plastic part, choosing a plastic, FDM or SLA, a custom gear, and 3D scanning a part. Each post is marked up as BlogPosting, and the specialist has ProfessionalService markup with a studio in Cheboksary. llms.txt and llms-full.txt are there for AI assistants.

Yandex Metrica loads only after the visitor accepts cookies, and the personal data policy has its own page. Metrica tracks 12 goals: clicks on contacts and call-to-action buttons, the blog, FAQ and reading an article to the end. The site is verified in Yandex Webmaster, Google Search Console and Bing.

Animations that stay light on a phone

All animations except the scanner use only transform and opacity: the name «decoding», the ticker, the skills strip, the drawing of icons and scroll progress. The prefers-reduced-motion setting turns them off, and without JS the page stays static and readable.

Results

  • The specialist's customer needs only one link: services, process and contacts are on a single page.
  • The contact is saved to a phone with one tap or by scanning the QR code.
  • Its own domain rekad3d.ru and a 5-post blog on the tasks people search for.
  • The site is open to search engines, verified in Yandex Webmaster, Google Search Console and Bing, and marked up: Person with services, ProfessionalService, WebSite, ProfilePage, FAQPage, BlogPosting.
  • Metrica with 12 goals runs only with the visitor's cookie consent.
  • The fonts are our own, so there are no requests to Google Fonts.
  • The sources contain no PageSpeed measurements, so we give no scores.

Technologies and why

  • HTML, CSS and JavaScript with no frameworks — the page is light and needs no build step.
  • Canvas 2D — the scanner and the point cloud without external libraries.
  • nginx — serving static files with its own cache rules and the text/vcard type.
  • Docker — a separate site container on the studio's server.
  • JSON-LD — Person, WebSite, ProfilePage and FAQPage markup for search engines and AI assistants.

Status

In production, the site is public: rekad3d.ru. The latest edit, of 8 October 2026: the move to its own domain, a 5-post blog, a personal data policy with consent-based Metrica, and verification in Yandex, Google and Bing.

Questions about this project

Why does an individual specialist need a business-card site if messengers exist?
The page replaces a long chat: one place shows who the specialist is, what he does and how the process runs from scan to drawings. The link is easy to send to a customer, and the site can be found through queries about 3D printing, reverse engineering and 3D scanning.
How can a specialist's contact be saved to a phone from the site?
The site has a vCard contact and a QR code pointing to the page. On a phone, a «Add to contacts» button replaces the QR code: on an iPhone it opens the «Create contact» window at once instead of dropping a file into the Files app.
How is the business-card site set up for SEO?
The page has its own title and description aimed at queries about 3D printing, reverse engineering and 3D scanning, and the h1 carries the name and profession. It has JSON-LD markup for Person with services, ProfessionalService, WebSite, ProfilePage, FAQPage and BlogPosting for articles, robots.txt, sitemap.xml, llms.txt and icons for search results. The site is verified in Yandex Webmaster, Google Search Console and Bing, with the sitemap submitted to all three. Only changed pages are sent to IndexNow.
Does the animated 3D scanner slow the site down on a phone?
The scanner is drawn on canvas 2D with no libraries and draws only while it is on screen and the tab is active. The point cloud is lightened to 560 points per part at no more than 30 frames per second. With the browser's data-saver mode on, a single static frame is shown.
Does the site work without JavaScript?
Yes. Without the script the page stays static and readable. Animations are turned off by the prefers-reduced-motion setting, and apart from the scanner they use only the transform and opacity properties.
Where is the site hosted?
In its own nginx container on the studio's web server, behind an entry nginx. The page, robots.txt and sitemap.xml are always revalidated with the server, while styles, scripts and fonts with a version in the URL are cached for a year.

Need something similar?

Tell us about the task — we'll show how we solved it and estimate the scope.