My personal starter for Eleventy sites.
Performance
- 100% Lighthouse score
- Optimized Font Loading (self-hosted Google Fonts)
- Optimized Image loading (
<picture>
withavif
&webp
) - Cache-busting with
?=version
- Optimized Netlify build time with the Netlify Cache plugin
- Quicklink
Robustness
- Asset Retry
SEO ready
- SEO ready with OpenGraph & Twitter meta tags
- Open Graph card image & Favicon ready
- SEO with JSON-LD
Embedding:
- JSON embedding
- YouTube embedding
- ENV VAR embedding
- SVG embedding
- Tailwind CSS
- Alpine.js JS microframework
- Phosphor icons
Eleventy Plugins
nbsp
filter- Emoji Read Time
Monitoring:
- Fathom Analytics privacy-respecting analytics
- Honeybadger error monitoring
- Fullstory simulated video monitoring
- Set up Honeybadger deploy tracking
- Update
manifest.json
fromseo.json
- Fix footer
- Fix JSON-LD for FAQs (diy's in the front matter of
index.njk
)
- Hero
- Navbar
- Sticky navbar
- Mega bullets
- Article CTA
- FAQ - [NEW] - collapsable on mobile!
- Footer
- Footer social links
- Footer links
- Footer link badges
- Mailing list signup
- Mobile Menu toggle
- Mobile Menu
- Section background images
- Navbar dropdown
- Navbar mega dropdown
- Slider with lightbox
- Gallery
- Logo Cloud
- Testimonial cloud
- Contact Us
- Contact Form
- Blog snippets
- Blog page
- Search
- Auto-updating copyright year
- Open Graph image
- Favicons
- Copy
.env.example
. Rename to.env
, then fill out all values. - Generate Favicons with https://realfavicongenerator.net. Place the files in
/public
- Run fonts through https://google-webfonts-helper.herokuapp.com and add them to
/fonts
. Then updatestyles/tailwind.config.js
to use the new font.
To add a canonical URL to a blog post, add the canonicalUrl
property to your front matter.
{% link {
url: "",
label: "",
ariaLabel: "",
cssClasses: "",
inlineStyles: "",
attributes: "",
openInNewTab: false,
download: false,
protectFromScrapers: false,
fathomClickId: ""
} %}
{% endlink %}
{{ '/images/backgrounds/Background Ellipse 1.svg' | svgContents(".css_classes") | safe }}
{{ '/phosphor-icons/regular/caret-left.svg' | svgContents("icon-lg") | safe }}
{% image {src: partner.imagePath, alt: partner.imageDescription, widths: [600, 320, 300, 160], cssSizes: '(max-width: 639px) 160px, 300px', cssClass: ''} %}
rellax data-rellax-speed='-1' data-rellax-desktop-speed='-3'
For some reason, the SVG logos have huge amounts of padding.
This can be fixed by manually changing the viewBox
attribute on the svg
element to this value:
viewBox="520 650 2030 560"
{% jsonLdScript meta, type, tags %}
type
is a String that can be "page", "post", or "product". Anything else will be silently ignored. Default is "page"
tags
is an Array[String]. It only has an effect on the "post" type. Otherwise it'll be ignored.
The generated JSON LD will try to render:
- organization
- breadcrumbs
- website
- faq
Depending on type
it'll also render a "page", "post", or "product".
- Original theme by Greg Wolanski
This repository is property of Ahavas Chaya Inc. All rights reserved.
See LICENSE
for more information.