Zweryfikowane 2026-09-06HTTP 200 · 13 rute publice
Co było do rozwiązania
Centrum medyczne z nomenklaturą setek usług taryfowych potrzebowało, aby każda usługa była osobną stroną, możliwą do znalezienia w wyszukiwarce, z ceną i jednostką miary — a nie PDF-em z listą cen. Dodatkowo ceny i zespół się zmieniają, więc klinika musiała móc edytować je samodzielnie, a zapisy miały trafiać do recepcji od razu, a nie do skrzynki e-mail.
Co zbudowaliśmy
Next.js 14.2.35 (App Router) z React 18, TypeScript i Tailwind. Każda pozycja z nomenklatury medycznej stała się własną statyczną trasą: 521 plików `page.tsx` w `src/app`, z czego 481 pod `/servicii` — 184 fizioterapie, 122 servicii consultative, 61 examene medicale periodice, 27 ginecologie, 26 ozonoterapie, 23 pachete de tratament, 18 medicină alternativă, 12 diagnostic, reszta według sekcji. Sitemap na produkcji zawiera 890 adresów. Strona jest dwujęzyczna ro/ru. Edytowalna zawartość (lekarze, pakiety, zabiegi, artykuły, ustawienia, obrazy) jest przechowywana w lokalnej bazie SQLite przez `better-sqlite3`, z dziennikiem WAL i aktywnymi kluczami obcymi, zarządzana z `/admin` przez 20 tras API; uwierzytelnianie używa `jose` do sesji i `bcryptjs` do hasła, a zmiana hasła unieważnia istniejące sesje. Formularze zapisu i kontaktu są walidowane przez `zod` + `react-hook-form` i wysyłają sformatowaną wiadomość bezpośrednio do Telegrama, przez Bot API. Istnieje też kalkulator cen na `calculator`.
Co można sprawdzić z zewnątrz
- 890 adresów w sitemapie produkcyjnym: `curl -s https:/`sitemap.xml` | grep -c '<loc>'` → 890 (2026-09-06).
- Publiczne przypisanie: stopka na `https://constructorul.md/` zawiera „MegaPromoting” z linkiem do `megapromoting.com` (2026-09-06); w historii commit `Add MegaPromoting link to footer` (2026-01-27).