Restaurant website & staff admin console — Denver, CO
El Gran Jardin is a 7-page static marketing website and staff-operated admin console built for a family-run restaurant in Denver, CO. The public site covers the full customer journey — menu (with 33 real dish photos), happy hour, daily specials, About, Order Online, and Contact — with structured data and local-SEO foundations. All pages meet WCAG 2.1 AA and are served from a Caddy file server with automatic TLS renewal.
Behind the scenes, a separate SSR admin console at admin.elgranjardindenver.com gives non-technical staff a zero-config publishing workflow: upload a promotional flyer, let Claude’s vision API extract the events table, review and edit the rows, then click Publish — triggering a git commit/push and a host-side systemd path unit that rebuilds and rsyncs the static site automatically. One-click Undo performs a git revert + push. Staff never touch a terminal or a file system.
Two cooperating Astro services on a single VPS — a static public site and a containerized SSR admin console.
The admin console is a fully independent SSR Astro app running in a resource-capped Docker container, reverse-proxied by Caddy on its own subdomain with its own Let’s Encrypt cert. Public traffic never reaches the container. On Publish, the admin pushes a git commit to the static site repo, and a host-side systemd .path unit watches for that commit and executes build-in-container.sh (node:20-alpine), then rsyncs the output to the live doc root — zero manual server steps for staff.
A full customer-facing site plus a staff publishing system that requires no technical knowledge to operate.
git revert + push
The engineering that makes a non-technical staff member a safe, independent content publisher.
Staff clicks Publish → the admin console commits the content update and pushes to the static site repo → a host-side systemd .path unit fires, runs build-in-container.sh inside a node:20-alpine container, and rsyncs the output to the live doc root. Zero manual server steps at any point in the workflow.
A mandatory Preview dry-run must succeed before the Publish button unlocks. Server-side validation re-runs before any git operation. AI extraction is never auto-published — it always goes through a staff review step. One-click Undo is a git revert + push, so every publish is fully reversible.
The Astro SSR admin runs in a resource-capped Docker container bound to 127.0.0.1:4321, reverse-proxied by Caddy with its own Let’s Encrypt cert on the admin subdomain. Public ingress never reaches the container directly. The admin surface is completely separated from the static public site.
Flyer images are routed to Claude vision to extract structured event rows into an editable table. The same Claude API generates themed promotional images and captions for the homepage specials strip. Both outputs are staff-editable before any content goes live — the AI accelerates the workflow without removing human review.
gtag.js is injected only when import.meta.env.PROD is true, so dev and preview traffic never pollutes the live GA4 stream. The restaurant team gets clean, actionable analytics from day one.
33 dish photos were converted and compressed in-repo. WebP/AVIF dual-format delivery drops the menu page from 28 MB to 15 MB — a 46% reduction — without any perceptible quality loss. Every image carries explicit width/height attributes to eliminate cumulative layout shift.
Full-cycle client engagement from requirements through a live, AI-augmented publishing system.
El Gran Jardin is what it looks like when a marketing site and a staff publishing system are built together — structured data, AI-assisted workflows, and a rebuild pipeline that keeps a non-technical team independent. If your business needs the same, let’s talk.
A separate SSR Astro app that lets non-technical restaurant staff publish events, specials, and promotional content without touching a terminal — staff upload a flyer, Claude vision extracts the events table, staff reviews the rows, then clicks Publish to trigger an automated static-site rebuild and rsync.
Yes — a static public site with a staff-facing admin console is a good fit for businesses that need a fast, secure public presence with simple content updates. See our web design & development service.
When staff click Publish, the admin console commits the content change and pushes to the static site repo. A host-side systemd path unit watches for the commit, runs a containerized Astro build, and rsyncs the output to the live doc root — typically completing in under a minute, with no manual server steps.
Tell us what you have in mind and we'll come back with an approach and a flat quote — no obligation.