Skip to content
ALI HAITHAM·TECH·responds in <1h
  • Homestart here
  • Workcase studies, projects
  • Serviceswhat I will build for you
  • Writingessays, series
  • Traincourses, labs, cohorts
  • Aboutthe engineer behind this site
Sign inStart a project
ALI HAITHAM · TECH
  • Home↗
  • Work↗
  • Services↗
  • Writing↗
  • Train↗
  • About↗
Sign inStart a project
Online
ALI HAITHAM·TECH

Engineering studio. Damascus, GMT+3.

aliyosef.online

Studio

  • Work
  • Writing
  • Training
  • About
  • Contact me

Portal

  • Sign in
  • Open a ticket
  • Track project
  • My account

Resources

  • Docs
  • Status
  • Changelog
  • Brand kit
  • Privacy
  • Terms

Newsletter

Field notes and tech news. Weekly. No fluff.

Free. Unsubscribe anytime.

Find me elsewhere
© 2026 Ali Haitham Yosef. All rights reserved.Hand-built in React 19. No frameworks of frameworks.Last deployed · 2026-05-08All systems operational
Case 122019Front-end Developer

Yang's Kitchen

Custom ordering layer on top of Squarespace for a Los Angeles restaurant. Hand-written CSS and JS to bend the platform into a real menu and pickup flow.

RoleFront-end Developer
Year2019
StackSquarespace, Custom CSS/JS, GA
Liveyangskitchenla.com↗
Overview

About the project.

Yang's Kitchen is a Los Angeles restaurant whose owners had committed to Squarespace before realising it could not handle the menu and pickup flow they actually needed. Rather than migrate, I wrote a custom CSS and JavaScript layer on top that bent the platform into a real ordering experience. It was an early lesson in working with the constraints a client has chosen, not against them.

Challenge

What we walked into.

A Los Angeles restaurant had committed to Squarespace before realising the platform could not handle the menu + pickup ordering flow they needed. Migration was off the table; the platform constraint was fixed.

Approach

What we did.

Custom CSS + JavaScript layer on top of Squarespace that bent the platform into a real ordering experience without abandoning the stack.

Outcome

What it became.

Functional ordering flow on Squarespace, brand-consistent menu layout, no third-party plugin sprawl.

IndustryRestaurant · Los Angeles
TypeCustom ordering layer on Squarespace
Timeline4 weeks
TeamSolo · front-end developer
Ownership

My role on this project.

Solo · 100% custom CSS + JavaScript layer on top of Squarespace. Client owned the platform decision and the content; I owned every line of custom code that made the chosen platform actually work for their use case.

  • 01

    Front-end developer

    Custom CSS injected via Squarespace code blocks. Custom JavaScript for the menu + pickup-flow widgets.

  • 02

    UX problem-solver

    Worked around Squarespace constraints (limited form fields, no native ordering, no payment hooks) by layering on top.

  • 03

    Analytics integrator

    GA tracking on the custom ordering flow so the restaurant could see actual conversion data.

In production

The numbers that matter.

  • WorkedWithin platform constraintNo migration; client kept their existing CMS investment.
  • Mobile-firstDesign targetDiners hit the site from phones the moment they decide where to eat.
  • GA-trackedOrdering flowEvery step measurable; restaurant could see real conversion data.
Why this was hard

What was actually broken.

The client had already paid for and learned Squarespace. Telling them to migrate was the easy technical answer and the wrong business answer — it would have meant abandoning their content, retraining their staff, and rebuilding the visual identity that was already shipped. The brief: make the platform do what it cannot natively do, by carefully extending it.

Engineering challenges

The hard surface area.

  • 01Squarespace exposes limited customisation hooks — every workaround had to use documented injection points only.
  • 02Custom ordering flow that integrates with their existing payment processor without violating Squarespace ToS.
  • 03Mobile-first menu layout within Squarespace block constraints.
Hard problems solved

Engineering wins worth naming.

01

Working within platform limits

No backend code access; all logic lives in CSS + injected JS. State held in localStorage; cart submission routes to a Squarespace Form Block under the hood.

02

Brand-consistent menu without Squarespace blocks

Squarespace menu blocks are limited. Built a custom JSON-driven menu rendered by injected JS that respects brand spacing + typography.

System architecture

How the system is wired.

01 — Platform

Squarespace hosted

SquarespacePlatform-hosted CMSOwned by client; cannot be modified at the server level
02 — Custom layer

Custom CSS + JS layer (this is the work)

Injected CSSCode blocksBrand-consistent menu + ordering UI
Injected JSVanilla, no frameworkCart state, menu rendering, GA events
Form-block bridgeSquarespace nativeCart submits via hidden Form Block — works within ToS
Why this stack

The decisions behind each choice.

Work with Squarespace, not against it

  • Client investment in the platform was non-trivial. Migration cost would have exceeded the value of the new flow.
  • Squarespace ToS allows custom CSS + JS via documented injection points — the bridge stays inside the rules.

Vanilla JS over framework

  • Injected scripts compete with Squarespace's own framework. A second framework would double load weight.
  • Vanilla code is auditable in a single file — easy for the next maintainer (likely Squarespace itself).
Lessons learned

What the build taught us.

  • The right technical answer is sometimes "respect the platform the client chose, and make it work" — not "rewrite on the stack you prefer."
  • Early-career lesson in scoping engineering decisions to the actual business constraints, not to engineer preferences.
Visuals

From the project.

Continue reading
Previous caseSuhail RestaurantNext caseAdooar
Build with us

Want something like this?

I take on a small number of engagements each quarter. Tell me what you have in mind.

Start the conversation→