From d70417b05633cb4486f8e210d12b37d6842dd26b Mon Sep 17 00:00:00 2001 From: CourtneyFradreck Date: Tue, 14 Apr 2026 22:11:59 +0200 Subject: [PATCH 1/2] feat: Add llms.txt file and update sitemap priorities for better SEO --- src/llms.txt.njk | 21 +++++++++++++++++++++ src/robots.txt.njk | 1 + src/sitemap.xml.njk | 10 +++++++++- 3 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/llms.txt.njk diff --git a/src/llms.txt.njk b/src/llms.txt.njk new file mode 100644 index 0000000..29cda71 --- /dev/null +++ b/src/llms.txt.njk @@ -0,0 +1,21 @@ +--- +permalink: "llms.txt" +eleventyExcludeFromCollections: true +--- +# {{ site.title }} + +> {{ site.description }} + +CourtNotes is a personal blog by {{ site.author }}, a Zimbabwe-based software engineering student, startup builder, and tech community lead. The site captures the journey of learning in public — from experiments in Eleventy to reflections on leadership, startup execution, and Africa-focused technology. + +Courtney is the CEO and project lead at Proxyon Technologies, building AgriLease — a mobile-first marketplace helping farmers discover, book, and pay for agricultural equipment. He also serves as Tech Lead for GDG on Campus at his university. + +## Pages + +- [About]({{ site.siteUrl }}/about/): Get to know Courtney Fradreck — the person behind CourtNotes. +- [Blog]({{ site.siteUrl }}/blog/): All blog posts and articles. + +## Blog Posts +{% for post in collections.post | reverse %} +- [{{ post.data.title }}]({{ site.siteUrl }}{{ post.url }}): {{ post.data.description }} +{%- endfor %} diff --git a/src/robots.txt.njk b/src/robots.txt.njk index eabe1f9..1302a56 100644 --- a/src/robots.txt.njk +++ b/src/robots.txt.njk @@ -6,3 +6,4 @@ User-agent: * Allow: / Sitemap: {{ metadata.siteUrl }}/sitemap.xml +Llms-Txt: {{ metadata.siteUrl }}/llms.txt diff --git a/src/sitemap.xml.njk b/src/sitemap.xml.njk index 444af45..8940146 100644 --- a/src/sitemap.xml.njk +++ b/src/sitemap.xml.njk @@ -8,8 +8,16 @@ eleventyExcludeFromCollections: true {% if page.url and page.url != "/404.html" %} {{ metadata.siteUrl | default("https://courtnotes.netlify.app") }}{{ page.url }} - {# Ensure the date is formatted as YYYY-MM-DD #} {{ page.date.toISOString().split('T')[0] if page.date else "2024-01-01" }} + {% if page.url == "/about/" %} + 1.0 + {% elif page.url == "/" %} + 0.9 + {% elif page.url == "/blog/" %} + 0.8 + {% else %} + 0.6 + {% endif %} {% endif %} {% endfor %} From 90b7d4bfcf79832bf132fda99f6af07f73eaf088 Mon Sep 17 00:00:00 2001 From: CourtneyFradreck Date: Tue, 14 Apr 2026 22:27:55 +0200 Subject: [PATCH 2/2] feat: Add RSS feed support and improve SEO metadata for blog posts --- src/_includes/individual-blog.njk | 4 +- src/_includes/seo.njk | 94 +++++++++++++++++++------------ src/blog.njk | 2 +- src/feed.xml.njk | 24 ++++++++ src/index.njk | 3 +- 5 files changed, 86 insertions(+), 41 deletions(-) create mode 100644 src/feed.xml.njk diff --git a/src/_includes/individual-blog.njk b/src/_includes/individual-blog.njk index 585ac26..bdef40c 100644 --- a/src/_includes/individual-blog.njk +++ b/src/_includes/individual-blog.njk @@ -5,8 +5,8 @@ {% include "seo.njk" %} - {{ title }} + {% include 'header.njk' %} @@ -15,7 +15,7 @@

{{ title }}

- {{ imageAlt }} + {{ imageAlt }}
{{ imageAlt }}
diff --git a/src/_includes/seo.njk b/src/_includes/seo.njk index 29e076b..bf8de51 100644 --- a/src/_includes/seo.njk +++ b/src/_includes/seo.njk @@ -10,19 +10,21 @@ {% set imageAlt = imageAlt or "CourtNotes site logo" %} {% set absolutePageUrl = page.url | absoluteUrl(metadata.siteUrl) %} {% set fullImage %}{% if image and image.indexOf('http') == 0 %}{{ image }}{% else %}{{ image | absoluteUrl(metadata.siteUrl) }}{% endif %}{% endset %} - - - +{% set isPost = tags and tags.indexOf('post') > -1 %} {# Meta tags for SEO #} {{ seoTitle }} + {# Canonical link #} +{# RSS feed discovery #} + + @@ -30,11 +32,15 @@ {# Open Graph for social previews #} - + +{% if isPost %} + + +{% endif %} {# Twitter card #} @@ -45,47 +51,61 @@ - - - +{# Schema.org JSON-LD — conditional by page type #} +{% if isPost %} +{% elif title == "Home" %} + +{% else %} - \ No newline at end of file +{ + "@context": "https://schema.org", + "@type": "WebPage", + "name": "{{ seoTitle }}", + "url": "{{ absolutePageUrl }}", + "description": "{{ description }}", + "author": { + "@type": "Person", + "name": "{{ metadata.author }}" + } +} + +{% endif %} diff --git a/src/blog.njk b/src/blog.njk index dc618aa..520463a 100644 --- a/src/blog.njk +++ b/src/blog.njk @@ -9,7 +9,7 @@ layout: base.njk {%- for post in collections.post | reverse -%}
  • - {{ post.data.imageAlt }} + {{ post.data.imageAlt }}

    {{ post.data.title }}

    by {{ post.data.author }} on {{ post.date | postDate}}

    {{ readingTime }}

    diff --git a/src/feed.xml.njk b/src/feed.xml.njk new file mode 100644 index 0000000..ea0e00f --- /dev/null +++ b/src/feed.xml.njk @@ -0,0 +1,24 @@ +--- +permalink: "feed.xml" +eleventyExcludeFromCollections: true +--- + + + + {{ metadata.title }} + {{ metadata.siteUrl }} + Personal blog by {{ metadata.author }} — covering software engineering, startup building, and learning in public. + en + + {%- for post in collections.post | reverse %} + + {{ post.data.title }} + {{ metadata.siteUrl }}{{ post.url }} + {{ metadata.siteUrl }}{{ post.url }} + {{ post.data.description }} + {{ post.date.toUTCString() }} + {{ metadata.author }} + + {%- endfor %} + + diff --git a/src/index.njk b/src/index.njk index 0cc2054..13716c3 100644 --- a/src/index.njk +++ b/src/index.njk @@ -1,6 +1,7 @@ --- title : Home layout: 'base.njk' +description: "CourtNotes — a personal blog by Courtney Fradreck covering software engineering, startup building, and learning in public from Zimbabwe." --- @@ -85,7 +86,7 @@ document.addEventListener('DOMContentLoaded', () => {
  • - {{ post.data.imageAlt }} + {{ post.data.imageAlt }}
    {%- endfor -%}