Full-Time Full-Stack Developer | Next.js, Supabase & WordPress Integrations

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

TYPE OF WORK

Full Time

SALARY

11

HOURS PER WEEK

35

DATE UPDATED

Sep 28, 2026

JOB OVERVIEW

Southwind Marketing is a U.S.-based marketing and technology agency looking for an experienced full-stack developer in the Philippines to help build and maintain our branded client and staff platform.

This is a full-time, long-term opportunity. You will help deliver the initial release, build new modules in phases, maintain integrations, and improve the platform as our agency and client base grow.

We are not looking for someone to simply complete tickets. We need a developer who can understand the platform architecture, investigate technical limitations, recommend practical solutions, and take ownership of implementation.

About the Platform

Our clients currently work through account managers for website updates, support requests, project coordination, approvals, files, reporting, and communication.

We are bringing those activities into one secure client portal where clients can:

Request support and website changes
Track projects and tasks
Communicate with staff
Share files
Review reports
Approve work
Edit approved website content
Receive notifications and updates

The platform must also support marketing, consulting, and other clients who may not have a website hosted with Southwind.

Our preferred stack is:

Next.js
React
TypeScript
PostgreSQL
Supabase

An unfinished repository already exists. One of your first responsibilities will be reviewing the existing codebase and determining what should be reused, improved, or rebuilt.

Initial Development Priorities

The first release will include:


Email
login, invitations, and password recovery
Branded client dashboards
Agency administrator, staff, contractor, and client roles
Clients, projects, tasks, deadlines, assignments, and discussions
Support requests and ticket workflows
Private internal notes
Contractor access limited to assigned work
Client onboarding and offboarding workflows
Checklists and asset collection
Private file storage
Manually uploaded reports
Approval workflows
Version-specific approvals
Comments and requested changes
Approval reminders and decision history
In-app notifications

Email
notifications
Audit history
WordPress Integration

Our client websites primarily use:

WordPress
Elementor Pro
Advanced Custom Fields
Cloudways hosting

Clients should eventually be able to edit approved website content through the portal without accessing the full WordPress administration area.

This includes approved:

Text
Images
Links
Custom fields
Existing page and post content

Layouts, templates, global styles, and other protected design elements must remain restricted.

You will review representative staging websites, document supported Elementor widgets, templates, and ACF fields, and develop the connector/API functionality required.

The initial release will focus on editing existing pages and posts. More advanced content creation can be added later.

Security & Permissions

Security is a major part of this role.

You should be comfortable implementing:

PostgreSQL Row Level Security
Server-side authorization
Agency → client → project → assignment access boundaries
Private file permissions
Role-based access controls
Privileged-user MFA
Audit logging
Access revocation
Secure file URLs
Authorization checks for background jobs and notifications
Automated tests proving users cannot access another client’s information

Permissions must be enforced at the database and server level, not only in the user interface.

Future Development

After the initial release, planned phases may include:

Social media content planning
Client approvals for social content
Scheduling and publishing workflows
Reporting
GoHighLevel integration
CRM and onboarding workflows
Reusable project templates
Recurring tasks and work
Advanced intake forms
Workflow automation
Expanded website editing
Website and domain management records
Google sign-in

Facebook
sign-in
Google Drive connections
Future reseller branding
Multi-agency support

These features will be developed in stages.

Third-party API capabilities must be verified before implementation. Existing CRM, phone routing, automations, and client systems must not be disrupted.

Responsibilities

You will be responsible for:

Reviewing the existing repository
Technical architecture and implementation
Front-end and back-end development
Database design
API integrations
WordPress connector development
Testing
Deployment
Security
Documentation
Bug fixes
Ongoing platform improvements
Regular Git commits
Staging demonstrations
Backup and recovery procedures

Code and infrastructure will remain within accounts controlled by Southwind Marketing.

Documentation should be detailed enough that another qualified developer could understand and continue the project.

