Appointment
Wednesday, 14 May · 09:00
The appointment, the notes, the invoice and the message about all three are the same object in Sirius. Nothing is copied between systems, so nothing goes out of date on the way.
Live in a week, with your existing diary imported and checked.
Not a feature list. These are the views open on the desk at nine in the morning, at the end of the month, and whenever somebody needs an answer quickly.
Every room, every clinician and the waiting list in one view, so a cancellation is refilled from the same screen it appeared on.
Tuesday
Tue, 14 OctThe old system stays on until the last one is finished. Nobody is asked to learn something new and clear a backlog in the same week.
Days 1 to 2
We map your existing fields with you and run a dry import you can read line by line. Nothing goes live until the numbers match what you already had.
Days 3 to 4
Two sessions on your own diary rather than a demo account, and a written page for whoever is on leave that week.
Day 5
You take bookings in Sirius and keep the old system readable for a fortnight. We are on the phone for the first two mornings.
Most practices are live by Friday.
See a rollout planAll three moved from a system they had used for years. We asked them what actually changed, not whether they liked it.
The phone stopped ringing for things people could do themselves. That is the whole review.
Marta Kellner
Practice Manager, Ridgeway Family Health
Claims used to leave on a Friday and come back three weeks later. They leave the same day now and almost none of them come back.
Desmond Hale
Finance Lead, Northgate Clinics
We opened a second site in March and nobody asked how to set it up. It was just there.
Priya Anand
Director, Eastgate Health
We will set your own week up on the call, so you are looking at your diary rather than ours. If it is not right for you we will say so on the same call.
A product page that shows the software rather than listing it: a media-first hero floating a live appointment card, a three-tab tour of the screens a team lives in, a three-phase rollout timeline, an inverted band of customer quotes, a closing call to action and a newsletter footer.
Composed from 7 blocks. Installing this page installs all of them, plus the pieces and primitives they use.
Built in the Sirius collection.
A product page that shows the software rather than listing it: a media-first hero floating a live appointment card, a three-tab tour of the screens a team lives in, a three-phase rollout timeline, an inverted band of customer quotes, a closing call to action, and a newsletter footer. Seven blocks, one install.
Upgrade to Pro
Pro blocks install through the shadcn CLI with your license key and ship their full source. Docs and live previews stay open to everyone, so you can read every block's details first.
Swap YOUR_EMAIL and YOUR_KEY for the email and license key on your account. Find your license key on your account page.
npx shadcn add "https://ui.beste.co/page/r/platform1?email=YOUR_EMAIL&license_key=YOUR_KEY"This installs the page to components/beste/page/platform1.tsx and everything behind it: the seven blocks it composes (navbar74, hero164, showcase46, workflow47, testimonial42, cta74, footer119), the six components they use (browser35, calendar31, dashboard32, chat33, button21, badge23) and the shadcn/ui tabs, input and button primitives. Fourteen files.
The installed file exports platform1Demo alongside the page: the exact props behind the preview above. Spread it to get a working page in one line.
import { Platform1, platform1Demo } from "@/components/beste/page/platform1";
export default function Page() {
return <Platform1 {...platform1Demo} />;
}Each section is a separate prop, so the usual next step is to keep the demo and replace one section at a time.
import { Platform1, platform1Demo } from "@/components/beste/page/platform1";
export default function Page() {
return (
<Platform1
{...platform1Demo}
rollout={{
label: "Rollout",
heading: "Live in three weeks, not three quarters.",
phases: [
{ title: "Week one", description: "We import your records and check them with you." },
{ title: "Week two", description: "Your team runs a real day beside the old system." },
{ title: "Week three", description: "The old system is read only." },
],
}}
/>
);
}Every prop is the full prop object of the block that renders that section, so anything the block accepts is accepted here.
| Prop | Type | Default | Description |
|---|---|---|---|
navbar | ComponentProps<typeof Navbar74> | – | Capsule navbar, transparent over the hero |
hero | ComponentProps<typeof Hero164> | – | Media-first hero floating an appointment card |
tour | ComponentProps<typeof Showcase46> | – | Three-tab tour of the product screens |
rollout | ComponentProps<typeof Workflow47> | – | Three-phase rollout timeline |
testimonial | ComponentProps<typeof Testimonial42> | – | Customer quotes |
cta | ComponentProps<typeof Cta74> | – | Closing call to action |
footer | ComponentProps<typeof Footer119> | – | Newsletter footer |
className | string | – | Extra classes for the page's outer wrapper |
| Section | Block | Notes |
|---|---|---|
| Navbar | navbar74 | Sticky and transparent, so the hero runs under it |
| Hero | hero164 | The floating card is calendar31, a real component |
| Tour | showcase46 | Given bg-muted/40; the tabs hold their own state |
| Rollout | workflow47 | Three phases, matched to the layout |
| Quotes | testimonial42 | Rendered on the inverted band |
| Closing | cta74 | One decision, one button |
| Footer | footer119 | Newsletter capture, hence the shadcn input dependency |
rollout removes that section entirely rather than rendering an empty one.sticky top-0 z-50 bg-transparent by the page. The transparent background is deliberate and is what lets the hero's media run under the bar; it works because hero164 is media-first, and it would not work over a hero whose copy starts at the top.browser35, dashboard32, chat33, calendar31), not screenshots, so they inherit your theme and typography rather than shipping someone else's.dark class, which swaps the theme tokens for that subtree, so the block's cards and borders follow the switch rather than staying light on a dark rectangle.className="bg-muted/40" on the tour after spreading tour, so a className passed inside that prop is overridden.hero164 keeps its floating card inside a centred max-w-7xl row: the background runs to the edges but the card does not drift into the far corner on a widescreen display.navbar74
A navbar contained in a softly rounded, bordered capsule with a lowercase wordmark, uppercase links, an accent call to action, and a matching mobile panel.
hero164
A hero that opens on a full-bleed image band with a live phone frame anchored into it, then sets the eyebrow, light display heading, paragraph, and actions underneath rather than above.
showcase46
A tabbed showcase with an eyebrow over a hairline rule and a two-column heading, where each tab reveals a light title, checked bullets, and an image tile floating a live product micro-asset.
workflow47
An implementation timeline laid out as three hairline columns, each opening with a week marker over a phase title, a short explanation, and a checked deliverable list, closing on a soft summary strip.
testimonial42
A testimonial grid with an eyebrow over a hairline rule, a two-column heading, and three bordered quote cards each closing with an author avatar, name, and role.