WellSpa is a website template for a day spa or wellness studio, built on Bootstrap 5. It has a full-screen hero with a parallax photo, a calm light layout, a testimonial slider and a gallery with a lightbox. The layout is responsive and mobile-ready. There are seven pages: home, about, services, gallery, blog, a blog post and contact.
The home page has an about block, four treatment cards, a discount band, a spa features band with line icons and a testimonial slider. The about page adds the team and a “Why us” section, the services page has eight treatment cards, the gallery page eight photos, and the blog and blog post pages a journal, comments, a comment form and a sidebar. The contact page has a working contact form. WellSpa gives you a ready-made site for a spa, massage or beauty business.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.3.1 and jQuery), compiled from Sass with the theme’s colours and the original Bootstrap 4 proportions, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel on the testimonials, PhotoSwipe replaces Fancybox in the gallery, Jarallax replaces Stellar on the hero, and a keyboard-operable dialog replaces the off-canvas mobile menu. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: all seven pages together went from 12.6 MB and 238 requests to 5.6 MB and 146 requests (home page 2.1 MB to 0.9 MB). Every photo has an AVIF version with the JPEG as the fallback, real dimensions and lazy loading below the first screen, and the hero photo is preloaded.
No third-party requests: Mulish and Playfair Display are self-hosted, the IcoMoon and Flaticon icon fonts are replaced by Lucide SVG icons and a small social-logo subset (the Twitter bird is now the X logo), and a Google Analytics 4 snippet stays commented out until you add your own ID. Before, every page loaded its web fonts from Google Fonts.
Working forms: the contact form and the comment form send through php/send-email.php, with visible labels, validation, a spam trap and an in-page message. Before, the fields had no names and nothing could be sent.
Accessibility and contrast: a skip link, a main landmark and one h1 on every page, real buttons for the menu and slider controls, a visible keyboard focus ring, and darker text, button and footer colours that reach 4.5:1.
Photos and content: new spa photos (credited in the README), initials avatars for the team and testimonials, fictional names and contact details, and a gallery whose eight lightbox links now open eight different photos.