Skip to main content
A complete language-school website you can clone and deploy today. Fluently is built for schools and courses: group classes with levels, private 1:1 lessons, a free trial, teachers, campuses and a live online classroom. Start here for a language, music, coding, art or tutoring school. It runs on the same Storefront API and typed TypeScript SDK as Haar, Frisor, Clear Care, VOLT and NOIR Drive. It’s set in New York (USD, America/New_York) with two campuses and an online classroom, teaching Spanish, French, German, Italian, Japanese and Mandarin. The design is friendly and colorful: chunky sticker buttons, speech-bubble chips and 3D mascots next to real photos.

Live demo

template-fluently.vercel.app

Source code

letsopencals/template-fluently (MIT)

Deploy to Vercel

One-click deploy

Build it with AI

classes-and-lessons reference
Fluently language school website template on a laptop and two phones in a classroom

Fluently — the storefront on desktop and mobile

Fluently template homepage hero reading Speak a new language by summer, with a waving mascot and greetings in six languages

Homepage hero — friendly and colorful, with a free trial up front

The school model

This is the part worth copying even if you never ship Fluently itself. It uses existing Opencals features only, and the template reads everything from the data, so nothing about languages is hard-coded.

What’s inside

Fluently template class booking flow with campus choice, level variants, a date strip and a time slot showing seats left

Class booking — campus or online, level, date and time, with live seats left

Fluently template weekly timetable with a day strip, language filters and a bookable class showing seats left

Timetable — group classes for the week ahead, filterable by language

Get started

1

Clone and install

2

Add your API key

Create a store in the Opencals dashboard and choose the Fluently dataset preset (language_school). It seeds the six languages, campus and online group classes with level variants, private lessons, the free trial, teachers, both campuses, the online classroom with its link, extras and placement questions. Then grab a Storefront API key (see Authentication) and set OPENCALS_API_KEY, AUTH_SECRET and NEXT_PUBLIC_SITE_URL in .env.local.
3

Run it

Your classes, teachers and timetable render immediately.
4

Deploy

Push to your own repo and deploy to Vercel, or host anywhere Next.js runs.
Pages are server-rendered, so their API calls carry no browser Origin. Leave allowed origins empty on the key you give this template, or those calls are rejected.
Set Storefront Base URL in your dashboard (Settings → API) to your deployed domain. Every customer link (view, reschedule, cancel, leave feedback) is built as {storefrontBaseUrl}/link/{token}, so if it still points at localhost those emailed links go nowhere.

Make it yours

MIT-licensed: rebrand it, restructure it, or use it for client work. All copy lives in lib/site-config.ts: hero, format descriptions, the level quiz, how it works, testimonials, FAQ and values. Every colour and font is a Tailwind v4 @theme token in app/globals.css:
Building a different school site with an AI agent? The build-booking-site skill has a classes-and-lessons reference with the full pattern.
Last modified on October 9, 2026