OneSchool is a website template for schools, academies and online course providers, built on Bootstrap 5. The layout is responsive and mobile-ready. There are two pages: a one-page home page and a course page.
The home page has a full-screen hero with a parallax photo and a sign-up form, a course carousel, three study programs, four teachers, a student testimonial, a “Why Choose Us” section and a contact form, and the menu scrolls to each section and highlights the one in view. The course page adds a course description with the schedule, the course instructor, comments with a comment form and a carousel of more courses. OneSchool gives you a ready-made site to present your school, its courses and its teachers.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.1.3 and jQuery), compiled from Sass together with the theme’s colours and the Bootstrap 4 proportions the design was drawn with, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel on the course carousels, Jarallax replaces Stellar on the hero, a keyboard-operable side panel replaces the off-canvas mobile menu, and a small built-in module replaces AOS. A lightbox, a date picker, a countdown and jQuery UI that loaded with nothing to run on are gone. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: the home page went from 6.5 MB and 45 requests to 897 KB and 29 requests, and the download from 8.0 MB to 2.7 MB. Every photo has an AVIF version with the original as the fallback, real dimensions and lazy loading below the first screen, the hero photo is preloaded and weighs 206 KB instead of 3.6 MB, and unused images and plugin files are gone.
No third-party requests: Mulish is self-hosted, the IcoMoon icon font is replaced by Lucide SVG icons, the unused Flaticon font is gone, and a Google Analytics 4 snippet stays commented out until you add your own ID. Before, the home page loaded its web font from Google Fonts.
Working forms: the hero sign-up form (it now asks for name, email and course instead of a password twice), the contact form, the footer newsletter and the course page’s comment form send through php/send-email.php, with validation, a spam trap and an in-page message. Before, they had no field names and no working action, so nothing could be sent.
Accessibility: a skip link, a main landmark and one h1 per page with no skipped heading levels, a real menu button, a mobile menu that keeps keyboard focus inside and closes with Esc, labelled form fields, descriptive alt text, visible focus on buttons, reduced-motion support (the animations and the parallax switch off) and WCAG AA text contrast, with the theme’s darker purple for buttons, links, prices and other small purple text (white text on the original purple was 3.9:1), darker greys for body and meta text, and brighter hero copy.
Fixed: the course page rendered in the system font (its font link was commented out), its menu linked to sections that exist only on the home page (the menu and footer links now go there), the mobile menu button was black on the dark hero and nearly invisible, and course titles, Admission buttons, the comment count, Reply and footer links all pointed to “#” (course titles now open the course page and Admission goes to the contact form).
Demo content: school copy instead of lorem ipsum and repeated placeholder text, distinct fictional courses, programs, teachers, a testimonial and comments, and a classroom photo from Unsplash without brand markings in the hero.