Skip to main content

A farm labor site that knows who’s reading it

A hand-coded bilingual website for a new Shafter farm labor contractor — a live job console the office runs itself, Spanish built in from the first line rather than bolted on, and the compliance paperwork growers are legally required to ask for.

Call 661-412-4308 Free quote over the phone Request service

ClientCeres Crop Management, LLC
OwnerYolanda
SectorFarm labor contractor
LocationShafter, CA
ScopeHand-coded bilingual site · job console · collateral
Status9.25.2026
Featured build · Hand-coded bilingual site

A brand-new company, online from day one

Most of our work starts with something broken. This one started with nothing — a new LLC, a logo, a phone number and a licence. Ceres supplies farm crews to growers from Kern to San Joaquin County, a business with two customers who share almost no vocabulary: a grower comparing contractors on licensing and liability, and a farm worker looking for next week’s job on a phone, in Spanish. Competing sites pick one and neglect the other. We built the whole thing from scratch — a static site generator, a PHP job console, and not one line of WordPress.

38Pages — 19 English, 19 Spanish
208Interface strings, hand-written twice
18Schema types + live JobPosting data
106Optimized photos from 25 originals
0Page builders, WordPress or JS frameworks
01 · The homepage

Two doors, one homepage

The homepage asks one question before it does anything else: are you here to hire a crew, or to find work? Two cards, two paths. Growers go toward licensing, compliance documents and the crew-request form; workers go toward open jobs, pay, safety and the application. Nothing downstream tries to serve both at once, so neither audience reads three paragraphs written for someone else.

The Ceres homepage: one question, two doors — I need a crew, or I'm looking for work
02 · Bilingual by design

Spanish is not a translation layer

Every page exists twice, at its own address, with Spanish slugs — /growers/ and /es/agricultores/ — linked with hreflang tags, and the language toggle goes to the matching page instead of dumping you on the homepage. No cookie switch, no JavaScript swap, no forced redirect — all three of which Google advises against, and all three of which the competing sites do.

The Spanish homepage is not a mirror either: it is reordered, jobs first, because the people reading Spanish on this site are overwhelmingly there for work. Spanish copy runs about 22% longer than English — titles that truncated and a header that overflowed were rewritten and rebuilt until both languages fit. Every form validates in the language of the page it’s on.

  • Own URL per language
  • hreflang + x-default
  • Reordered, not mirrored
  • No machine translation
The Spanish homepage at /es/ — reordered so the job board comes first
03 · The hybrid job board

Jobs that post themselves

The site is static — pre-rendered HTML, because AI crawlers don’t run JavaScript and content hidden behind scripts may as well not exist. But a job board that needs a developer and an FTP upload to post a job is a job board that stays empty. So the job pages are hybrids: the same templates that build the static site render those pages as PHP, and the job list reads live from a database.

The office adds a job and it is on the site — English and Spanish — in seconds. That job immediately becomes a page at its own URL in both languages, a JobPosting structured-data block eligible for Google’s job listings, and a new entry in a sitemap that is generated live instead of sitting on disk going stale.

Why it matters

“The office posts a job and it’s live in both languages in seconds — no rebuild, no upload, nobody calling us.”

The part of the site that changes weekly is the part the client runs — and it generalises to any business with listings, menus or inventory.

04 · The console

A console the office can actually run

The job console is 1,555 lines of PHP across 19 files. It is small, and it is careful.

Accounts

Named logins, never shared

Every person has their own account, and nobody types anyone else’s password: new staff are invited by email and set their own through a single-use token, stored as a hash with an expiry. Two roles — staff post jobs, only an administrator manages people.

Security

Hashed, throttled, timed-safe

Passwords hashed with bcrypt, never stored. Sessions regenerate on login; CSRF tokens compare with hash_equals so the check can’t be timed. Sign-in attempts throttle at eight per email and thirty per IP per fifteen minutes — loose on purpose, because a whole office shares one address.

Data

The database lives outside the web root

With a second line of defence in .htaccess if the host won’t allow it. The console itself is noindex, no-store, and runs under its own stricter Content-Security-Policy.

Bilingual by force

Jobs are written once, in both languages

English and Spanish side by side in one editor — so a job physically cannot go live in English only. The tool enforces what the site promises.

05 · The safety page

Shade at 80, cool-down at 95

Heat is the thing that actually hurts people in Central Valley farm work, so the safety page isn’t a paragraph of reassurance — it’s a live panel. It reads the National Weather Service forecast for Shafter in the browser and states what is in effect right now: normal procedures, shade up for every break above 80°F, or high-heat procedures with a paid ten-minute cool-down every two hours above 95°F. The same thresholds the state requires, stated as the company’s own practice, in the language you’re reading.

Every compliance figure on the site was verified against the state’s own sources before launch — minimum wage now and on January 1, 2027, the Labor Commissioner’s number, heat thresholds, overtime after 8 and 40 with double time after 12, and 40 hours of paid sick leave.

The live heat-safety panel: current Shafter conditions against the 80° shade and 95° high-heat thresholds
06 · The growers page

The paperwork a grower has to ask for

California makes growers partly liable for their labor contractor’s wages, safety and licensing — which makes due diligence a sales opportunity almost nobody in this market treats as one. The For Growers page lists the seven documents a grower should demand from any contractor — FLC licence, MSPA registration, workers’ comp certificate, written heat plan, training records, CHP vehicle certificates, payroll records — and says Ceres hands them over before a crew sets foot in the field. Both licence numbers are published on the page, embedded in the structured data, and linked to the Labor Commissioner’s public verification lookup. The honest version of a compliance page is a better sales page than the boastful one.

Launch audit

Layout & contrast, measured

10 pages checked at 14 screen widths from 320 to 1,920px — two overflows found and fixed, including the Spanish header. Every piece of text on 16 pages contrast-checked in light and dark mode with colors resolved through the browser; one real failure, darkened from 3.8:1 to 4.9:1.

Integrity

2,000 links, zero broken

Just over 2,000 internal links crawled — none broken, no missing assets. Every JSON-LD block parsed and validated, including the generated job pages. Zero placeholders survived to launch.

Resilience

Fails quietly, never takes the site down

If the job database is unreachable, the job pages degrade gracefully instead of taking the homepage with them. If the mail service is down, form submissions fall back to the server’s own mail before giving up.

Around the launch

Also in scope

A new company needs more than a website — the collateral and groundwork delivered alongside the build.

Delivered alongside the site

  • Bilingual tri-fold brochure, print-ready — QR code verified by decoding it back out of the finished PDF at 300 dpi
  • Coming-soon landing page with its own language switch, live before the main site
  • Link-preview card so the site looks like a brand when it’s texted to a grower
  • Logo derivatives — light and dark, badge, wordmark and favicon, from a single flat PNG
  • The owner’s letter, set and signed, from a scanned page she wrote by hand
  • Launch runbook — upload steps, DNS, email, Search Console, quarterly review list
Why it matters

The same standard we build every site to

Hand-coded means the site does exactly what this business needs and nothing else — no page builder, no theme, no plugin that breaks in eighteen months. The whole thing is 17 MB, loads as plain HTML, and the office runs the part that changes without touching any of it. If you run a Bakersfield or Kern County business and want a site that works this hard, tell us the business and we will tell you honestly what it takes.

  • Hand-coded business sites
  • Custom Shopify themes
  • Bilingual builds
  • Local SEO & structured data
  • Content & collateral
  • Ongoing support & hosting

Want a build like this?

Hand-coded sites and custom Shopify, built in Bakersfield. Tell us your business and we will tell you honestly what it takes.

Call 661-412-4308 Text us