Workstream Progress
Click to filter
Overall
Urgent — Blocked & Overdue
Needs immediate attention
Team Workload
Tasks by team member
Active & Immediate Tasks
In Progress · Immediate · Blocked
ID
Task
Workstream
Assignee
Priority
Status
Due
%
All Tasks
ID
Task
Workstream
Assignee
Priority
Status
Due
%
My Tasks
Team Overview
Click a card to drill into their tasks
Select a team member above
Project Timeline
Nov 2025 – Jun 2026
| ID | Dept | Task | Assignee | Status | Start | End | Timeline |
|---|
Add New Task
Required fields marked *
Settings & Admin
Manage people, workstreams, Supabase connection
🔌 Supabase Connection
◉ Demo Mode — Not Connected
Once you complete the Supabase setup (see Setup Guide), paste your credentials below. All data will save permanently and sync in real time across every user.
👥 Team Members
Add Team Member
📂 Workstreams
Add Workstream
⚙️ System
7 days
Setup Guide
Supabase backend + daily usage — step by step
👤 Ayaz — Director
1
Morning check — 60 seconds
Open Dashboard. Red banner = blocked. Amber = critical open. KPIs show health instantly. Done in under a minute.
2
1-to-1 prep via People view
Click People → select person → see full workload, completion rate, blocked items. Zero manual prep needed before any call.
3
Keyboard shortcuts
N = add task · F = search · D = dashboard · Esc = close modal
📋 Joshua — Manager
1
Update tasks as you go
Click any task row → update status + % complete → add a comment → Save. Reflects everywhere instantly.
2
Bulk status updates
Tick multiple tasks with the checkbox → bulk action bar appears at the bottom → set status for all in one click.
3
Flag blockers immediately
The moment a task is stuck, set it to Blocked. It surfaces in Ayaz's red alert banner on the Dashboard straight away.
🔧 Supabase Backend Setup
Complete once. Takes 30–45 minutes. No experience needed — follow every step exactly.
1
Create your free Supabase account
Go to supabase.com and click Start your project. Sign up with Google or email. It is entirely free at your usage level.
2
Create a new project
Click New project. Name it lydiam-command-centre. Choose a strong database password — save it in your password manager. Select region Europe West (London). Click Create new project and wait ~60 seconds.
3
Run the database setup SQL
In Supabase, click SQL Editor in the left sidebar → New query. Copy the entire SQL block below and paste it in. Click Run. You will see "Success. No rows returned." — this creates all your tables, security rules, and indexes.
-- LYDIAM COMMAND CENTRE — DATABASE SETUP
-- Run this entire block in Supabase SQL Editor
-- 1. PROFILES (extends Supabase auth users)
create table public.profiles (
id uuid references auth.users on delete cascade primary key,
name text not null,
email text,
role text not null default 'member', -- director | manager | member
assignee_name text, -- must match exactly how name appears in tasks
color text default '#4ade80',
initials text,
created_at timestamptz default now()
);
alter table public.profiles enable row level security;
create policy "Users can view all profiles" on public.profiles for select using (true);
create policy "Users can update own profile" on public.profiles for update using (auth.uid() = id);
-- 2. TASKS
create table public.tasks (
id text primary key,
department text,
project text,
workstream text,
task text not null,
description text,
assignee text,
priority text,
status text default 'Not Started',
date_assigned date,
target_date date,
date_completed date,
pct_complete integer default 0,
dependencies text,
notes text,
created_by uuid references public.profiles(id),
updated_at timestamptz default now(),
created_at timestamptz default now()
);
alter table public.tasks enable row level security;
-- Directors and managers see all tasks
create policy "Directors and managers see all tasks" on public.tasks for select
using (
exists (select 1 from public.profiles where id = auth.uid() and role in ('director','manager'))
);
-- Members see only their own tasks
create policy "Members see own tasks" on public.tasks for select
using (
exists (
select 1 from public.profiles
where id = auth.uid() and role = 'member'
and assignee_name = tasks.assignee
)
);
-- Anyone can insert tasks (manager/director)
create policy "Managers can insert tasks" on public.tasks for insert
with check (
exists (select 1 from public.profiles where id = auth.uid() and role in ('director','manager'))
);
-- Anyone can update tasks they can see
create policy "Authenticated users can update tasks" on public.tasks for update using (auth.uid() is not null);
create index on public.tasks(assignee);
create index on public.tasks(status);
create index on public.tasks(workstream);
-- 3. COMMENTS
create table public.comments (
id uuid default gen_random_uuid() primary key,
task_id text references public.tasks(id) on delete cascade,
author_name text not null,
author_initials text,
text text not null,
created_at timestamptz default now()
);
alter table public.comments enable row level security;
create policy "All authenticated users can view comments" on public.comments for select using (auth.uid() is not null);
create policy "All authenticated users can insert comments" on public.comments for insert with check (auth.uid() is not null);
create index on public.comments(task_id);
-- 4. WORKSTREAMS
create table public.workstreams (
id uuid default gen_random_uuid() primary key,
name text not null unique,
color text default '#4ade80',
created_at timestamptz default now()
);
alter table public.workstreams enable row level security;
create policy "All authenticated users can view workstreams" on public.workstreams for select using (auth.uid() is not null);
create policy "Directors can manage workstreams" on public.workstreams for all
using (exists (select 1 from public.profiles where id = auth.uid() and role = 'director'));
-- 5. AUTO-UPDATE timestamp on task change
create or replace function update_updated_at()
returns trigger as $$ begin new.updated_at = now(); return new; end; $$ language plpgsql;
create trigger tasks_updated_at before update on public.tasks
for each row execute function update_updated_at();
-- 6. Trigger: auto-create profile on signup
create or replace function handle_new_user()
returns trigger as $$
begin
insert into public.profiles (id, name, email, role)
values (new.id, coalesce(new.raw_user_meta_data->>'name', split_part(new.email,'@',1)), new.email, 'member');
return new;
end;
$$ language plpgsql security definer;
create trigger on_auth_user_created after insert on auth.users
for each row execute function handle_new_user();
-- Done! All tables, policies, indexes and triggers are set up.
4
Get your API credentials
In Supabase, click the gear icon (bottom left) → Project Settings → API. You will see two values:
• Project URL — looks like https://abcdefghij.supabase.co
• anon public key — a long string starting with eyJ…
Copy both. Keep them safe — do not share the service_role key with anyone.
• Project URL — looks like https://abcdefghij.supabase.co
• anon public key — a long string starting with eyJ…
Copy both. Keep them safe — do not share the service_role key with anyone.
5
Create user accounts for your team
In Supabase → Authentication → Users → Invite user. Add each team member email. They get an email to set their own password.
Then go to Table Editor → profiles table. Find each person's row and edit:
• name — their display name
• role — director, manager, or member
• assignee_name — must match exactly how their name appears in tasks (e.g. "Joshua", "Liam")
• initials — two letters, e.g. JO, LI
Then go to Table Editor → profiles table. Find each person's row and edit:
• name — their display name
• role — director, manager, or member
• assignee_name — must match exactly how their name appears in tasks (e.g. "Joshua", "Liam")
• initials — two letters, e.g. JO, LI
6
Connect the dashboard
Open this file in Chrome. Go to Settings in the sidebar. Paste your Project URL and Anon Key. Click Connect to Supabase. The badge turns green. You are live.
7
Import your 257 existing tasks
Click Export in the top bar to download all current tasks as CSV. Then in Supabase → Table Editor → tasks → Import data from CSV. Upload the file. All tasks are now in the database permanently.
8
Host it for your team (free)
Go to netlify.com → sign up free → drag and drop this HTML file onto the deploy area. Netlify gives you a URL like lydiam-ops.netlify.app. Share that URL with your team. Everyone logs in with their own credentials. Directors see everything. Members see only their tasks. All changes sync to the same database instantly.
Client Management
117 clients across corporate and individual segments
Account ⇅
Client Name ⇅
Country ⇅
Type
Onboard ⇅
KYC ⇅
Risk ⇅
Volume ⇅
Status
Letters
Deal Tickets
Create and manage deal tickets
No deal tickets yet. Click + New Ticket to create one.
Sales Pipeline
Track opportunities from lead to close
Board
Today
List
Commission
Onboarding
Manage client onboarding from application to live
Board
List
SLA Tracker
Generate Letter
Version History
Banking Rails
Issuing Entities
Directory
Leave
Training & Certs
Org Chart
Calendar