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.
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.
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
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.
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.
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.
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.
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.
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.
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 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.
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.
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.
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.
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
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