PDF-accessibility-saas/frontend/lib/supabase/client.ts
Vadym Samoilenko 5cbbcc6e5e
Some checks are pending
CI / Backend — lint + test (push) Waiting to run
CI / Frontend — lint + typecheck (push) Waiting to run
CI / Build + push Docker images (push) Blocked by required conditions
Phase 4–6: Next.js frontend, production deploy, CI/CD
Frontend (Next.js 15 + shadcn/ui + Tailwind, Supabase Auth):
- Landing page: hero, feature grid, social proof (EU Accessibility Act), CTA
- Pricing page: Free / Pro $29 / Business $149 with highlighted Pro tier
- Auth: magic link login + signup (Supabase OTP, no password)
- App layout: sidebar nav (Dashboard, History, Billing, Team)
- Dashboard: drag-and-drop PDF upload with quota error handling
- Jobs history: table with score badges and status indicators
- Billing: Stripe Checkout + Customer Portal integration
- Supabase SSR client/server helpers

Deploy:
- docker-compose.prod.yml: postgres, redis, minio, api, celery, nextjs, caddy
- Caddyfile: auto-SSL for pdfaccess.ai-impress.com
- Watchtower excluded (locally-built images)

CI/CD (Forgejo Actions):
- backend-lint-test: pytest with real postgres + redis
- frontend-lint: tsc typecheck
- build-and-push: docker build → push to registry.ai-impress.com
- SSH deploy to homelab on push to main

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 14:51:14 +01:00

8 lines
214 B
TypeScript

import { createBrowserClient } from "@supabase/ssr";
export function createClient() {
return createBrowserClient(
process.env.NEXT_PUBLIC_SUPABASE_URL!,
process.env.NEXT_PUBLIC_SUPABASE_ANON_KEY!
);
}