Expato
GuíasDirectorioAsistente AIComunidadDocumentos
Iniciar sesión
Volver al índice

PRD: Expat Community Platform

Версия: 1.0 Автор: Олег Вегерия / Claude Code Дата: 19 марта 2026 Статус: V1 (в разработке)


1. Обзор продукта

Что это

Нишевая веб-платформа для украинских и восточноевропейских экспатов в Испании. Объединяет релокационные гиды, AI-ассистента, бизнес-каталог и форум сообщества в одном месте на родном языке пользователя.

Зачем это нужно

340,000+ украинцев живут в Испании. Ни одна существующая платформа не обслуживает их на русском/украинском языке. Информация разбросана по Telegram-чатам, Facebook-группам и устаревшим форумам. Каждый новый экспат проходит один и тот же болезненный путь: NIE, empadronamiento, банк, жилье, школы, ветклиники — без структурированной помощи.

Для кого

СегментРазмерБоль
Украинцы в Испании~340kЯзыковой барьер, бюрократия, нет "своей" платформы
Экспаты с питомцами~50% домохозяйствВетклиники, pet-friendly жилье, перевозка животных
Digital nomadsРастущий (DN visa 2023)Налоги, жилье, коворкинги, нетворкинг

Ключевые дифференциаторы

  1. Язык — RU/UA/ES/EN с первого дня (конкуренты только EN)
  2. Pet-ниша — единственная платформа с фокусом на экспатов с питомцами
  3. AI-ассистент — персонализированные ответы по релокации на основе гидов
  4. История основателя — личный опыт релокации = доверие аудитории

2. Пользователи и персоны

Персона 1: "Новичок" — Марина, 34

  • Кто: Украинка, приехала в Валенсию 2 месяца назад с дочкой и котом
  • Контекст: Временная защита, базовый испанский, ищет NIE, школу, ветклинику
  • Задачи: Получить пошаговый гид по NIE, найти русскоязычного ветеринара, задать вопрос AI-ассистенту
  • Барьеры: Не доверяет англоязычным платформам, боится бюрократии
  • Метрика успеха: Получила ответ на свой вопрос в течение 24 часов

Персона 2: "Обустроившийся" — Андрей, 41

  • Кто: Живет в Испании 2 года, IT-специалист, digital nomad visa
  • Контекст: Знает систему, хочет помогать другим и находить услуги
  • Задачи: Отвечать на форуме, искать нового бухгалтера в каталоге, делиться опытом
  • Барьеры: Нет единой площадки — информация разбросана по чатам
  • Метрика успеха: Нашел нужного специалиста, помог новичку на форуме

Персона 3: "Бизнес" — Елена, 38

  • Кто: Владелица юридической фирмы в Валенсии, работает с украинскими клиентами
  • Контекст: Ищет целевой трафик, готова платить за видимость
  • Задачи: Разместить листинг в каталоге, получить premium-позицию, видеть аналитику
  • Барьеры: Facebook-реклама дорогая и не таргетированная
  • Метрика успеха: Получает 5+ лидов в месяц через платформу

3. Архитектура продукта

Модули

Expat Community Platform
|
|-- [Landing]        Email signup, value proposition, social proof
|-- [Guides]         MDX-гиды по релокации (NIE, банки, питомцы, жилье, здоровье)
|-- [Directory]      Бизнес-каталог с категориями, поиском, premium-листингами
|-- [Community]      Форум с категориями, постами, ответами
|-- [AI Assistant]   RAG-чат на базе Claude + контент гидов
|-- [Auth]           Magic link через Supabase
|-- [Dashboard]      Управление листингами, Stripe-оплата
|-- [Pricing]        Тарифные планы для бизнесов

Технический стек

СлойТехнологияОбоснование
FrameworkNext.js 15, App Router, TypeScript strictSSR/SSG, производительность, типобезопасность
DatabaseSupabase (PostgreSQL + Auth + Storage)Бесплатно до 50k MAU, встроенный auth, RLS
StylingTailwind CSS v4 + shadcn/uiБыстрая разработка, консистентный дизайн
AIAnthropic Claude API (Sonnet 4)Лучший для диалога на русском/украинском
i18nnext-intl (ru, uk, es, en)Нативная поддержка App Router
PaymentsStripe (Subscriptions)Стандарт для EU SaaS
EmailResendДешевле SendGrid, хороший DX
DeployVercelZero-config, edge, preview deploys

4. Функциональные требования

4.1 Landing Page

