Skip to content

ericreinsmidt/nextui-rss-reader

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NextFeed

NextFeed

GitHub release GitHub downloads License

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.

Features

  • 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

Supported Devices

Device Platform Status
TrimUI Brick tg5040 Working
TrimUI Smart Pro tg5040 Working
TrimUI Brick Hammer tg5040 Working

Screenshots

Feed List Article List Article Detail
Feed List Article List Article Detail
Menu Keyboard No WiFi
Menu Keyboard No WiFi

Installation

  1. Download the latest release from the Releases page
  2. Extract the contents to your SD card so the pak lands at: /Tools/tg5040/NextFeed.pak/
  3. Launch NextFeed from the Tools menu on your device
  4. Make sure WiFi is enabled on your device

Default Feeds

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

Controls

Feed List

Button Action
A Open feed
X Add new feed
Y Menu
B Quit

Menu

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

Article List

Button Action
A Read article
X Refresh feed
B Back to feeds

Article Detail

Button Action
Up/Down Scroll
B Back to articles

Keyboard

Button Action
A Type selected key
B Backspace
Start Confirm input
Y Cancel
L1 Toggle shift
R1 Toggle symbols

Building from Source

Prerequisites

  • Docker (or OrbStack on macOS)
  • The tg5040 toolchain image: ghcr.io/loveretro/tg5040-toolchain
  • Git (for submodules)

Clone

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

Build libcurl (first time only)

docker run --rm \
  -v "$(pwd)":/workspace \
  ghcr.io/loveretro/tg5040-toolchain \
  /workspace/third_party/apostrophe/scripts/build_third_party.sh ensure-curl tg5040

Stage CA certificates (first time only)

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

Build

make build

Package

make package

This builds the binary, stages all artifacts, and creates dist/NextFeed.tg5040.pak.zip.

Deploy

Copy ports/tg5040/pak/ to /Tools/tg5040/NextFeed.pak/ on your SD card.

Project Structure

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

Runtime Paths

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)

Tech Stack

  • 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

Credits

License

MIT -- see LICENSE for details.

About

RSS/Atom feed reader for NextUI on TrimUI devices

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors