Axole is a writer and blogger website template built on Bootstrap 5. The default design is clean and easy on the eye, and you are welcome to adapt it to your own signature style. The code is well organized, so you can find your way around it quickly. It comes with four pages (home, about, blog post and contact).
Building a blog or an online journal does not need to start from the ground up. The home page lists your latest posts with large photos, the about page introduces you with a testimonial slider, and the blog post page has an author box, tags, comments and a comment form. You also get a newsletter signup on every page and a working contact form with a click-to-load map.
What’s new in 3.0
Bootstrap 5.3.8 (the earlier release used a Bootstrap 5.0 beta), compiled from Sass with only the parts the pages use, and plain JavaScript with one function per feature. Swiper 14 replaces tiny-slider on the testimonial slider and keeps the dark middle card, a small built-in module replaces AOS for the scroll reveals, and the lightbox, counter, datepicker and animate.css files that every page loaded but none used are gone. npm run build (Dart Sass and esbuild) compiles one minified stylesheet and one script bundle.
Lighter pages: the home page went from 6.7 MB and 33 requests to 1.1 MB and 17 requests, the contact page from 2.8 MB and 37 requests to 590 KB and 13 requests, and the download from 7.3 MB to 3.4 MB. Every photo has an AVIF version with the JPEG as the fallback, with real dimensions and lazy loading below the first screen, and the largest JPEGs are re-encoded.
No third-party requests: Poppins is self-hosted, the Font Awesome 4.7, Ionicons and Flaticon icons are replaced by Lucide SVG icons and a 1 KB social-logo subset, and the contact map is OpenStreetMap, loaded only when a visitor clicks “Show map”. Before, every page loaded fonts and icons from other sites and a maps script with an API key.
Working forms: the contact and comment forms send through php/send-email.php and the newsletter through php/subscribe.php, with validation, a spam trap and an in-page message. Before, the forms had no handler and the newsletter’s “Subscribe” was a dead link.
Accessibility: a skip link, a main landmark, names on icon-only links, labelled form fields, a visible keyboard focus ring (the old CSS removed it) and WCAG AA text contrast, with darker greys and a deeper yellow for links and yellow text on light backgrounds.
Fixed: script errors on every page (the maps script ran on pages without a map, with a key that did not work), the contact map had no height on tablet-width screens, footer links and recent posts pointed nowhere, phone and email links did not work, an unclosed quote icon broke the testimonials markup, and the “Writter & Blogger” typo is corrected.
Demo content: the address, email and phone number are fictional (a real street address before), the about page’s blogger has an invented name (the old one echoed a real singer’s), and three photos are replaced: one showed a car badge, one a poster wall with real performers’ names and one an artist’s mural portrait.