Dragon Ink — Tattoo Sanctuary
Client-side single-page application · React 19 + Vite 8 · multilingual (ru / en / uz)
A client-side single-page tattoo studio website (Dragon Ink — Tattoo Sanctuary) built with React 19 and Vite 8. It is fully static: routing, multilingual i18n (ru/en/uz) and portfolio rendering run in the browser, with the only outbound call being the contact/booking form posting to the Telegram Bot API.
Generated 4 Jun 2026 · 42 files · 11 components · 5 flows
File Architecture
The full source tree as a layered graph — every file with its role, imports, exports and reverse dependencies.
System Design
Runtime topology across the five zones — client, edge, application, data and external services.
Flow Graph
The five most significant application flows, step by step — startup, auth, write, read and error recovery.
Technology
| Component | Technology | Version | Source of Detection |
|---|---|---|---|
| UI library | react / react-dom | ^19.2.5 | package.json |
| Build tool | vite | ^8.0.10 | package.json, vite.config.js |
| React plugin | @vitejs/plugin-react | ^6.0.1 | vite.config.js |
| Routing | react-router-dom | ^7.14.2 | src/App.jsx |
| Animation | framer-motion | ^12.38.0 | component imports |
| i18n core | i18next | ^26.0.8 | src/i18n/config.js |
| i18n bindings | react-i18next | ^17.0.6 | src/i18n/config.js |
| Language detect | i18next-browser-languagedetector | ^8.2.1 | src/i18n/config.js |
| i18n backend | i18next-http-backend | ^3.0.6 | package.json (unused in code) |
| Styling | tailwindcss | ^3.4.19 | tailwind.config.js, postcss.config.js |
| CSS tooling | postcss / autoprefixer | ^8.5.13 / ^10.5.0 | postcss.config.js |
| Image pipeline | sharp | ^0.34.5 | scripts/optimize-images.mjs |
| Linting | eslint | ^10.2.1 | eslint.config.js |
| Outbound integration | Telegram Bot API | n/a (REST) | src/utils/telegram.js |
| Deployment | Vercel (SPA rewrite) | [unresolved] | vercel.json |