Shopify Theme Developer (Liquid / OS 2.0)

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

TYPE OF WORK

Part Time

WAGE / SALARY

$10-15 per hour depending on experience

HOURS PER WEEK

TBD

DATE UPDATED

Jun 3, 2026

JOB OVERVIEW

ABOUT THE ROLE
We're a small luxury skincare brand running a Shopify store, and we're looking for a reliable Shopify developer to help us with ongoing site updates and improvements. This is theme work: editing and building product page templates, front-end UX components, and supporting our subscription setup.
You'll work directly with the founder. We move carefully — all work is done on a development/sandbox theme first and reviewed before anything goes live. We never push directly to the live theme, so a careful, test-first approach matters to us.

WHAT YOU'LL DO

Edit and build Shopify theme sections, blocks, and JSON templates (Liquid)
Standardize and patch product page templates to a consistent structure
Build and refine front-end UX components (cart drawer, upsell cards, free-shipping bar, subscription callouts, etc.)
Implement and troubleshoot subscription widgets and app integrations
General CSS/JS styling, responsive fixes, and QA
Test thoroughly on a development theme before deploying

MUST HAVE

Strong experience with Shopify theme development (Online Store 2.0 — sections, blocks, JSON templates)
Solid Liquid, HTML, CSS, and JavaScript
Comfortable working in a sandbox-then-deploy workflow and following a careful deployment process
Good written English and clear, proactive communication
Detail-oriented — you test your work and don't break live pages

NICE TO HAVE

Experience with subscription apps (Appstle, Recharge, Skio, or similar)
Experience with Klaviyo, Okendo, or Google Merchant Center
An eye for clean, premium design

ABOUT YOU / THE FIT

This is part-time and ongoing, with room to grow as we do
Remote and flexible, but please have some overlap with US Eastern time for communication
We value people who are careful, communicative, and take ownership of their work

HOW TO APPLY

Start your message with the word TERRACOTTA so we know you read this post
Share 2-3 links to Shopify stores you've built or customized
Briefly describe one tricky theme or app issue you solved and how you approached it

We review every application that follows these steps. Looking forward to hearing from you.

VIEW OTHER JOB POSTS FROM:
SHARE THIS POST
facebook linkedin
  BENCHMARKS  
Loading Time: Base Classes  0.0008
Controller Execution Time ( Jobseekers / Job )  0.0412
Total Execution Time  0.0426
  GET DATA  
No GET data exists
  MEMORY USAGE  
1,496,824 bytes
  POST DATA  
No POST data exists
  URI STRING  
jobseekers/job/Shopify-Theme-Developer-Liquid-OS-20-1660959
  CLASS/METHOD  
jobseekers/job
  DATABASE:  onlinejobs (Jobseekers:$db)   QUERIES: 13 (0.0353 seconds)  (Hide)
0.0004   SELECT *
                                
FROM exrates
                                WHERE rate_name 
'USD-PHP' 
0.0004   SELECT *
FROM `employer_jobs`
WHERE `job_id` = 1660959
 LIMIT 1 
0.0003   SELECT *
FROM `employers`
WHERE `employer_id` = 706440
 LIMIT 1 
0.0280   SELECT COUNT(DISTINCT t.id) as cnt
FROM 
`t_thread` `t`
INNER JOIN `t_message` `mON `t`.`id` = `m`.`thread_id`
INNER JOIN `t_message_employer` `eON `m`.`id` = `e`.`message_id`
LEFT JOIN `t_thread_misc` `miscON `t`.`id` = `misc`.`thread_id`
WHERE `t`.`job_id` = 1660959
AND `misc`.`idIS NULL 
0.0005   SELECT e.business_namee.logoe.websitee.rebill_datee.date_added member_datehitsDATEDIFF('2026-06-21',ej.date_added) duration_daysDATEDIFF('2026-06-21',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-06-21',ej.date_added) <= 14 ))
                                   AND 
e.deactivate != AND ej.deleted AND job_id '1660959' 
0.0003   SELECT *
FROM `employer_jobs_skills` `ejs`
LEFT JOIN `skills_categories` `scON `ejs`.`skill_id` = `sc`.`id`
WHERE `job_id` = 1660959 
0.0014   UPDATE employer_jobs SET hit_counts '***Jun-03-2026=767***Jun-04-2026=65***Jun-05-2026=48***Jun-06-2026=35***Jun-07-2026=34***Jun-08-2026=41***Jun-09-2026=19***Jun-10-2026=20***Jun-11-2026=11***Jun-12-2026=2***Jun-13-2026=3***Jun-14-2026=6***Jun-15-2026=11***Jun-16-2026=8***Jun-17-2026=6***Jun-18-2026=7***Jun-19-2026=6***Jun-20-2026=4***Jun-21-2026=1' WHERE job_id'1660959'  
0.0006   UPDATE employer_jobs SET monthly_hits '***Jun-2026=1092' WHERE job_id'1660959'  
0.0008   SELECT date_sent FROM jobseeker_sent_emails WHERE jobseeker_id '' AND job_id '1660959' 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` = 1660959 
0.0017   SELECT COUNT(*) AS `numrows`
FROM `employer_jobs`
WHERE `employer_id` = '706440'
AND `date_added` >= '2022-06-08' 
0.0003   select from teasers 
0.0004   SELECT FROM skill_categories WHERE skill_cat_id='' 
  HTTP HEADERS  (Show)
  SESSION DATA  (Show)
  CONFIG VARIABLES  (Show)