Classy Ads is a classified ads website template built on Bootstrap 5, with a responsive, mobile-ready layout that works in all popular web browsers. It suits product, rental and local listing sites and small directories. It comes with eight pages: home, ads listings, a single ad, about, blog, contact, log in and register.
The home page has a search bar with category and location fields, category tiles, a featured-ads carousel, popular and trending ads, a testimonial slider and a blog preview. The listings page adds a filter sidebar and pagination, and the single-ad page has a photo gallery, price, description and details. Parallax page headers, a newsletter form and a working contact form are included.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used Bootstrap 4.1.3 and jQuery), compiled from the included Sass, and plain JavaScript with no jQuery. Swiper 14 replaces Owl Carousel, Jarallax replaces Stellar for the parallax headers, and small built-in modules replace AOS and the mobile menu. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script.
Lighter pages: all eight pages together went from 15.5 MB and 280 requests to 9.1 MB and 142 requests. Every photo has an AVIF version with the JPEG as the fallback, real dimensions and lazy loading below the fold.
No third-party requests: Nanum Gothic is self-hosted, the IcoMoon and Flaticon icon fonts are replaced by Lucide SVG icons and a small set of social logos, and a Google Analytics 4 snippet stays commented out until you add your own ID.
New demo content: fictional ads with prices, photos from Unsplash and initials in place of people photos.
Accessibility: a skip link, labelled search and form fields, keyboard-operable menu and carousels, a visible focus ring and text colours that meet WCAG AA contrast; the accent teal is darker so white button labels are readable.
Working forms: the contact form posts to a PHP mail handler (set your address in php/send-email.php), the search and filters are GET forms for listings.html, and the newsletter, log in and register forms validate and confirm.
Fixes: the Blog page now has its own title, the register form has distinct field ids, and the menu and footer links point to real pages.