О насБлогКонтакты
Разработка18 апреля 2026 г. 4 мин 2

Supabase vs Firebase 2026: сравнение для казахстанских стартапов и команд

AunimedaAunimeda
📋 Содержание

Supabase vs Firebase 2026: сравнение для казахстанских стартапов и команд

Backend-as-a-service платформы позволяют запустить продукт без выделенного DevOps-инженера. В 2026 году три варианта заслуживают серьёзного рассмотрения — особенно с учётом специфики казахстанского рынка: данные пользователей, расчёты в тенге, интеграция с Kaspi Pay.


Одна строка о каждом

  • Firebase — зрелый Google BaaS, NoSQL, проприетарный, дорогой при росте
  • Supabase — open-source, PostgreSQL, самохостинг, row-level security
  • PocketBase — один Go-бинарник, SQLite, нулевая сложность инфраструктуры

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

Firebase (Firestore)

NoSQL. Нет JOIN — нужно несколько запросов:

// 100 заказов = 101 запрос к базе
const order = await db.collection('orders').doc(orderId).get();
const product = await db.collection('products').doc(order.data().productId).get();

Хорошо работает для chat-like данных. Плохо для финансовых систем с транзакциями.

Supabase (PostgreSQL)

Полноценный SQL с ACID-транзакциями:

// Один JOIN вместо N запросов
const { data } = await supabase
  .from('orders')
  .select(`
    id, total_kzt, status, created_at,
    order_items (
      quantity,
      products ( name, price_kzt, sku )
    )
  `)
  .eq('user_id', userId)
  .order('created_at', { ascending: false });

Row Level Security (RLS) — безопасность прямо в базе данных:

-- Пользователи видят только свои заказы — автоматически
CREATE POLICY "own_orders"
  ON orders FOR SELECT
  USING (auth.uid() = user_id);

-- Продавцы видят только заказы своего магазина
CREATE POLICY "seller_orders"
  ON orders FOR SELECT
  USING (
    EXISTS (
      SELECT 1 FROM stores 
      WHERE stores.id = orders.store_id 
      AND stores.owner_id = auth.uid()
    )
  );

PocketBase

SQLite с REST API, один файл:

const records = await pb.collection('orders').getList(1, 20, {
  filter: `user = "${userId}"`,
  expand: 'items,items.product',
  sort: '-created',
});

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

Метод Firebase Supabase PocketBase
Email/Password
Google OAuth
Apple Sign In
OTP/Magic Link
Phone (SMS) Нет
SAML/LDAP Enterprise Нет

Supabase SMS auth важен для казахстанских приложений — интеграция с местными SMS-провайдерами.


Realtime

Все три поддерживают realtime. Разница в деталях:

Firebase — fastest realtime, built for it:

onSnapshot(collection(db, 'orders'), snapshot => {
  snapshot.docChanges().forEach(change => updateUI(change.doc.data()));
});

Supabase — Postgres → WebSocket + Broadcast + Presence:

supabase.channel('orders')
  .on('postgres_changes', { event: 'UPDATE', schema: 'public', table: 'orders' },
    payload => updateOrderStatus(payload.new)
  )
  .subscribe();

PocketBase — SSE, auto-reconnect:

pb.collection('orders').subscribe('*', e => handleChange(e));

Ценообразование: казахстанская перспектива

MAU Firebase Supabase PocketBase
До 10k Бесплатно Бесплатно ~2 500₸/мес VPS
100k ~25 000-100 000₸/мес 11 000₸/мес ~7 500₸/мес VPS
1M ~250 000-800 000₸/мес ~270 000₸+/мес ~45 000₸/мес VPS

Firebase очень дорожает при росте. Одна страница с 50 карточками товаров = 50 reads. Высоконагруженное казахстанское e-commerce приложение с тысячами посетителей в день — счёт может быть неожиданным.


Суверенитет данных

Важно для казахстанских проектов: ЗРК «О персональных данных» требует хранения персональных данных казахстанских граждан на серверах в Казахстане (или в странах с надлежащим уровнем защиты).

