Skip to content

stone-ericm/local_news_blur

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NewsBlur Reader for TRMNL

A private TRMNL plugin that displays your recent RSS stories from NewsBlur on an e-ink device.

What It Does

The plugin polls a Vercel-hosted API proxy that authenticates with your NewsBlur account and fetches your River of News. Stories are rendered on the TRMNL e-ink display with titles, thumbnails, descriptions, feed source names, and relative timestamps.

The API extracts the best available image from each story (NewsBlur image metadata first, then the first <img> tag in the content) and returns up to 20 stories per request.

Display Sizes

Each display size supports multiple layout modes (list, grid, hybrid) configurable in TRMNL plugin settings. Thumbnails and descriptions can be toggled independently per size.

Size Layouts Stories Shown
Full List (up to 10), Grid (2 featured + 3), Hybrid (2 featured + 5 list) 5-10
Half Horizontal List (4), Grid (3), Hybrid (1 featured + 3 list) 3-4
Half Vertical List (5), Grid (1 featured + 2), Hybrid (1 featured + 3 list) 3-5
Quadrant List (2), Grid (2) 2

Setup

1. Deploy the API to Vercel

Clone this repo and deploy to Vercel:

npm i -g vercel
vercel --prod

Set environment variables in your Vercel project settings:

Variable Description
NEWSBLUR_USERNAME Your NewsBlur username
NEWSBLUR_PASSWORD Your NewsBlur password

2. Configure the TRMNL Plugin

In your TRMNL dashboard, create a private plugin pointing to this repo (or install from the .trmnlp.yml config). Set the API URL custom field to your deployed Vercel endpoint:

https://your-app.vercel.app/api/newsblur

The plugin polls this URL every 60 minutes by default. Vercel caches responses for 5 minutes with a 10-minute stale-while-revalidate window.

3. Local Development

Copy .env.example to .env and fill in your NewsBlur credentials. Then:

# Run the Vercel dev server (API at localhost:3000)
npm run dev

# Preview TRMNL templates locally
npm run trmnl

The .trmnlp.yml file configures the local TRMNL preview with default custom field values.

Plugin Settings

All settings are configurable per-instance in the TRMNL dashboard:

  • Layout mode -- list, grid, or hybrid (per display size)
  • Show images -- toggle thumbnails (per display size)
  • Show description -- toggle story excerpts (per display size)
  • Show title bar -- toggle the NewsBlur header bar

Tech Stack

  • API: Node.js 18+ serverless function (api/newsblur.js)
  • Hosting: Vercel (256 MB memory, 30s max duration)
  • Templates: Liquid (src/*.liquid) using TRMNL's component system
  • Plugin config: src/settings.yml (custom fields) + .trmnlp.yml (local dev)

About

TRMNL e-ink plugin displaying NewsBlur RSS feeds with thumbnails and grid layout

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors