DRGx Design · Technical takeover & platform build-out

Build the skills. We'll build the system underneath.

Since 1988, Custom Image has outfitted teams, schools, and events. Its non-profit trade school teaches the promotional-imprint trades — sublimation, embroidery, screenprinting and more — to youth, young adults, and under-skilled, financially-challenged Angelenos, with tuition covered by grants and donations. DRGx is taking over the technical side and rebuilding it as a multi-tenant platform on Supabase, so enrollment, curriculum, and cohorts run themselves.

501(c)(3) non-profit trade school 6 trade courses · 12-week cohorts Serving Los Angeles County Grant- & donation-funded tuition
Where things stand today

A real mission running on a borrowed template.

  • Off-the-shelf WordPress theme.The site runs on the generic "Eduacademy" theme — including placeholder copy ("the CSS course," "confident HTML coder") that has nothing to do with sublimation or embroidery.
  • "Enroll" goes nowhere structured.There's no real enrollment system, student record, or instructor workspace behind the buttons — it can't track who's in which cohort.
  • Curriculum is hard-coded into pages.Each course and module is hand-built in the page editor. Adding a cohort or a new trade means rebuilding by hand.
  • No path to grow.A second location, a partner program, or grant-reporting on outcomes isn't possible on the current setup.
Current stack
WordPressEduacademy FSE thememanual enrollmentstatic course pagesno database of record
What it can't do yet
track studentsmanage cohortsauthor curriculumissue certificatesreport outcomes to fundersscale to new sites
The brand, the courses, and the mission are strong. What's missing is the system underneath them — that's the work.
What students and funders see

The school stays in the foreground.

We keep everything that makes Custom Image trustworthy — the real trades, the real mentors, the mission — front and center. The refreshed front-end is built from the actual curriculum, not a template's leftovers.

Design principle: students and funders see the school. The infrastructure stays invisible.
SU
3 hrs · 3 days/wk
12 weeks

Sublimation

Apply images to mugs, water bottles, apparel and other substrates.

AW
3 hrs · 3 days/wk
12 weeks

Awards

Build trophies from scratch and create plaques and other awards.

SB
3 hrs · 3 days/wk
12 weeks

Signs & Banners

Print with wide-format printers and learn to work with vinyl.

EM
3 hrs · 3 days/wk
12 weeks

Embroidery

Digitize and stitch custom designs onto wearables.

SS
3 hrs · 3 days/wk
12 weeks

Sandblasting on Substrates

Etch glass, stone, and hard substrates by hand and machine.

SP
3 hrs · 3 days/wk
12 weeks

Screenprinting

Burn screens, mix inks, and run multi-color prints on garments.

6 trade courses
6 expert instructors / mentors
Hands-on projects & recognized certificates
Mon–Fri 9–6 · (424) 480-9691
powered by Supabase · Postgres + Edge Functions
What DRGx builds behind it

A multi-tenant engine that runs the whole school.

One Postgres database with tenant isolation, authentication, file storage, and serverless edge functions that handle enrollment, curriculum authoring, and cohort delivery end to end. The student never sees it — they just see the next lesson.

Front-end · what people touch
Public site

Courses, mission, donate & enroll — rebuilt from real content.

Student portal

Lessons, projects, progress, certificates.

Instructor + admin

Curriculum authoring, cohorts, reviews, reporting.

Supabase · the engine
Auth

Students, instructors, admins — role-based access.

Postgres + RLS

Single database, per-tenant row-level isolation.

Storage

Lesson media, student project uploads, certificates.

Edge Functions

Enrollment, authoring & workflow logic.

Integrations · the outside world
Payments & donations

Tuition, grants, and donor flows.

Email / SMS

Enrollment confirmations & cohort reminders.

Certificates

Generated, signed, shareable on completion.

MULTI-TENANT

Every record carries a tenant_id, enforced by Postgres row-level security. customimage.org launches as the flagship tenant — and the same engine can onboard a second campus, a partner non-profit, or a franchised program later without a rebuild. One codebase, isolated data per organization.

The data model

From tenant to certificate, one clean schema.

tenants
idname, slugbrandingsettings
courses
tenant_id ↗title, tradedurationstatus
modules
course_id ↗order, titleobjectives
lessons
module_id ↗contentmedia (storage)
cohorts
course_id ↗start / endschedulecapacity
enrollments
cohort_id ↗student_id ↗statusprogress
profiles
auth user ↗rolestudent / staff
submissions
lesson_id ↗student_id ↗review, grade
certificates
enrollment_id ↗issued_atverify code
instructors
profile_id ↗assigned cohorts
donations
tenant_id ↗donor, amountgrant / gift
tuition_credits
student_id ↗sourceapplied to
tenant 1—∞ courses 1—∞ modules 1—∞ lessons
course 1—∞ cohorts 1—∞ enrollments ∞—1 student
every row scoped by tenant_id · access governed by RLS policies
Edge functions

The workflows that run themselves.

Serverless functions on Supabase handle the logic that's manual today — enrollment, authoring, scheduling, and certification — secured per tenant.

enroll-student()
Enrollment

Seat-checks a cohort, creates the enrollment, applies tuition credits or donor funding, and sends confirmation.

create-curriculum()
Curriculum authoring

Lets staff build a course → modules → lessons from a guided template instead of hand-coding pages.

publish-module()
Module management

Versions, orders, and releases modules to a cohort on schedule.

schedule-cohort()
Cohort delivery

Spins up a 12-week cohort, assigns the instructor, and automates reminders.

review-submission()
Hands-on review

Routes student project uploads to the instructor and records feedback & progress.

issue-certificate()
Certification

Generates a verifiable certificate on completion for résumés and LinkedIn.

record-donation()
Funding

Captures grants and donations and ties them to tuition credits for reporting.

outcomes-report()
Funder reporting

Rolls up enrollment, completion, and certification metrics grant-makers ask for.

The build-out

Phased, so it can track grant cycles.

Phase 1foundation

Foundation & refreshed front-end

Stand up Supabase (Postgres, Auth, Storage), define the schema and RLS, migrate off WordPress, and ship the rebuilt public site from real course content.

supabase setupschema + RLSpublic siteWP migration
~4–6 weeks
Phase 2enrollment

Enrollment & student / instructor portals

Real accounts, real cohorts. enroll-student and schedule-cohort go live; students see their lessons and progress; instructors get a workspace.

auth + rolesenroll-student()portalsprogress
~5–7 weeks
Phase 3curriculum

Curriculum authoring & modules

Staff build and publish courses without a developer. create-curriculum, publish-module, submissions, reviews, and certificate issuance.

authoring UImodules / lessonsreviewscertificates
~5–7 weeks
Phase 4scale

Multi-tenant, funding & reporting

Turn on tenant onboarding, donation/tuition flows, and funder-facing outcome reports — ready for a second campus or partner program.

tenant onboardingdonationsoutcomes-report()admin
scoped w/ growth
The engagement

Built in phases, run on a flat retainer.

Foundation build · Phase 1
$5,000 starting
Supabase foundation + the rebuilt, real-content public site — the front door, live and yours.
  • Supabase project, schema & security
  • Migration off WordPress
  • Refreshed public site from real courses
  • Donate & enroll entry points wired in
Managed infrastructure
$750 / month
DRGx runs the engine so staff never touch it — updates, monitoring, backups, and support.
  • Hosting, monitoring & backups
  • Edge-function & security upkeep
  • Content & cohort support
  • Iteration as the school grows
How later phases work

Phases 2–4 (portals, authoring, multi-tenant + funding) are scoped and quoted as the program grows — designed to map onto grant cycles so the build can be funded the same way tuition is.

A few things to confirm so the scope is exact: whether multi-tenant means future campuses, partner non-profits, or both; how tuition vs. grants/donations should flow; and whether the apparel side (customimage.com) connects to the school platform or stays separate.

Let's take over the technical side and let the school do what it does best.

DRGx builds and runs the engine. Custom Image keeps teaching the trade.

customimage.org·(424) 480-9691·a DRGx Design proposal