IDUser StoryAcceptance CriteriaСтатус
LP-01Как посетитель, я хочу понять ценность платформы за 5 секундHero с заголовком, подзаголовком, CTA. Value props видны без скролла на desktopDone
LP-02Как посетитель, я хочу подписаться на рассылкуФорма email signup, welcome email через Resend, success/error stateDone
LP-03Как посетитель, я хочу видеть социальное доказательствоСекция с цифрами/отзывами, блок "как это работает"Done
LP-04Как посетитель, я хочу видеть страницу на своем языкеАвтоопределение языка, переключатель RU/UA/ES/ENDone (переключатель работает, auto-detect через Accept-Language)

4.2 Релокационные гиды

IDUser StoryAcceptance CriteriaСтатус
GD-01Как экспат, я хочу найти пошаговый гид по NIEMDX-гид с TOC, reading time, SEO metadataDone (RU)
GD-02Как экспат, я хочу гид по открытию банковского счетаКонкретные банки, документы, срокиDone (RU)
GD-03Как владелец питомца, я хочу гид по перевозке животногоДокументы, ветсертификаты, авиакомпании, карантинDone (RU)
GD-04Как экспат, я хочу гид по аренде жильяГде искать, документы, залог, контрактDone (RU)
GD-05Как экспат, я хочу гид по системе здравоохраненияSIP-карта, врачи, страховка, экстренная помощьDone (RU)
GD-06Как украиноязычный, я хочу читать гиды на украинскомВсе 5 гидов переведены на UKBacklog
GD-07Как испаноязычный, я хочу читать гиды на испанскомВсе 5 гидов переведены на ESBacklog
GD-08Как экспат, я хочу гид по empadronamientoДокументы, муниципалитеты, срокиDone (RU)
GD-09Как экспат, я хочу гид по школам и образованиюТипы школ, запись, homologacionBacklog
GD-10Как DN, я хочу гид по Digital Nomad VisaТребования, процесс, налоги, срокиBacklog

4.3 Бизнес-каталог (Directory)

IDUser StoryAcceptance CriteriaСтатус
DR-01Как экспат, я хочу найти русскоязычного специалиста по категорииСтраница категории с листингами, фильтр по городуDone
DR-02Как экспат, я хочу искать бизнес по ключевому словуПоисковая строка, результаты по названию/описаниюDone
DR-03Как экспат, я хочу видеть детали бизнесаСтраница с контактами, описанием, адресом, часами работыDone
DR-04Как бизнес, я хочу создать бесплатный листингФорма создания через dashboard, базовые поляDone
DR-05Как бизнес, я хочу обновить свой листингФорма редактирования, только свои листинги (RLS)Done
DR-06Как бизнес, я хочу удалить свой листингКнопка удаления с подтверждениемDone
DR-07Как бизнес, я хочу premium-размещениеStripe checkout, 3 тира (Basic/Pro/Premium), приоритет в поискеDone
DR-08Как экспат, я хочу видеть бизнес на картеИнтерактивная карта с маркером на странице листингаPlaceholder
DR-09Как экспат, я хочу фильтровать по "говорит на русском/украинском"Фильтр по языку специалистаBacklog
DR-10Как экспат, я хочу видеть рейтинг и отзывыЗвезды, текстовые отзывы, модерацияBacklog
DR-11Как бизнес, я хочу видеть аналитику листингаПросмотры, клики, конверсия за периодBacklog

4.4 Форум сообщества (Community)

IDUser StoryAcceptance CriteriaСтатус
CM-01Как экспат, я хочу видеть категории форумаСписок категорий с иконками и счетчикамиDone
CM-02Как экспат, я хочу читать посты в категорииСписок постов с пагинацией, автор, дата, reply_countDone
CM-03Как экспат, я хочу читать пост и ответыСтраница поста с деревом ответовDone
CM-04Как зарегистрированный, я хочу создать постФорма создания (title, content, category), auth-gatedDone
CM-05Как зарегистрированный, я хочу ответить на постФорма ответа, auth-gated, reply_count обновляетсяDone
CM-06Как модератор, я хочу закреплять/удалять постыМодераторские действия, ролиBacklog
CM-07Как экспат, я хочу подписаться на темуУведомления о новых ответах (email или in-app)Backlog
CM-08Как экспат, я хочу голосовать за полезные ответыUpvote/downvote, сортировка по полезностиBacklog

4.5 AI-ассистент

