Website for Dance and Music Schools: Timetables, Terms and Cost
A dance or music school website is a step 03 build: EUR 1.500 to 3.500, delivered in 3 to 6 weeks. That covers 4 to 7 pages, a CMS you control, and the two things that decide whether a school site works: a timetable that is real HTML, and a terms page a parent can read before committing to a term.
Everything else on a school site is decoration around those two.
The timetable is the site
A parent arrives with one question, and it is never about your history. It is whether there is a beginner class for a nine year old after school, what the term costs, and whether it has space.
When the timetable is a PDF, answering that means downloading a file, pinching it larger, hunting for the right block, then returning to the site for the fee and again for the term dates. Every one of those steps is a place to give up. When the timetable is part of the site, the same question is a filter and a tap.
A PDF timetable against a timetable in the CMS
| What has to happen | Timetable in the CMS | |
|---|---|---|
| Read it on a phone | Pinch, zoom, scroll sideways | Reads at phone width in one column |
| Find one class in search | A file, poorly matched to how people search | A page per class with its own address |
| Change a time on Sunday night | Re-export, re-upload, hope nobody kept the old one | Edit the row, save |
| Filter by day, age or discipline | Not possible | Built in |
| Send a parent to one class | You can only send the whole file | One link, one class |
| Large text or a screen reader | Depends on how it was exported | Works, because it is text |
| Keep prices and term dates consistent | Retyped into every new export | One field, shown wherever the class appears |
The last row causes the most trouble. A fee in a PDF, a fee on a fees page and a fee quoted in an email will eventually disagree. One field shown in three places cannot.
What a real timetable needs behind it
The timetable is a set of records, not a picture. Each class holds discipline, level, age range, day, start and end time, studio, teacher, term, term fee, and whether it is open, full or taking a waiting list. Once those fields exist, the site can do five things a picture cannot.
- Filter by day, age and discipline, which is how a parent thinks.
- Give every class its own page and address, so it can be found and shared.
- Carry the chosen class into the enrolment form, so nobody types the wrong one.
- Show the fee and the term dates from one source, so they never drift apart.
- Let you build next term quietly while this term is still on show.
That last point earns the build on its own: next term is written and checked in the CMS, then published when enrolment opens.
Terms, written once and linked everywhere
Terms are not legal decoration for a school. They are the answers that decide whether a parent enrols: term dates, what happens when a lesson is missed, whether it is made up, notice before leaving, instrument hire, exam fees, dress code and photography consent.
Put them on one page with plain headings and a date on the version, link it from every class page and from the enrolment form, and take the fee from the same field the timetable uses. A school willing to link its terms from the enrolment form reads as a school that has thought this through, which is the impression a parent is trying to form.
Enrolment now, payment later
There are two versions of enrolment and they sit on different steps.
- The step 03 version. An enrolment form carrying the chosen class, student name and age, guardian and contact details, medical notes and consents. It reaches your inbox and a record you can sort by class, and you invoice the way you invoice today. Inside EUR 1.500 to 3.500.
- The step 04 version. Parent accounts, a parent seeing their children's classes, term fees paid by card, teacher registers, attendance, rollover into the next term. Payments, logins and a dashboard put this at EUR 3.500 to 7.500 over 6 to 12 weeks, after the same scoping.
Running one full term on the step 03 version tells you which parts of the step 04 version you would actually use. That is a cheap way to buy the expensive thing correctly.
What moves the price inside the range
- Classes, disciplines and locations. One discipline with a short class list is a smaller build than four disciplines across two studios with a page per teacher.
- Whether the timetable data exists. A spreadsheet with a row per class is a gift. A PDF, three messages and a teacher's memory means the data has to be assembled before it can be loaded.
- Whether every class needs its own page. Some deserve a page explaining the level, the shoes, the instrument and the first lesson. Others are one line in a grid.
- Photography. Real pictures of your studios and students separate a school site from a template. If they do not exist yet, that is a line in the quote, not a hidden cost.
Process and timeline
- Scoping. Page list, timetable fields, who owns the class data, what the terms page covers. A fixed quote follows scoping.
- The timetable model. Fields designed before pages, because everything downstream reads from them.
- Design. Home, the timetable view and one class page, drawn at phone width first.
- Build and CMS. Pages, filters, enrolment form, terms page, routes between them.
- Real content. One full term of actual classes is loaded, not sample data, because sample data hides the awkward cases.
- Launch. Deliberately before the enrolment window opens, with redirects, Search Console and analytics in place.
3 to 6 weeks end to end. The part that waits on you is confirmed classes and teacher names for the coming term. How the stages run is on design and engineering, and the stack behind it is on our Next.js development page.
When to spend less
- One teacher, one short class list that changes twice a year. Step 02 at EUR 900 to 1.500 in 2 to 3 weeks gives you two or three pages, a contact flow and an editable class list, without the filters.
- Enrolment opens before a 3 to 6 week build can finish. Put up a step 01 single page at EUR 600 to 900 with term dates, classes and an enrolment form, take the term, and build the full site for the term after.
- The site is fine and nobody finds it. Start with the one-off SEO foundation at EUR 450 to 750: Search Console, analytics, indexation, technical hygiene, titles, internal links and a plan for the next 3 to 6 months. Ongoing SEO growth at EUR 500 to 800 per month is a separate decision afterwards.
Care at EUR 100 to 300 per month covers updates, monitoring, backups and small fixes, not a redesign and not new features. Every step and figure is listed on packages.
Common questions
Can we keep the PDF as well?
Yes, as a printable version for the noticeboard. The rule is that the CMS timetable is the one that gets edited and the PDF is replaced from it. Two editable versions of the same timetable will disagree, and the printed one always wins the argument in the corridor.
Who updates the timetable each term?
You do, in the CMS, which is why the fields are designed before anything else. New term, new rows, changed times, a class marked full. No invoice for any of it.
Can parents pay term fees on the site?
That is step 04 at EUR 3.500 to 7.500, because payment needs accounts, records and a way to handle refunds and credits. It is a real option, just not the same project as the site.
Do we own it?
Yes. You own the code, the repository and the database. Hosting is agreed per project rather than assumed, and it is settled during scoping.
Send your current timetable in whatever form it exists and the term dates you are working toward, and you get a fixed quote with the page list attached. Start at the contact form.
Building something?
JP Studio designs and builds websites, storefronts and product interfaces.