[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-uk-vetcard":3,"technology-slugs-uk":46,"mdc-hgc1ga-key":70},{"id":4,"title":5,"content":6,"date":7,"description":8,"extension":9,"featured":10,"image":11,"links":12,"meta":23,"stack":24,"stem":40,"tags":41,"url":15,"__hash__":45},"projects_uk\u002Fuk\u002Fprojects\u002Fvetcard.yml","VetCard","Публічна частина VetSpace — мультитенантний каталог ветеринарних клінік. Один Nuxt SSR-деплой обслуговує всі клініки: SEO-сторінки клінік, онлайн-запис на прийом з проксуванням до tenant-бекенду кожної клініки, темізація під бренд клініки та підтримка філій.\n\n## Ключові особливості\n\n- **Один деплой — багато клінік** — застосунок маршрутизує за slug клініки; запити на запис і слоти проксуються до власного tenant-бекенду кожної клініки\n- **SEO-first каталог** — 590+ клінік з SSR-сторінками, структурованими даними та локалізованими маршрутами\n- **Брендинг кожної клініки** — сторінка клініки темізується її кольором, з бейджем \"Powered by VetSpace\"\n- **Реальний UX запису** — вільні слоти показують кількість вільних лікарів із кольоровим кодуванням дефіциту\n- **Повна локалізація** — українська, англійська та польська з prefix-маршрутизацією\n\n## Технології\n\n- **Фронтенд**: Nuxt 4 \u002F Vue 3, Tailwind CSS v4\n- **Бекенд**: Laravel catalog API + tenant-ендпоінти для запису\n- **Рендеринг**: SSR для SEO-сторінок, CSR для флоу запису\n- **Тестування**: Vitest юніт-тести + Cypress E2E проти реального бекенду\n","2026-09-20","Мультитенантний каталог ветеринарних клінік: SEO-сторінки клінік, онлайн-запис на прийом, брендинг кожної клініки — один Nuxt-застосунок обслуговує всіх","yml",true,"\u002Fhero\u002Fvetcard.avif",[13,18],{"label":14,"to":15,"color":16,"icon":17},"Live Demo","https:\u002F\u002Fvetcard.pro","primary","i-heroicons-arrow-top-right-on-square",{"label":19,"to":20,"color":21,"icon":22},"Огляд проєкту","https:\u002F\u002Fgithub.com\u002FYurij2015\u002Fvetspace-vetcard","neutral","i-simple-icons-github",{},[25,28,31,34,37],{"name":26,"icon":27},"Nuxt","i-simple-icons-nuxtdotjs",{"name":29,"icon":30},"Vue","i-simple-icons-vuedotjs",{"name":32,"icon":33},"TypeScript","i-simple-icons-typescript",{"name":35,"icon":36},"Tailwind CSS","i-simple-icons-tailwindcss",{"name":38,"icon":39},"Laravel API","i-simple-icons-laravel","uk\u002Fprojects\u002Fvetcard",[26,29,42,43,44],"Multi-tenant","SEO","SSR","RHyDtiD49495RNKUgIdwAcH8oiwELVMSL6Ik4JsT6H4",[47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69],"caddy","cloudflare","digitalocean","docker","filament","github-actions","go","hetzner","hostinger","laravel","mysql","nuxt","php","postgresql","proxmox","redis","stripe","symfony","tailwindcss","terraform","typescript","vite","vue",{"data":71,"body":72},{},{"type":73,"children":74},"root",[75,83,90,146,152],{"type":76,"tag":77,"props":78,"children":79},"element","p",{},[80],{"type":81,"value":82},"text","Публічна частина VetSpace — мультитенантний каталог ветеринарних клінік. Один Nuxt SSR-деплой обслуговує всі клініки: SEO-сторінки клінік, онлайн-запис на прийом з проксуванням до tenant-бекенду кожної клініки, темізація під бренд клініки та підтримка філій.",{"type":76,"tag":84,"props":85,"children":87},"h2",{"id":86},"ключові-особливості",[88],{"type":81,"value":89},"Ключові особливості",{"type":76,"tag":91,"props":92,"children":93},"ul",{},[94,106,116,126,136],{"type":76,"tag":95,"props":96,"children":97},"li",{},[98,104],{"type":76,"tag":99,"props":100,"children":101},"strong",{},[102],{"type":81,"value":103},"Один деплой — багато клінік",{"type":81,"value":105}," — застосунок маршрутизує за slug клініки; запити на запис і слоти проксуються до власного tenant-бекенду кожної клініки",{"type":76,"tag":95,"props":107,"children":108},{},[109,114],{"type":76,"tag":99,"props":110,"children":111},{},[112],{"type":81,"value":113},"SEO-first каталог",{"type":81,"value":115}," — 590+ клінік з SSR-сторінками, структурованими даними та локалізованими маршрутами",{"type":76,"tag":95,"props":117,"children":118},{},[119,124],{"type":76,"tag":99,"props":120,"children":121},{},[122],{"type":81,"value":123},"Брендинг кожної клініки",{"type":81,"value":125}," — сторінка клініки темізується її кольором, з бейджем \"Powered by VetSpace\"",{"type":76,"tag":95,"props":127,"children":128},{},[129,134],{"type":76,"tag":99,"props":130,"children":131},{},[132],{"type":81,"value":133},"Реальний UX запису",{"type":81,"value":135}," — вільні слоти показують кількість вільних лікарів із кольоровим кодуванням дефіциту",{"type":76,"tag":95,"props":137,"children":138},{},[139,144],{"type":76,"tag":99,"props":140,"children":141},{},[142],{"type":81,"value":143},"Повна локалізація",{"type":81,"value":145}," — українська, англійська та польська з prefix-маршрутизацією",{"type":76,"tag":84,"props":147,"children":149},{"id":148},"технології",[150],{"type":81,"value":151},"Технології",{"type":76,"tag":91,"props":153,"children":154},{},[155,165,175,185],{"type":76,"tag":95,"props":156,"children":157},{},[158,163],{"type":76,"tag":99,"props":159,"children":160},{},[161],{"type":81,"value":162},"Фронтенд",{"type":81,"value":164},": Nuxt 4 \u002F Vue 3, Tailwind CSS v4",{"type":76,"tag":95,"props":166,"children":167},{},[168,173],{"type":76,"tag":99,"props":169,"children":170},{},[171],{"type":81,"value":172},"Бекенд",{"type":81,"value":174},": Laravel catalog API + tenant-ендпоінти для запису",{"type":76,"tag":95,"props":176,"children":177},{},[178,183],{"type":76,"tag":99,"props":179,"children":180},{},[181],{"type":81,"value":182},"Рендеринг",{"type":81,"value":184},": SSR для SEO-сторінок, CSR для флоу запису",{"type":76,"tag":95,"props":186,"children":187},{},[188,193],{"type":76,"tag":99,"props":189,"children":190},{},[191],{"type":81,"value":192},"Тестування",{"type":81,"value":194},": Vitest юніт-тести + Cypress E2E проти реального бекенду"]