annot.at is a service for syncing static websites, such as blogs, to atproto and standard.site annot.at
elixir atproto standardsite
3

Configure Feed

Select the types of activity you want to include in your feed.

Track updated at

Unfortunately RSS does not have updated at really, but we can try to get it from atom:updated.

Johanna Larsson (Jul 1, 2026, 8:15 PM +0100) f03a8fe4 0aae6e3e

+5 -1
+2 -1
lib/annot_at/feeds/atom.ex
··· 141 141 defp apply_entry_field(entry, "published", text), do: %{entry | published_at: parse_date(text)} 142 142 143 143 defp apply_entry_field(entry, "updated", text) do 144 - %{entry | published_at: entry.published_at || parse_date(text)} 144 + updated_at = parse_date(text) 145 + %{entry | published_at: entry.published_at || updated_at, updated_at: updated_at} 145 146 end 146 147 147 148 defp apply_entry_field(entry, _name, _text), do: entry
+2
lib/annot_at/feeds/entry.ex
··· 11 11 :url, 12 12 :title, 13 13 :published_at, 14 + :updated_at, 14 15 :summary, 15 16 :content, 16 17 :rkey, ··· 26 27 url: String.t() | nil, 27 28 title: String.t() | nil, 28 29 published_at: DateTime.t() | nil, 30 + updated_at: DateTime.t() | nil, 29 31 summary: String.t() | nil, 30 32 content: String.t() | nil, 31 33 rkey: String.t() | nil,
+1
lib/annot_at/feeds/rss.ex
··· 105 105 defp apply_entry_field(entry, "description", text), do: %{entry | summary: text} 106 106 defp apply_entry_field(entry, "content:encoded", text), do: %{entry | content: text} 107 107 defp apply_entry_field(entry, "pubDate", text), do: %{entry | published_at: parse_date(text)} 108 + defp apply_entry_field(entry, "atom:updated", text), do: %{entry | updated_at: parse_date(text)} 108 109 109 110 defp apply_entry_field(entry, "category", text), 110 111 do: %{entry | categories: [text | entry.categories]}