Платформа Серверы в Казахстане Самохостинг Экспорт данных
Firebase Ближайший: Google Europe/Asia Нет JSON
Supabase Cloud Нет (EU/US regions) Да (на своём KZ-сервере) Полный Postgres dump
PocketBase Да (разверните на KZ VPS) Да (один бинарник) SQLite файл

Для данных, которые должны оставаться в Казахстане: Supabase на собственном VPS или PocketBase — лучшие варианты.


Интеграция с казахстанскими платёжными системами

При работе с Kaspi Pay, Freedom Pay и другими KZ-платёжными системами важна надёжность транзакций:

// Supabase: атомарная транзакция через RPC
const { data, error } = await supabase.rpc('create_paid_order', {
  p_user_id: userId,
  p_items: items,
  p_payment_reference: kaspiPayRef,
  p_amount_kzt: amount,
});
-- PostgreSQL функция — атомарно создаёт заказ + списывает баллы
CREATE OR REPLACE FUNCTION create_paid_order(
  p_user_id UUID,
  p_items JSONB,
  p_payment_reference TEXT,
  p_amount_kzt NUMERIC
) RETURNS UUID AS $$
DECLARE
  v_order_id UUID;
BEGIN
  INSERT INTO orders (user_id, payment_ref, total_kzt, status)
  VALUES (p_user_id, p_payment_reference, p_amount_kzt, 'paid')
  RETURNING id INTO v_order_id;
  
  -- Начисляем баллы программы лояльности (1% от суммы)
  UPDATE user_loyalty SET points = points + (p_amount_kzt * 0.01)
  WHERE user_id = p_user_id;
  
  RETURN v_order_id;
END;
$$ LANGUAGE plpgsql;

Суть: PostgreSQL транзакции гарантируют атомарность — либо оба действия выполнились, либо ни одного.


Когда что выбирать

Ранний стартап (3-6 месяцев до PMF):Supabase Free или PocketBase — нулевые затраты, быстрый старт

Продукт с тракцией:Supabase Pro ($25/мес) — реляционные данные, RLS, предсказуемые расходы

Требования суверенитета данных:Supabase на KZ VPS или PocketBase — данные остаются в Казахстане

Масштаб + Google Cloud + большой бюджет:Firebase — самое зрелое решение при неограниченном бюджете


Aunimeda строит production-приложения для казахстанского рынка. Обсудим ваш проект.

Смотрите также: TanStack Query паттерны, Kubernetes для разработчиков

Читайте также

OWASP Top 10 2025: безопасность веб-приложений для казахстанского разработчикаaunimeda
Разработка

OWASP Top 10 2025: безопасность веб-приложений для казахстанского разработчика

OWASP Top 10 — это стандарт критических рисков безопасности. SQL-инъекции, сломанный контроль доступа, SSRF — каждый пункт с реальной атакой на ваш Node.js/Next.js код и конкретным исправлением. Актуально для проектов на казахстанском рынке.

Node.js vs Bun vs Deno 2026: бенчмарки и выбор runtime для продакшнaunimeda
Разработка

Node.js vs Bun vs Deno 2026: бенчмарки и выбор runtime для продакшн

Bun 1.x стабилен в production. Deno 2.0 поддерживает npm-пакеты. Node.js 22 запускает TypeScript нативно. Реальные бенчмарки производительности, сравнение инструментов и конкретные рекомендации для казахстанских разработчиков.

Чистая архитектура и DDD в Node.js: практическое руководство для productionaunimeda
Разработка

Чистая архитектура и DDD в Node.js: практическое руководство для production

Clean Architecture + Domain-Driven Design в Node.js TypeScript — без академизма. Use cases, Domain Entities, Repository Pattern, Aggregate Root. Бизнес-логика изолирована от инфраструктуры — тестируется без базы данных. Рабочий код для production.

Нужна IT-разработка для вашего бизнеса?

Разрабатываем сайты, мобильные приложения и AI-решения для бизнеса в Казахстане. Бесплатная консультация.

Получить консультацию Все статьи