IDUser StoryAcceptance CriteriaСтатус
AI-01Как экспат, я хочу задать вопрос о релокации на русскомЧат-интерфейс, стриминг ответа, контекст из гидов (RAG)Done
AI-02Как экспат, я хочу получить ответ на своем языкеОтвет на языке вопроса (RU/UA/ES/EN)Done
AI-03Как экспат, я хочу видеть suggested questionsПредзаполненные вопросы для быстрого стартаDone
AI-04Как экспат, я хочу видеть форматированные ответыMarkdown рендеринг (заголовки, списки, ссылки, код)Backlog
AI-05Как экспат, я хочу получить рекомендацию конкретного специалистаAI интегрирован с каталогом, рекомендует листингиBacklog
AI-06Как экспат, я хочу персонализированный чеклистAI генерирует план на 30 дней по профилю (дети, питомцы, город)Backlog

4.6 Аутентификация

IDUser StoryAcceptance CriteriaСтатус
AU-01Как посетитель, я хочу зарегистрироваться через magic linkEmail form, Supabase magic link, redirect после подтвержденияDone
AU-02Как пользователь, я хочу войти через magic linkEmail form, Supabase magic link, сессия сохраняетсяDone
AU-03Как пользователь, я хочу выйтиКнопка sign out, сессия очищаетсяDone
AU-04Как пользователь, я хочу войти через Google/AppleOAuth провайдерыBacklog
AU-05Как платформа, я хочу защитить роутыDashboard и создание постов требуют auth, middleware редиректDone

4.7 Оплата и подписки

IDUser StoryAcceptance CriteriaСтатус
PY-01Как бизнес, я хочу видеть тарифные планыPricing page с 3 тирами, фичи, CTADone
PY-02Как бизнес, я хочу оплатить premium через StripeStripe Checkout Session, redirect на success/cancelDone
PY-03Как платформа, я обрабатываю webhook при оплатеcheckout.session.completed -> апгрейд листинга в SupabaseDone
PY-04Как платформа, я обрабатываю отмену подпискиcustomer.subscription.deleted -> даунгрейд до basicDone
PY-05Как пользователь, я хочу premium membershipПодписка за 9 EUR/мес, доступ к закрытым фичамBacklog

4.8 Интернационализация (i18n)

IDUser StoryAcceptance CriteriaСтатус
I18N-01Как экспат, я хочу видеть UI на своем языкеВсе UI-строки переведены на 4 локалиDone
I18N-02Как экспат, я хочу переключить языкSelector в хедере, URL меняется (/ru/ -> /en/)Done (проверено E2E 2026-04-19 — работает на всех путях)
I18N-03Как поисковик, я хочу видеть hreflang<link rel="alternate" hreflang="..."> для всех страницBacklog
I18N-04Как экспат, я хочу видеть корректный испанскийВсе диакритические знаки на местеБаг (~25 строк)

5. Нефункциональные требования

5.1 Производительность

IDТребованиеЦелевое значение
NF-01Largest Contentful Paint (LCP)< 2.5s
NF-02First Input Delay (FID)< 100ms
NF-03Cumulative Layout Shift (CLS)< 0.1
NF-04Time to First Byte (TTFB)< 800ms
NF-05Bundle size (JS)< 200KB gzipped
NF-06Lighthouse Performance score> 90

5.2 Безопасность

IDТребованиеТекущий статус
NF-07Row Level Security на всех таблицах SupabaseDone (миграции)
NF-08CSRF-защита на POST-эндпоинтахНе реализовано
NF-09Rate limiting на API (persistent, cross-instance)In-memory (не production-ready)
NF-10Input validation (Zod) на server actions и APIНе реализовано
NF-11Content-Security-Policy headerНе реализовано
NF-12PII masking в логах (GDPR)Не реализовано
NF-13Max message length на /api/chatНе реализовано
NF-14Stripe webhook signature verificationDone

5.3 Доступность (a11y)

IDТребованиеЦелевое значение
NF-15WCAG 2.1 Level AAВсе интерактивные элементы
NF-16Мобильная навигацияHamburger menu < md breakpoint
NF-17Контрастность текстаRatio >= 4.5:1
NF-18Клавиатурная навигацияTab order, focus visible
NF-19Screen reader supportaria-labels, semantic HTML

5.4 SEO

IDТребованиеТекущий статус
NF-20Unique title + description на каждой страницеЧастично
NF-21OpenGraph + Twitter Card метатегиНе реализовано
NF-22JSON-LD structured dataНе реализовано
NF-23Canonical URLsНе реализовано
NF-24Hreflang alternate linksНе реализовано
NF-25Sitemap со всеми публичными страницамиЧастично
NF-26robots.txt (noindex auth pages)Частично

