Full Stack Developer — Next.js and Supabase

Please login or register as jobseeker to apply for this job.

TYPE OF WORK

Full Time

SALARY

$10-$15 per hour

HOURS PER WEEK

40

DATE UPDATED

Aug 15, 2026

JOB OVERVIEW

About Us
We run an AI-powered sales operation for 30+ online coaches with 20 full-time employees. We have built a custom internal CRM in Next.js and Supabase that tracks setter conversations, real-time lead activity, pre-call notes, lead scoring, call metrics, and a full sales tracker — all in one place. Clients use it daily. The app is live, scaling fast, and we need someone to own it with us long-term.

Compensation
$10–$15/hr depending on skill and experience.
30–40 hours per week. Long-term ongoing role — not a one-off project.
Hours are verified via screen recording software. We value trust and transparency, and we set that expectation from day one.

Schedule and Availability
Outcome-based, not clock-in. You manage your own schedule with enough overlap to sync with the founder on priorities and reviews.

What You Will Own
Security: audit and tighten RLS policies, route protection, auth flows, and any exposed endpoints or service-role keys
Self-serve access: implement Supabase Auth so clients can log in directly — no more manual account management
Performance: identify and fix slow queries, unnecessary re-renders, and structural debt
UI/UX: clean up rough edges so the app reads as client-grade, not an internal tool — this matters a lot to us
New features: as we scale from 30 to 100+ clients, you will be building the next wave with us

You Are a Fit If
You have shipped a complete Next.js and Supabase app — not just features inside someone else's codebase
You can implement and explain real auth and RLS security, not just copy-paste from docs
You have audited and improved an existing codebase before — not only built new things from scratch
You scope your own work and figure out what needs to happen without being told
You are comfortable with screen-recorded hours tracking — we need honesty and transparency from the start
You want to grow
with a company long-term, not just complete a contract

TO APPLY YOU MUST SEND A LOOM AND ANSWER THE 2 QUESTIONS

Send us:

1. Send a loom walking through an app you built. Show the backend architecture, not just the UI. Explain one technical decision you made and why.

2. An existing Next.js and Supabase app has no auth layer and service-role keys are used client-side. Walk us through your exact fix sequence — what do you do first, second, third?

3. You are handed a codebase you did not write. What are the first 3 things you do before touching any code?

FINISH ALL 3 TASKS

If you are looking for a short-term or project-based contract, this role is not for you. We are building a long-term team.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0244
Total Execution Time  0.0257
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,504,256 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Full-Stack-Developer-Nextjs-and-Supabase-1709825
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0194 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0003   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1709825
 LIMIT 1 
0.0004   SELECT *
FROM `employers`
WHERE `employer_id` = 789641
 LIMIT 1 
0.0008   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1709825
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-08-17',ej.date_added) duration_daysDATEDIFF('2026-08-17',e.rebill_date) duration_rebillej.*, e.deactivate FROM employers eemployer_jobs ej WHERE e.employer_id ej.employer_id AND
                                   ((
e.user_level >= '500' AND ej.date_added <= e.rebill_date)
                                   OR 
e.employer_id '' OR (ej.date_approved <> '2000-01-01' and DATEDIFF('2026-08-17',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1709825' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1709825 
0.0006   UPDATE employer_jobs SET hit_counts '***Aug-15-2026=745***Aug-16-2026=2***Aug-17-2026=1' WHERE job_id'1709825'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Aug-2026=747' WHERE job_id'1709825'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1709825' AND status LIKE 'sent%' ORDER BY id DESC  
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1709825 
0.0140   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '789641'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0002   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)