Proferprofer

Self-Hosting Setup

Deploy your own Profer backend on Supabase

Most users don't need this. The hosted version at profer.dev is free during alpha — just grab an API key and skip this page. Self-hosting is for teams that need full data control.

Profer is fully self-hostable on Supabase. Here's how to deploy your own backend.

1. Create a Supabase project

Go to supabase.com and create a new project.

2. Run the migrations

In the Supabase SQL editor, run the migrations in order:

-- 001_init.sql
create table profer_pages (
  id text primary key,
  title text,
  html text,
  messages jsonb,
  artifact jsonb,
  questions jsonb default '[]',
  version integer default 1,
  status text default 'awaiting_feedback',
  webhook_url text,
  created_at timestamptz default now(),
  updated_at timestamptz default now()
);

create table profer_feedback (
  id uuid primary key default gen_random_uuid(),
  page_id text references profer_pages(id) on delete cascade,
  version integer not null,
  answers jsonb not null,
  reviewer text,
  source text default 'page',
  created_at timestamptz default now()
);

create index idx_profer_feedback_page_id on profer_feedback(page_id);
create index idx_profer_pages_status on profer_pages(status);

3. Deploy edge functions

supabase functions deploy pages --no-verify-jwt
supabase functions deploy view --no-verify-jwt

4. Set environment variables

In Supabase dashboard → Edge Functions → Secrets:

SecretValue
PROFER_API_KEYA secure random string (optional — leave unset for open access)
PROFER_PUBLIC_URLYour public URL for pages (e.g., https://profer.dev)

SUPABASE_URL and SUPABASE_SERVICE_ROLE_KEY are automatically available in edge functions.

5. Configure your client

Use the Supabase function URL as PROFER_API_URL:

https://your-project-ref.supabase.co/functions/v1

On this page