5.5 Надежность

IDТребованиеТекущий статус
NF-27Error boundaries (error.tsx) на всех роутахНе реализовано
NF-28Loading states (loading.tsx) на всех роутахНе реализовано
NF-29Not-found pages (not-found.tsx)Не реализовано
NF-30Graceful degradation без Supabase (mock data)Done
NF-31Graceful degradation без API keys (Stripe, Resend, Claude)Done

6. Модель данных

Таблицы Supabase

users
  id            UUID (PK, = Supabase Auth UID)
  email         TEXT (NOT NULL)
  locale        TEXT (DEFAULT 'ru')
  has_pets      BOOLEAN (DEFAULT false)
  city          TEXT
  created_at    TIMESTAMPTZ

listing_categories
  id            UUID (PK)
  slug          TEXT (UNIQUE)
  name_ru       TEXT
  name_uk       TEXT
  name_es       TEXT
  name_en       TEXT
  icon          TEXT
  created_at    TIMESTAMPTZ

listings
  id            UUID (PK)
  user_id       UUID (FK -> users)
  category_id   UUID (FK -> listing_categories)
  name          TEXT
  description   TEXT
  city          TEXT
  phone         TEXT
  website       TEXT
  is_premium    BOOLEAN (DEFAULT false)
  is_verified   BOOLEAN (DEFAULT false)
  premium_tier  ENUM (basic | pro | premium)
  stripe_customer_id      TEXT
  stripe_subscription_id  TEXT
  created_at    TIMESTAMPTZ
  updated_at    TIMESTAMPTZ

guides
  id              UUID (PK)
  slug            TEXT (UNIQUE)
  locale          TEXT
  title           TEXT
  content_mdx     TEXT
  seo_description TEXT
  published_at    TIMESTAMPTZ
  created_at      TIMESTAMPTZ

forum_categories
  id              UUID (PK)
  slug            TEXT (UNIQUE)
  name_ru/uk/es/en TEXT
  description_ru/uk/es/en TEXT
  icon            TEXT
  sort_order      INT
  created_at      TIMESTAMPTZ

forum_posts
  id            UUID (PK)
  category_id   UUID (FK -> forum_categories)
  user_id       UUID (FK -> users)
  title         TEXT
  content       TEXT
  is_pinned     BOOLEAN (DEFAULT false)
  reply_count   INT (DEFAULT 0)
  created_at    TIMESTAMPTZ
  updated_at    TIMESTAMPTZ

forum_replies
  id          UUID (PK)
  post_id     UUID (FK -> forum_posts)
  user_id     UUID (FK -> users)
  content     TEXT
  created_at  TIMESTAMPTZ
  updated_at  TIMESTAMPTZ

Запланированные расширения

  • reviews — отзывы на листинги (rating, text, user_id, listing_id)
  • events — мероприятия сообщества (title, date, location, organizer)
  • user_profiles — расширенный профиль (avatar, bio, social links)
  • notifications — in-app уведомления
  • subscriptions — premium membership (user_id, stripe_subscription_id, plan)

7. API Endpoints

EndpointMethodНазначениеAuthRate Limit
/api/chatPOSTAI-ассистент (SSE streaming)No10 req/min per IP
/api/subscribePOSTEmail signup (Resend)NoНет (нужен)
/api/stripe/checkoutPOSTСоздание Stripe Checkout SessionYesNo
/api/stripe/webhookPOSTStripe event handlerStripe signatureNo
/[locale]/auth/callbackGETOAuth code exchangeNoNo

Server Actions

ActionФайлAuthНазначение
createListingdashboard/listings/actions.tsYesСоздание листинга
updateListingdashboard/listings/actions.tsYesОбновление своего листинга
deleteListingdashboard/listings/actions.tsYesУдаление своего листинга
createPostcommunity/actions.tsYesСоздание поста на форуме
createReplycommunity/actions.tsYesОтвет на пост

8. Роадмап

Phase 0: MVP Launch (текущий)

Цель: Задеплоить рабочую платформу, начать собирать пользователей.

  • Landing page + email signup
  • 5 гидов на русском
  • Directory CRUD + Stripe premium
  • Forum (categories, posts, replies)
  • AI assistant (RAG chat)
  • Auth (magic links)
  • i18n (4 локали, UI строки)
  • Deploy to Vercel
  • Supabase project setup

