Hosted Booking Page
Every booking widget you create in Levy Bookings gets a public page hosted by Levy at:
https://fleets.levyelectric.com/book/{slug}
You do not need a website. You do not need to run any HTML or JavaScript. The page works on desktop, tablet, and mobile, and it is the fastest way to start taking bookings.
When to use the hosted page
Use the hosted page if any of these are true:
- You do not have a website, or your "website" is a Google Business Profile.
- You use Linktree, Beacons, Carrd, or a similar bio-link page.
- You want one place to send every QR code, social bio, and Google Business "Book" button.
- You are running a one-off seasonal popup and do not want to build a microsite for it.
Use the embeddable widget instead if you already have a Squarespace, Wix, Webflow, Shopify, or WordPress site and you want customers to stay on your domain through checkout.
The booking flow
The hosted page is a five-step single-page React experience:
- Pick a model — a grid of vehicle types with the hero photo, the headline price, and a live "Available today" count if you use inventory caps.
- Pick a time — date and time picker, with the duration chips that already exist in your walk-in flow (1h, 2h, 4h, half-day, full-day, weekend, week).
- Add-ons — helmets, locks, insurance, child seats, bundles. Defaults you set in the dashboard come pre-selected.
- Customer info + waiver — email, phone, name, and an inline signature pad for the waiver. No DocuSign round-trip.
- Pay — Stripe Elements (card + Apple Pay + Google Pay + Link). Confirmation screen with a QR pickup code, an ICS calendar attachment, and a magic-link option to claim a Levy account.
The whole flow can be completed in under two minutes if the customer already has Apple Pay set up.
Branding
The hosted page reads the widget's theme JSON. You can change:
- Logo URL
- Hero image URL
- Primary brand color (used for CTAs and accents)
- Three short copy blocks (headline, subhead, footer)
- Font (one of three safe web-safe stacks; custom fonts on the roadmap)
See Widget Theming for the full CSS-variable reference.
Share links
Once your widget is enabled, you can use the public URL anywhere:
| Channel | How to use it |
|---|---|
| Google Business Profile | Add as the Book button in the GBP dashboard |
| Linktree / Beacons | Add as a standard link with your shop name as the label |
| Instagram / TikTok bio | Paste as the bio link |
| QR code at the counter | Generate a QR for /book/{slug} and stick it on the door |
| Email signature | Add a "Book a bike" link below your name |
| Print marketing | Postcards, rack cards, flyers — short URL is memorable |
The page is mobile-first, so QR-code scans from a phone go straight into the flow.
Slug aliases for marketing
If you want a vanity URL like book.frankebikes.com, you can CNAME it onto your hosted page. See Embedding the Widget — Custom domains.
What the customer experiences
- Mobile-optimized. The flow is built mobile-first; desktop is the secondary surface.
- No account required. Customers can complete the booking as a guest. After payment, a magic-link option lets them claim an account so their next booking is one-tap.
- Real-time pricing. Each duration chip recalculates the quote (including add-ons, promo codes, and tax) live as they tap.
- Local timezone. The page renders in your subaccount's timezone. The customer's browser-local time shows as a secondary label if they are in a different zone.
- ICS calendar attachment. The confirmation email includes a one-click "Add to calendar" file so the booking lands in their Apple Calendar, Google Calendar, or Outlook.
- SMS confirmation. If the customer enters a phone number, they get a text within seconds with the booking details and a link back to the confirmation page.
What the operator sees
In the dashboard, hosted-page bookings show up identically to walk-in or embedded-widget bookings, with booking_source = hosted. They appear in:
Dashboard > Reservations— the universal reservation list.Dashboard > Bookings > Calendar— visual calendar with drag-to-extend.Dashboard > Bookings > POS(when an iPad is paired) — the Pickup Queue, sorted by pickup time.
Hosted page vs. widget vs. POS
| Hosted page | Embedded widget | iPad POS | |
|---|---|---|---|
| Who pays the bill | Customer (online) | Customer (online) | Customer (in-shop, tap-to-pay) |
| Where it runs | fleets.levyelectric.com/book/{slug} | Operator's own site | iPad behind the counter |
| Engineering effort | Zero | One <script> tag | Pair a PIN |
| Best for | No-website operators, marketing links | Operators with their own site | Walk-in foot traffic |
Troubleshooting
- "This booking page is not yet open." The widget is disabled. Enable it from Dashboard > Bookings > Widgets > > Enabled.
- "No vehicle models available." Your subaccount has no vehicle models with a published pricing tier yet. Add one under Dashboard > Vehicles > Models before the booking page can quote anything.
- Prices look wrong. Check the default pricing tier set on the widget, and check whether any peak/off-peak multipliers are in effect for the dates the customer picked.