SENLA Research Hub Ltd
Home About Blog Course Contact
The notebook

Notes from the field.

Research updates, field journals, and reflections from the SENLA team.

← All posts

Article title

Article subtitle / lead paragraph appears here.

E
Author name
5 min read
May 24, 2026
Author workspace · signed in as
Workspace

Your posts.

0
Published
0
Drafts
Local
Storage
0
All posts
Editing post · Saving locally
Ready

Connect Supabase & Google.

Paste your Supabase project's URL and anon (public) key below. Posts will be saved to your Supabase database — so they're not lost if you clear the browser — and Google sign-in will work through Supabase Auth.

Status: Not connected

One-time Supabase setup

  1. Create a free project at supabase.com.
  2. In SQL Editor, paste & run the table schema below.
  3. In Authentication → Providers, enable Google and add your Google OAuth client ID + secret (from console.cloud.google.com). Set the authorized redirect URI to the one Supabase shows you.
  4. In Settings → API, copy your Project URL and anon public key, and paste them above.

SQL schema

create table if not exists posts (
  id uuid primary key default gen_random_uuid(),
  title text not null,
  lead text,
  body text,
  cover text,
  category text,
  tags jsonb default '[]'::jsonb,
  author text,
  author_email text,
  author_avatar text,
  status text default 'draft',
  created_at timestamptz default now(),
  updated_at timestamptz default now()
);

alter table posts enable row level security;

-- Anyone can read published posts
create policy "read published" on posts
  for select using (status = 'published');

-- Authenticated users can read their own drafts
create policy "read own" on posts
  for select using (auth.jwt() ->> 'email' = author_email);

-- Authenticated users can insert their own posts
create policy "insert own" on posts
  for insert with check (auth.jwt() ->> 'email' = author_email);

-- Authenticated users can update / delete their own posts
create policy "update own" on posts
  for update using (auth.jwt() ->> 'email' = author_email);
create policy "delete own" on posts
  for delete using (auth.jwt() ->> 'email' = author_email);

Your URL and anon key are stored only in your browser (localStorage). The anon key is safe to expose publicly — Row Level Security (above) controls what each user can do.

Saved

Embed a video

Paste a YouTube, Vimeo, or Google Drive link

Supported: youtube.com · youtu.be · vimeo.com · drive.google.com