Phase 1: Production Hardening (Issues #29-61)

Цель: Сделать платформу production-ready. 5 итераций:

  1. Security & Architecture — rate limiter, validation, CSRF, error boundaries
  2. SEO — metadata, OG, hreflang, canonical, JSON-LD, sitemap
  3. UX & A11y — mobile nav, language selector, markdown в чате
  4. i18n & Code Quality — диакритика ES, перевод ошибок, cleanup
  5. Performance — next/image hero, N+1 queries, lazy mock data

Phase 2: Content & Growth (Месяцы 3-5)

Цель: Органический трафик, первые платные листинги.

  • Гиды на UK/ES/EN
  • 5 новых гидов (школы, DN visa, налоги, водительские права, страховка)
  • Реальные бизнес-листинги (50+)
  • Analytics (PostHog / Vercel Analytics)
  • Search Console + SEO мониторинг
  • Интерактивная карта в листингах
  • Фильтр по языку специалиста

Phase 3: Network Effects (Месяцы 6-12)

Цель: Сетевые эффекты, MRR 10k EUR.

  • Premium membership (пользователи)
  • Reviews & ratings на листинги
  • OAuth (Google, Apple)
  • Events платформа
  • AI интеграция с каталогом (рекомендации)
  • Персонализированный onboarding quiz
  • Модерация форума (роли, флаги)
  • Email-рассылки (еженедельные)
  • Реферальная программа

Phase 4: Scale (Год 2)

Цель: Экспансия за пределы Валенсии.

  • Мадрид, Барселона, Аликанте
  • Marketplace (услуги, аренда, работа)
  • Mobile PWA
  • White-label для других диаспор
  • B2B API для партнеров

9. Метрики успеха

North Star

"% пользователей, получивших помощь в течение 24 часов" — через AI, форум или каталог.

Ключевые метрики по фазам

МетрикаPhase 1 (M3)Phase 2 (M6)Phase 3 (M12)
Email подписчики5002,0005,000
MAU2001,0005,000
Гидов опубликовано51525
Листингов в каталоге10 (mock)100300
Paying businesses020100
MRR (EUR)050010,000
Organic traffic (мес)1005005,000
30-day retention—30%40%
NPS—40+50+
Lighthouse Performance90+90+95+

10. Ограничения и допущения

Допущения

  1. Supabase free tier достаточен до 50k MAU
  2. Claude API costs останутся в пределах 50-100 EUR/мес при текущем трафике
  3. Гиды читаются из файловой системы (MDX), не из БД — миграция в БД при необходимости
  4. Один разработчик (Claude Code) + один product owner (Олег)

Известные ограничения

  1. Нет мобильного приложения — только responsive web (PWA в Phase 4)
  2. Нет real-time — форум обновляется при перезагрузке (Supabase Realtime в Phase 3)
  3. AI без векторной БД — keyword scoring RAG, не embeddings (достаточно для 5-15 гидов)
  4. Нет модерации — форум без ролей и фильтрации (Phase 3)
  5. Нет офлайн-режима — требуется интернет

Риски

РискВероятностьImpactМитигация
Cold start (нет пользователей -> нет бизнесов)ВысокаяВысокийКонтент-first, Telegram-группа, mock данные
Основатель перегружен (Grid Dynamics + Futurist)СредняяВысокийClaude Code автономия, 2-3 ч/день
Конкурент (InterNations, украинский стартап)НизкаяСреднийНиша + язык + pet-фокус = moat
GDPR нарушениеНизкаяВысокийSupabase EU, CSP, PII masking

11. Глоссарий

ТерминОпределение
NIENumero de Identidad de Extranjero — идентификационный номер иностранца в Испании
EmpadronamientoРегистрация по месту жительства в муниципалитете
SIPTarjeta Sanitaria Individual — медицинская карта
DN VisaDigital Nomad Visa — виза для удаленных работников (с 2023)
RLSRow Level Security — политики доступа к строкам в PostgreSQL
RAGRetrieval-Augmented Generation — AI-ответы на основе контекста из документов
Magic LinkВход по ссылке из email, без пароля
ЛистингЗапись бизнеса в каталоге

Документ создан 19 марта 2026. Обновляется по мере эволюции продукта.

Expato

Expato

Comunidad para expatriados en España

Navegación

  • Guías
  • Directorio
  • Comunidad

Guías

  • Obtener NIE
  • Abrir cuenta bancaria
  • Mudanza con mascotas
  • Alquiler de vivienda

Empresa

  • Sobre nosotros
  • Blog
  • Contacto

© 2026 Expato. Todos los derechos reservados.

Política de privacidadTérminos de servicioCookiesAviso Legal