Required Experience

We are looking for someone with:

Proven experience building production web applications, SaaS products, or client portals
Strong Next.js experience
Strong React experience
Strong TypeScript experience
Strong PostgreSQL experience
Strong Supabase experience
Experience implementing Supabase Row Level Security
WordPress development experience
PHP experience
WordPress REST API experience
Custom WordPress plugin development
Elementor experience
ACF experience
API and webhook integration experience
Experience building role-based permissions
Experience with approval workflows
Experience with private file storage
Git and repository management experience
Strong debugging and problem-solving skills
Communication

You must have:

Strong written English
Clear spoken English
Reliable communication
Ability to explain technical issues in plain language
Ability to communicate blockers early
Ability to manage milestones independently
Some working-hours overlap with U.S. Central Time
Schedule

This is a full-time position.

The initial goal is to deliver a working first release within approximately 90 days. The final schedule will be agreed after you review the repository, technical scope, and acceptance requirements.

This is not a 90-day contract. Development will continue after the initial release as we add additional modules, integrations, and improvements.

To Apply

Please provide:

Two or three relevant web applications, SaaS platforms, or client portals you have worked on
A clear explanation of your personal contribution to each project
Your experience with Next.js, TypeScript, PostgreSQL, and Supabase
Your experience implementing Supabase Row Level Security
Your WordPress, Elementor, ACF, and custom plugin experience
Your experience integrating WordPress with external applications
Your experience building approval workflows or granular permission systems
A brief explanation of how you would approach reviewing an unfinished codebase before continuing development
Your current availability
Your earliest possible start date
Your expected monthly compensation in USD
Whether you will personally perform all development work or whether any other developers would be involved

Please include examples that demonstrate actual application functionality, permissions, integrations, or dashboards. Website design examples alone are not sufficient for this position.

Begin your application with:

SOUTHWIND FULL STACK

so we know you read the entire posting.

For the OnlineJobs.ph fields, I’d use Full Time and probably list the three skills as Full-Stack Development, React/Next.js, and WordPress Development if those are available.

$11/hour to start, with room to increase based on experience and performance.

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0012
Controller Execution Time ( Jobseekers / Job )  0.0226
Total Execution Time  0.0246
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,523,960 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Full-Time-Full-Stack-Developer-Nextjs-Supabase-WordPress-Integrations-1739217
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0150 seconds)  (Hide)
0.0005   SELECT *
                                
FROM exrates
                                WHERE rate_name 
= 'USD-PHP' 
0.0014   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1739217
 LIMIT 1 
0.0017   SELECT *
FROM `employers`
WHERE `employer_id` = 1005066
 LIMIT 1 
0.0017   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `misc` ON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1739217
AND `misc`.`id` IS NULL 
0.0008   SELECT e.business_name, e.logo, e.website, e.rebill_date, e.date_added member_date, hits, DATEDIFF('2026-10-03',ej.date_added) duration_days, DATEDIFF('2026-10-03',e.rebill_date) duration_rebill, ej.*, e.deactivate FROM employers e, employer_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-10-03',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != 1 AND ej.deleted = 0 AND job_id = '1739217' 
0.0007   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1739217 
0.0015   UPDATE employer_jobs SET hit_counts = '***Sep-28-2026=1364***Sep-29-2026=206***Sep-30-2026=124***Oct-01-2026=124***Oct-02-2026=92***Oct-03-2026=25' WHERE job_id= '1739217'  
0.0012   UPDATE employer_jobs SET monthly_hits = '***Sep-2026=1693***Oct-2026=241' WHERE job_id= '1739217'  
0.0010   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id = '' AND job_id = '1739217' AND status LIKE 'sent%' ORDER BY id DESC  
0.0009   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `sc` ON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1739217 
0.0024   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '1005066'
AND `date_added` >= '2022-06-08' 
0.0009   select * from teasers 
0.0003   SELECT * FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)