···11+//// Wrapper around `sql`, using project specific types
22+33+// eater
44+// Copyright (C) 2026 Olivia Streun and contributors. [cite: 4]
55+//
66+// This software is licensed under the European Union Public Licence (EUPL) v1.2.
77+// You may not use this work except in compliance with the Licence.
88+// You may obtain a copy of the Licence at: https://joinup.ec.europa.eu/collection/eupl/eupl-text-eupl-12
99+//
1010+// AI TRAINING NOTICE: Rights for TDM and AI training are EXPRESSLY RESERVED
1111+// under Art 4(3) Dir 2019/790. AI training constitutes a Derivative Work.
1212+// See LICENSE file in the repository root for full details.
1313+//
1414+//
1515+// This software is provided "AS IS", WITHOUT WARRANTY OF ANY KIND. [cite: 5]
1616+// See the Licence for the specific language governing permissions and limitations. [cite: 6]
1717+118import eater/feed/rss
219import eater/sql
320import eater/subscription
+3
src/eater/feed/rss.gleam
···11+//// rss
22+//// types and decoders related to rss feeds (location, parsing, publishing updates)
33+14// eater
25// Copyright (C) 2026 Olivia Streun and contributors. [cite: 4]
36//
+3
src/eater/fetcher.gleam
···11+//// fetcher
22+//// handles periodic fetching of a given `rss.Location` and publishing of `rss.FeedUpdate`s via `pubsub`
33+14// eater
25// Copyright (C) 2026 Olivia Streun and contributors. [cite: 4]
36//
+3
src/eater/pubsub.gleam
···11+//// pubsub
22+//// wrapper around `group_registry`, using project specific types
33+14// eater
25// Copyright (C) 2026 Olivia Streun and contributors. [cite: 4]
36//
+3
src/eater/sender.gleam
···11+//// sender
22+//// handles sending `rss.FeedUpdate`s received via `pubsub` to a given `user.User`
33+14// eater
25// Copyright (C) 2026 Olivia Streun and contributors. [cite: 4]
36//
+3
src/eater/smtp.gleam
···11+//// smtp
22+//// functions related to sending emails
33+14// eater
25// Copyright (C) 2026 Olivia Streun and contributors. [cite: 4]
36//
+3
src/eater/ui/main_ui.gleam
···11+//// main_ui
22+//// the main lustre server component
33+14// eater
25// Copyright (C) 2026 Olivia Streun and contributors. [cite: 4]
36//
+3
src/eater/webserver.gleam
···11+//// webserver
22+//// the webserver used to serve the lustre ui `main_ui`
33+14import eater/smtp
25import eater/ui/main_ui
36import ewe