Apra Curry House
A takeaway site that sends people to the order they actually want (delivery platform, phone pickup, or the menu) with live opening hours and perfect accessibility and SEO scores.

- Lighthouse SEO
- 100
- Lighthouse accessibility
- 100
- largest contentful paint
- 0.8s
- cumulative layout shift
- 0
Three intents, no friction
Someone landing on a takeaway site wants one of three things: to order for
delivery, to call and collect, or to look at the menu. The page is built around
exactly those. Uber Eats and DoorDash sit in the first viewport in their own
brand colours, so the tap target is recognisable before it is read. The phone
number is a real tel: link. The menu is one scroll down.
Constraints
- The transaction belongs to somebody else. Ordering runs through Uber Eats and DoorDash, so the site can carry a visitor to the door and no further.
- A takeaway's opening hours are the most-asked question and the most frequently wrong piece of information on any local business site.
- Four locales, matching how Griffith actually speaks, on the same small business budget.
- No analytics were kept, so nothing here claims an effect on orders.
The page knows whether the kitchen is open
Opening hours are computed at view time, so the hero says "Closed · opens 11am" rather than making the visitor work out today’s hours from a table. It removes the most common reason for a wasted phone call.
The menu keeps itself current
The menu is the other thing that goes stale. A Playwright scraper runs every week and syncs all 102 dishes from the delivery platform into the site's Keystatic content, so the owners never retype a dish or a price. Accessibility tests gate every page in both the light and dark themes before it ships, and the site is hosted on AWS Amplify.
Found the way a local business needs to be found
Restaurant structured data carries the address, cuisine, hours and ordering
options, so the listing can appear as a business rather than a link. The site
ships in English, Punjabi, Hindi and Italian with hreflang, matching how
Griffith actually speaks.
Measured
98 performance, 100 accessibility, 100 best practices and 100 SEO on desktop, with a 0.8 second largest contentful paint and no cumulative layout shift. 94 performance on mobile.
Decisions and trade-offs
Sending the highest-intent action away. The delivery buttons hand the visitor to a third party at the exact moment they are most likely to convert, and they arrive in Uber Eats' and DoorDash's brand colours rather than the site's. Both are deliberate: the tap target is recognised before it is read, and building first-party ordering for a single takeaway would cost more than the commission it saved.
Hours computed rather than tabulated. Saying "Closed · opens 11am" instead of printing a table of seven rows removes the most common reason for a wasted phone call. It also means the page is only ever as right as its schedule. A public holiday closure is a content change, not something the page can work out for itself.
Structured data before anything cosmetic. For a local business the search
listing is the homepage most people see. Restaurant markup that renders the
listing as a business rather than a link was worth more than anything that
could have been spent on the page itself.
What I would do differently. Mobile performance is 94 against 98 on desktop, and the gap is almost entirely the two third-party ordering destinations. I took the score rather than deferring those, and I would revisit that. The visitors who matter most on a takeaway site are all on phones.