CarRentals is a website template for car rental companies and rental desks, built on Bootstrap 5. The layout is responsive and mobile-ready. There are seven pages: home, listing, testimonials, blog, a single blog post, about and contact.
The home page opens with a full-screen hero and a car search form (car type, pick-up and drop-off dates), followed by a three-step “How it works”, an offer block, six car cards with daily prices and specs, six features, testimonials and a call to action. The listing page has the car cards with pagination and testimonials, and the testimonials page has a testimonial grid. You will also find a blog grid with pagination, a blog post with comments, a comment form and a sidebar, an about page with the company story, a team section and a short history, and a contact page with a working contact form and contact details. CarRentals gives you a ready-made site to present your cars, your prices and your service.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.3.1 and jQuery 3.3.1), compiled from Sass with the Bootstrap 4 proportions the design was drawn with, and plain JavaScript with no jQuery. The mobile menu is a side panel, and no page needs Bootstrap’s own script. Owl Carousel, Fancybox, AOS, Waypoints and other plugins that loaded on every page with nothing to run on are gone, and the hero’s pick-up and drop-off fields are the browser’s own date fields instead of a jQuery date picker. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: the home page went from 3.3 MB and 36 requests to 395 KB and 17 requests, and the download from 10.9 MB to 1.9 MB. Every photo has an AVIF version with the JPEG as the fallback, real dimensions and lazy loading below the first screen, each page preloads its hero photo, the oversized hero photos and the 1.2 MB feature image are re-encoded, and unused images are removed.
No third-party requests: Roboto is self-hosted, the IcoMoon icon font is replaced by Lucide SVG icons and a 1.1 KB social-logo subset (the Twitter bird is now the X logo), the unused Flaticon font is gone, 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 blog comment form send through php/send-email.php, with validation, a spam trap and an in-page message, and the hero’s car search sends the car type and dates to the listing page, ready to connect to your booking system. Before, the forms had no field names, so nothing could be sent.
Accessibility: a skip link and a main landmark on every page, one h1 per page with no skipped heading levels, a real menu button, a mobile menu that keeps keyboard focus inside, closes with Esc and returns focus to the button, labelled form fields and social links, descriptive alt text, a visible focus ring and WCAG AA text contrast, with one darker brand blue for buttons, links and prices (white text on the two old blues was too light), darker greys for dates, roles and footer links, and a white shade behind the titles on the inner-page photos.
Fixed: the home page scrolled sideways on phones (the feature image was too wide), the contact page’s title and breadcrumb said “About” and its second field was labelled “First name” twice, the blog sidebar’s search icon was blank, and the “Video how it works” link, the “Learn more” links and the call-to-action button led nowhere (the first is now “Browse all cars”, as no video existed).
Demo content: car photos that showed manufacturer badges are replaced with Unsplash photos whose badges and number plates are blurred, the cards and the car search name car classes instead of real models, and the team, testimonials, blog authors, commenters and contact details are fictional.