Open source · MIT licensed

Proctored exams,
without the per-seat fees.

Self-hostable exam platform with Safe Exam Browser lockdown, webcam snapshots, invite-only allowlists, and server-side grading. Next.js + Supabase.

Take A Test - Proctored exams, without the per-seat fees. | Product HuntTake A Test on Nick Launches
supabase/schema.sql · server-side grading
-- Correct answers live in an admin-only table.
-- Candidates can't read it — even via direct API calls.
create table answer_keys (
  question_id uuid primary key references questions(id),
  correct     jsonb
);

alter table answer_keys enable row level security;
create policy "admin_only" on answer_keys for all
  using (exists(select 1 from profiles
                where id = auth.uid()
                  and role = 'admin'));

-- Grading runs in a SECURITY DEFINER function so the
-- client never has to fetch the correct answers.
submit_attempt(attempt_id, terminated) → void

Features

What's in the box.

Self-hosted. No per-candidate billing.

Proctoring

Forced fullscreen, clipboard block, tab-switch detection, periodic webcam snapshots, auto-submit on violations.

SEB-locked

One-click Safe Exam Browser config. Server verifies the BEK hash so only SEB can load the exam.

Invite-only

Single-use codes locked to specific emails. Strangers can't even see the test exists.

Server-side grading

Correct answers live in an admin-only RLS-isolated table. Candidates can't query them — even with crafted API calls.

Image questions

Upload images on the question prompt or any MCQ option. MCQ + long-answer types supported.

Free to host

Runs on Vercel + Supabase free tiers. Handles thousands of candidates at roughly $0.

Stack

Next.js + Supabase.

Postgres with Row-Level Security, Auth, and Storage. Safe Exam Browser is optional.npx vercel deploy to ship.

Next.js 15TypeScriptSupabaseTailwindSEBMIT