Full-Stack Next.js Developer — Build a Nationwide US Car Shipping Website (Project → Permanent Role)

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

TYPE OF WORK

Full Time

SALARY

8000

HOURS PER WEEK

40

DATE UPDATED

Sep 14, 2026

JOB OVERVIEW

Pay: $[2,000–8,000] fixed for the build, paid in four milestones. After launch: permanent role at $[800–2,000]/month depending on hours. We want one developer who owns this site for years, not a contractor who disappears after delivery.

About the project

We are launching a nationwide US auto transport (car shipping) lead-generation website. It is not a brochure site. It is a programmatic SEO site that will grow to thousands of pages: 50 state pages, hundreds of city pages, and thousands of route pages ("Ship a car from Los Angeles to Dallas"), all generated from a database, plus service pages, cost pages with a calculator, guides, and a multi-step quote form that sends leads to our CRM.

You will receive: a complete Figma design with a component library, a written technical SEO spec, and a route dataset. You build it exactly, fast, and clean.

What you will build

Core

Next.js (App Router, TypeScript) with static generation for all location and route pages and ISR so pricing updates regenerate pages without a full rebuild
PostgreSQL database for cities, routes, distances, transit times, price bands, FAQs
Headless CMS (Sanity, Payload, or Strapi) so writers can edit service pages and guides without touching code
Page templates from Figma: home, quote flow, service, cost + calculator, state, city, route, guide, legal, 404, thank-you
Multi-step quote form with server-side validation, spam protection, and delivery to our CRM via API/webhook
Cost calculator and transit-time estimator using the route data

SEO (from our spec — you implement, our SEO lead verifies)

Per-page metadata, Open Graph, JSON-LD schema per template
Sitemap index split by page type, canonical rules, robots controls for programmatic pages
Breadcrumbs, internal linking blocks (related routes/cities), pagination
Core Web Vitals green on mobile: image optimization, font loading, no layout shift

Infrastructure

Hosting on Vercel or DigitalOcean behind Cloudflare (we'll d ---------- with you)
Staging + production environments, GitHub repo under our account, versioned deploys
Error monitoring, uptime alerts, automated backups
Documentation: setup, deploy, how to add a page type, how to update data

Milestones

Setup + database + CMS + core components (week 1–2)
Home, quote flow, service, and cost pages live on staging (week 3–4)
State, city, route templates generating from data; guides; sitemaps and schema (week 5–6)
QA fixes, performance pass, SEO verification, launch, documentation (week 7–8)

After launch (permanent role)
New tools (carrier lookup, tracking pages), new page types, CRM and analytics integrations, performance tuning, monthly maintenance. If you are good, this becomes your long-term site.

Requirements

4+ years full-stack; 2+ years production Next.js with App Router
At least one site you built with 1,000+ programmatically generated pages from a database — we will ask to see it and how it performs in Google
PostgreSQL, Prisma or Drizzle, TypeScript
Headless CMS integration experience
You understand technical SEO well enough to implement a spec correctly: schema, sitemaps, canonicals, rendering, Core Web Vitals
Pixel-accurate Figma-to-code, mobile first
Git workflow, staging/production discipline, clear commit history
Good written English; you ask questions early and give short daily updates
Delegated access only; repo, hosting, and domains stay under our accounts

Nice to have

Lead-gen or marketing sites with high-traffic forms
Vercel + Cloudflare setup experience
Google Maps/Distance Matrix or similar APIs
Playwright or Cypress testing

How we work

Figma + spec on day one. Daily short update in the tracker, weekly demo on staging. Our PM tracks tasks; our SEO lead reviews SEO; our QA tester checks releases. Code reviews are light but real. Milestone payments, on time, every time.

How to apply

Your application must include:

Link to one live Next.js site you built with 1,000+ generated pages — say what it generates from and how many pages Google has indexed
Link to your GitHub (or a private repo you can share) showing recent Next.js work
In 5–8 sentences: how you would structure the route pages so 10,000 of them stay fast, indexable, and unique
Your fixed price for the build, your monthly rate for the permanent role, and your start date

SKILL REQUIREMENT
VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0014
Controller Execution Time ( Jobseekers / Job )  0.0145
Total Execution Time  0.0167
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,510,208 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Full-Stack-Nextjs-Developer-Build-a-Nationwide-US-Car-Shipping-Website-Project-Permanent-Role-1730283
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0082 seconds)  (Hide)
0.0003   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0008   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1730283
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 965279
 LIMIT 1 
0.0013   SELECT COUNT(*) AS `numrows`
FROM `t_thread` `t`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1730283
AND `misc`.`idIS NULL 
0.0004   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-09-24',ej.date_added) duration_daysDATEDIFF('2026-09-24',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-09-24',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1730283' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1730283 
0.0007   UPDATE employer_jobs SET hit_counts '***Sep-14-2026=460***Sep-15-2026=598***Sep-16-2026=270***Sep-17-2026=191***Sep-18-2026=111***Sep-19-2026=74***Sep-24-2026=2' WHERE job_id'1730283'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Sep-2026=1705' WHERE job_id'1730283'  
0.0006   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1730283' 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` = 1730283 
0.0019   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '965279'
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)