<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Static Site Generators in the Age of AI on SSG Book</title><link>http://polla.dev/ssg-book/book/</link><description>Recent content in Static Site Generators in the Age of AI on SSG Book</description><generator>Hugo</generator><language>en</language><lastBuildDate>Mon, 01 Jan 0001 00:00:00 +0000</lastBuildDate><atom:link href="http://polla.dev/ssg-book/book/index.xml" rel="self" type="application/rss+xml"/><item><title>Your First Hugo Website</title><link>http://polla.dev/ssg-book/book/chapter_01_your_first_hugo_website/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_01_your_first_hugo_website/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Draft 0.2, September 2026&lt;/strong&gt;&lt;br&gt;&#10;&lt;em&gt;Checked with Hugo 0.150.0 through 0.166.0. Requires Hugo 0.146.0 or later for the template layout convention.&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;You have something worth sharing: notes from your work, an explanation you have written, a useful collection of resources, or a project you want others to understand. A website gives those materials a place where people can find and read them.&lt;/p&gt;</description></item><item><title>Write and Publish Content Locally</title><link>http://polla.dev/ssg-book/book/chapter_02_write_and_publish_content_locally/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_02_write_and_publish_content_locally/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;&lt;strong&gt;Draft 0.2, September 2026&lt;/strong&gt;&lt;br&gt;&#10;&lt;em&gt;Checked with Hugo 0.150.0 through 0.166.0 (standard and extended editions).&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;In Chapter 1, you changed a home page. Now you will give your website something more substantial to read: its first article.&lt;/p&gt;&#10;&lt;p&gt;The article will describe a small thing you have learned. You will give it sections, add links and a screenshot, and make it reachable from the home page. Along the way, you will learn the Markdown needed to make a piece of writing understandable both as a text file and as a web page.&lt;/p&gt;</description></item><item><title>Organise a Useful Website</title><link>http://polla.dev/ssg-book/book/chapter_03_organise_a_useful_website/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_03_organise_a_useful_website/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Your website now has a home page and an article. You know how to edit both, but a new visitor does not know where your files are. They need clear routes through the information you have published.&lt;/p&gt;&#10;&lt;p&gt;In this chapter, you will add an About page, give Articles a useful landing page, introduce a Projects section, and collect a few resources. Then you will replace the small home-page navigation with links that work across the website.&lt;/p&gt;</description></item><item><title>Understand the HTML Behind Your Pages</title><link>http://polla.dev/ssg-book/book/chapter_04_understand_the_html_behind_your_pages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_04_understand_the_html_behind_your_pages/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;You have written articles, created sections, and changed the navigation of your website. Now we will look at what the browser receives when it displays those pages.&lt;/p&gt;&#10;&lt;p&gt;The title on the screen is not simply large text. The navigation is not merely a row of coloured words. They have a structure that the browser can interpret. Understanding that structure will help you make deliberate changes, diagnose mistakes, and assess code suggested by an AI agent.&lt;/p&gt;</description></item><item><title>Practical CSS for Your Hugo Site</title><link>http://polla.dev/ssg-book/book/chapter_05_practical_css_for_your_hugo_site/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_05_practical_css_for_your_hugo_site/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Your notebook already has a readable layout. In Chapter 4, you inspected its HTML and added a footer note. Now you will give that note a style and make two small adjustments to the reading experience.&lt;/p&gt;&#10;&lt;p&gt;The visible result is small but deliberate: the footer note sits below a thin rule in quieter text, body text reads a little larger, and your article&amp;rsquo;s section headings have clearer space above them. Everything else should look as it did at the end of Chapter 4.&lt;/p&gt;</description></item><item><title>Track and Recover Your Hugo Site with Git</title><link>http://polla.dev/ssg-book/book/chapter_06_track_and_recover_your_hugo_site_with_git/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_06_track_and_recover_your_hugo_site_with_git/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;In the previous chapters, you kept copies of the project before continuing. Those copies helped you recover, but comparing them becomes awkward. Which one contains the footer improvement? What changed in the stylesheet? Can you recover a file without replacing the whole site?&lt;/p&gt;&#10;&lt;p&gt;Git gives your project a history of recorded checkpoints. In this chapter, you will record your working Hugo site, save one useful content change, and recover from a deliberately poor styling change.&lt;/p&gt;</description></item><item><title>Publish Your Hugo Site with GitHub Pages</title><link>http://polla.dev/ssg-book/book/chapter_07_publish_your_hugo_site_with_github_pages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_07_publish_your_hugo_site_with_github_pages/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Your website now has content, a readable layout, and a local Git history. This chapter gives it an address other people can visit.&lt;/p&gt;&#10;&lt;p&gt;You will put the existing repository on GitHub, let GitHub Actions build it with Hugo, and publish the result through GitHub Pages. Then you will make one small update and follow it from your editor to the live page.&lt;/p&gt;</description></item><item><title>Work with an AI Agent on Your Hugo Site</title><link>http://polla.dev/ssg-book/book/chapter_08_work_with_an_ai_agent_on_your_hugo_site/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_08_work_with_an_ai_agent_on_your_hugo_site/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;You can now write a page, recognise its HTML and CSS, save a Git checkpoint, and publish an update. Those skills make an AI agent more useful: you can give it a specific job and judge what it actually changes.&lt;/p&gt;&#10;&lt;p&gt;Our first job is small. The Resources page already contains useful links. You will ask an agent to add a short section explaining how a reader might use them. The result should be easy to inspect: one new heading and three bullets in one Markdown file.&lt;/p&gt;</description></item><item><title>Give Your Hugo Content a Consistent Structure</title><link>http://polla.dev/ssg-book/book/chapter_09_give_your_hugo_content_a_consistent_structure/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_09_give_your_hugo_content_a_consistent_structure/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Your website has one project page. Adding a second is easy: create another Markdown file and begin writing. After several projects, however, you might notice that one page explains its purpose, another lists tools, and a third never says whether the work has started.&lt;/p&gt;&#10;&lt;p&gt;A small shared structure makes those pages easier to write, compare, and maintain. It also gives an AI agent concrete requirements to follow. The structure should answer useful questions without making every page look like a long form.&lt;/p&gt;</description></item><item><title>Use Hugo Templates to Display Your Content</title><link>http://polla.dev/ssg-book/book/chapter_10_use_hugo_templates_to_display_your_content/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_10_use_hugo_templates_to_display_your_content/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Your two project pages now contain useful information in their front matter. The description, status, and tools are organised, but visitors cannot see them yet. You also maintain a separate list of project links by hand.&lt;/p&gt;&#10;&lt;p&gt;A template can use those existing values to produce the page. Change a project&amp;rsquo;s description once, and Hugo can use it both on the project page and in the Projects list.&lt;/p&gt;</description></item><item><title>Build Reusable Hugo Layouts</title><link>http://polla.dev/ssg-book/book/chapter_11_build_reusable_hugo_layouts/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_11_build_reusable_hugo_layouts/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Your shared layout now does several jobs. It creates the HTML document, displays navigation and a footer, presents page metadata, and generates the Projects list. It works, but finding the right place for the next change takes more care.&lt;/p&gt;&#10;&lt;p&gt;We will give those jobs clearer homes. A base template will hold the common document structure. Small partial templates will hold reusable pieces. A Projects section template will decide where the project list belongs.&lt;/p&gt;</description></item><item><title>Build a Resource Directory with JSON</title><link>http://polla.dev/ssg-book/book/chapter_12_build_a_resource_directory_with_json/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_12_build_a_resource_directory_with_json/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Your Resources page contains a small collection of links. Markdown handles that well. As the collection grows, however, you may want every entry to have the same information: a title, an address, a short explanation, and a few topics.&lt;/p&gt;&#10;&lt;p&gt;We will store those repeated details in JSON and let a Hugo partial display them. The surrounding introduction and links to your own notebook pages will remain ordinary Markdown.&lt;/p&gt;</description></item><item><title>Create and Maintain Content with AI Agents</title><link>http://polla.dev/ssg-book/book/chapter_13_create_and_maintain_content_with_ai_agents/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_13_create_and_maintain_content_with_ai_agents/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;In Chapter 8, you gave an agent a small, self-contained job: three bullets in one file. You could read the whole result in a minute. Real content work is larger than that, and its mistakes are harder to see.&lt;/p&gt;&#10;&lt;p&gt;In this chapter, you will produce a complete article from source material you supply, then connect it to the rest of the site. The work is divided into three requests: a plan, a draft, and a coordinated update across several files. You will review the claims in the draft against the source before publishing anything.&lt;/p&gt;</description></item><item><title>Check Every Contribution with CI/CD</title><link>http://polla.dev/ssg-book/book/chapter_14_check_every_contribution_with_ci_cd/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_14_check_every_contribution_with_ci_cd/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Chapter 6 deferred branching until there was a concrete reason to use it. This is that reason. Every change you have made since then went straight onto &lt;code&gt;main&lt;/code&gt;, and every push to &lt;code&gt;main&lt;/code&gt; publishes.&lt;/p&gt;&#10;&lt;p&gt;In this chapter, you will add a second workflow that examines a proposed change before it can reach the live site. It builds the site and checks three rules this book has already established: directory flags must be real Booleans, internal links must stay relative, and articles and projects must carry a description. Then you will propose a change on a branch, break one of those rules on purpose, and watch the checks stop it.&lt;/p&gt;</description></item><item><title>Help Readers Find and Use Your Content</title><link>http://polla.dev/ssg-book/book/chapter_15_help_readers_find_and_use_your_content/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_15_help_readers_find_and_use_your_content/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Your notebook now has nine pages, a resource directory, a publishing workflow, and checks on every proposal. A visitor arriving at it has the navigation, and nothing else. They cannot search it, and a browser tab showing every page as part of the same long name does not help them keep their place.&lt;/p&gt;&#10;&lt;p&gt;In this chapter you will improve how the site describes itself and add a way to search it. You will give every page a useful document title and a description, inspect the sitemap and feed Hugo has been generating all along, and build a search page that filters a list of your pages as the reader types.&lt;/p&gt;</description></item><item><title>Publish in Multiple Languages</title><link>http://polla.dev/ssg-book/book/chapter_16_publish_in_multiple_languages/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_16_publish_in_multiple_languages/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Your notebook is in English. If some of your readers would rather read Kurdish, or if your work belongs to a place where two languages are normal, the site should be able to say the same things twice.&lt;/p&gt;&#10;&lt;p&gt;In this chapter you will add Kurdish Sorani as a second language, translate the navigation and two pages, and give the document the language and text direction a browser needs. Kurdish Sorani is written in a Perso-Arabic script and runs right to left, so this is also the first time your layout has to work in the other direction. You will find and repair the one stylesheet rule that assumes left to right.&lt;/p&gt;</description></item><item><title>Add Interactive Features Responsibly</title><link>http://polla.dev/ssg-book/book/chapter_17_add_interactive_features_responsibly/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_17_add_interactive_features_responsibly/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Readers who find something useful on your site may want to reply to it. A contact form is the obvious way to invite that, and it is also the point where a static site meets its actual limit.&lt;/p&gt;&#10;&lt;p&gt;Your site is a set of files. It has no program running on a server, so there is nothing on your side to receive a submitted message. In this chapter you will build a proper contact form, watch it fail to send, and then make it work in the one way a site like yours can without collecting anyone&amp;rsquo;s data: by handing the message to the visitor&amp;rsquo;s own mail program.&lt;/p&gt;</description></item><item><title>Maintain, Migrate, and Recover</title><link>http://polla.dev/ssg-book/book/chapter_18_maintain_migrate_and_recover/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_18_maintain_migrate_and_recover/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Your notebook works. It is published, checked on every proposal, searchable, bilingual in part, and able to receive a message. Nothing about it is finished, because a website that nobody maintains does not stay still; it goes quietly out of date while appearing to work perfectly.&lt;/p&gt;&#10;&lt;p&gt;In this chapter you will make a maintenance pass over the site you actually have. You will find a page that now says something untrue, update what you depend on, archive work that has been superseded, and publish a mistake on purpose so that you can practise recovering from it after it has gone live. Then you will settle the questions that outlast any single change: credentials, licensing, privacy, cost, and who owns what.&lt;/p&gt;</description></item><item><title>Build Your Own Publishing Project</title><link>http://polla.dev/ssg-book/book/chapter_19_build_your_own_publishing_project/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>http://polla.dev/ssg-book/book/chapter_19_build_your_own_publishing_project/</guid><description>&lt;p&gt;&lt;em&gt;Static Site Generators in the Age of AI&lt;/em&gt;&lt;br&gt;&#10;&lt;em&gt;Building and Maintaining Content with AI Agents&lt;/em&gt;&lt;/p&gt;&#10;&lt;p&gt;Eighteen chapters ago you did not have a website. You now have one that is published, checked before every change, searchable, partly bilingual, able to receive a message, and covered by a maintenance routine you wrote yourself. More importantly, you have done each of those things once, deliberately, and can explain why.&lt;/p&gt;&#10;&lt;p&gt;This chapter turns that into something of your own. You will choose a project, write a brief that says what you are not building, pick features by what they cost to keep rather than by what is possible, and test that brief before writing a single page. Then you will build it from a checkpoint, agree who reviews and who maintains it, and decide what &amp;ldquo;delivered&amp;rdquo; means.&lt;/p&gt;</description></item></channel></rss>