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

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/vcardtype. - 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?
How can a specialist's contact be saved to a phone from the site?
How is the business-card site set up for SEO?
Does the animated 3D scanner slow the site down on a phone?
Does the site work without JavaScript?
Where is the site hosted?
More in this area
Online Shirt Store on Nuxt 4 with an Owner Admin Panel
a shirt shop in Cheboksary: the owner manages products, prices and orders alone
UNLOCK: Interactive Greeting Cards and Advent Calendars
our own studio service: a card behind a password link, managed from Telegram
DevUnit Lab: A Bilingual Studio Website on Nuxt 4
our own studio site, in production since 29 September 2026
Need something similar?
Tell us about the task — we'll show how we solved it and estimate the scope.