An RSS/Atom feed reader for NextUI on TrimUI handheld devices.
Browse headlines from your favorite feeds directly on your TrimUI Brick or Smart Pro.
Built with PakKit and Apostrophe.
- RSS 2.0 and Atom feed support
- Article hero images -- automatically fetched and displayed in article detail view
- On-device feed management -- add, edit, delete, and reorder feeds
- Offline reading -- feeds cached locally, auto-refreshed when older than one hour
- WiFi detection -- checks for WiFi before fetching with retry/continue options
- Refresh all feeds from the menu
- Article detail view with source domain, publish date, hero image, and scrollable description
- On-screen keyboard with URL shortcut buttons for easy feed entry
- Article count shown next to each feed name
- Loading indicators during feed fetches
- Refresh individual feeds from the article list
- Reddit support -- add any subreddit as a feed (images included)
- Persistent config -- feeds saved to SD card
- HTTPS support with bundled CA certificates
- Minimal UI -- clean PakKit screens with subtle button hints
| Device | Platform | Status |
|---|---|---|
| TrimUI Brick | tg5040 | Working |
| TrimUI Smart Pro | tg5040 | Working |
| TrimUI Brick Hammer | tg5040 | Working |
| Feed List | Article List | Article Detail |
|---|---|---|
![]() |
![]() |
![]() |
| Menu | Keyboard | No WiFi |
|---|---|---|
![]() |
![]() |
![]() |
- Download the latest release from the Releases page
- Extract the contents to your SD card so the pak lands at: /Tools/tg5040/NextFeed.pak/
- Launch NextFeed from the Tools menu on your device
- Make sure WiFi is enabled on your device
NextFeed ships with these feeds pre-configured:
- Retro Handhelds
- Retro Game Corps
- Ars Technica
- The Verge
- Slashdot
You can add feeds from the feed list screen and edit or delete them from the menu. Add any subreddit with /.rss after the subreddit URL, e.g., https://reddit.com/r/example/.rss
| Button | Action |
|---|---|
| A | Open feed |
| X | Add new feed |
| Y | Menu |
| B | Quit |
| Option | Description |
|---|---|
| Manage Feed | Edit, delete, reorder, or clear cache for selected feed |
| Refresh All Feeds | Re-fetch all feeds regardless of cache age |
| About | Version info and credits |
| Button | Action |
|---|---|
| A | Read article |
| X | Refresh feed |
| B | Back to feeds |
| Button | Action |
|---|---|
| Up/Down | Scroll |
| B | Back to articles |
| Button | Action |
|---|---|
| A | Type selected key |
| B | Backspace |
| Start | Confirm input |
| Y | Cancel |
| L1 | Toggle shift |
| R1 | Toggle symbols |
- Docker (or OrbStack on macOS)
- The tg5040 toolchain image: ghcr.io/loveretro/tg5040-toolchain
- Git (for submodules)
git clone --recursive https://github.com/ericreinsmidt/nextui-rss-reader.git
cd nextui-rss-reader
If you already cloned without --recursive:
git submodule update --init --recursive
docker run --rm \
-v "$(pwd)":/workspace \
ghcr.io/loveretro/tg5040-toolchain \
/workspace/third_party/apostrophe/scripts/build_third_party.sh ensure-curl tg5040
mkdir -p build/tg5040
docker run --rm \
-v "$(pwd)":/workspace \
ghcr.io/loveretro/tg5040-toolchain \
/workspace/third_party/apostrophe/scripts/build_third_party.sh stage-runtime-libs tg5040 \
/workspace/build/tg5040/nextfeed /workspace/build/tg5040/lib
make build
make package
This builds the binary, stages all artifacts, and creates dist/NextFeed.tg5040.pak.zip.
Copy ports/tg5040/pak/ to /Tools/tg5040/NextFeed.pak/ on your SD card.
nextui-rss-reader/
+-- src/
| +-- main.c # Application source
+-- assets/
| +-- feeds/
| | +-- default_feeds.txt # Default feed list
| +-- screenshots/ # README screenshots
+-- ports/
| +-- tg5040/
| +-- Makefile # Cross-compile makefile
| +-- pak/
| +-- launch.sh # Pak entrypoint
| +-- pak.json # Pak metadata
| +-- bin/ # Built binary (not in repo)
| +-- lib/ # CA certs (not in repo)
| +-- res/
| | +-- splash.png # Splash screen
| +-- assets/
| +-- feeds/
| +-- default_feeds.txt
+-- scripts/
| +-- build_tg5040_docker.sh
| +-- package_pak.sh
+-- third_party/
| +-- apostrophe/ # Git submodule
| +-- pakkit/ # Git submodule
+-- pak.json
+-- Makefile
+-- LICENSE
+-- README.md
| Path | Purpose |
|---|---|
| /mnt/SDCARD/.userdata/tg5040/nextfeed/config/feeds.txt | User's feed list |
| /mnt/SDCARD/.userdata/tg5040/nextfeed/cache/*.xml | Cached feed XML |
| /mnt/SDCARD/.userdata/tg5040/nextfeed/cache/img_* | Cached article images |
| /mnt/SDCARD/.userdata/tg5040/logs/nextfeed.txt | Log file (current session only) |
- Language: C (single-file architecture)
- UI Components: PakKit + Apostrophe by Helaas
- HTTP: libcurl with static OpenSSL
- Target: TrimUI Brick / Smart Pro / Brick Hammer (tg5040) running NextUI
- NextFeed by Eric Reinsmidt
- PakKit UI components by Eric Reinsmidt
- Apostrophe UI toolkit by Helaas
- NextUI by LoveRetro
MIT -- see LICENSE for details.






