• Blog
  • Docs
  • Pricing
  • We’re hiring!
Log inSign up
nbbaier

nbbaier

x-article-reader

Public
Like
1
x-article-reader
Home
Code
11
.claude
1
backend
6
docs
1
frontend
2
shared
2
.vtignore
AGENTS.md
CLAUDE.md
README.md
biome.json
deno.json
Environment variables
Branches
1
Pull requests
Remixes
History
Val Town is a collaborative website to build and scale JavaScript apps.
Deploy APIs, crons, & store data – all from the browser, and deployed in milliseconds.
Sign up now
Code
/
README.md
Code
/
README.md
Search
1/26/2026
Viewing readonly version of main branch: v175
View latest version
README.md

X Article Reader

A clean, distraction-free reader for X.com (Twitter) article threads. Built for Val Town.

Features

  • Clean reading experience — Renders X.com articles in a minimal, readable format
  • Syntax highlighting — Code blocks are highlighted using highlight.js
  • OpenGraph support — Proper meta tags for link previews
  • Caching — Articles are cached in SQLite for 24 hours to reduce API calls
  • URL rewriting — Simply replace x.com with x-reader.val.run in any article URL

Usage

Web Interface

  1. Visit the homepage
  2. Paste an X.com article URL (e.g., https://x.com/user/status/123456)
  3. Click "Read" to view the article

Direct URL Access

Replace x.com in any article URL with x-reader.val.run:

https://x.com/username/status/123456
→
https://x-reader.val.run/username/status/123456

Architecture

backend/
├── index.ts           # Hono app entry point
├── api/
│   └── fxtwitter.ts   # FXTwitter API client
├── database/
│   ├── migrations.ts  # SQLite schema
│   └── queries.ts     # Cache operations
├── renderer/
│   └── article.ts     # Draft.js → HTML renderer
├── routes/
│   └── article.ts     # Article route handler
└── templates/
    ├── article.ts     # Article page template
    └── error.ts       # Error page template

frontend/
├── index.html         # Homepage
└── style.css          # Styles

shared/
├── types.ts           # TypeScript types
└── utils.ts           # Shared utilities

How It Works

  1. User provides an X.com article URL
  2. The app fetches article data from the FXTwitter API
  3. Article content (in Draft.js format) is parsed and rendered to HTML
  4. The rendered article is cached in SQLite for 24 hours
  5. The clean HTML page is served to the user

Development

This is a Val Town project. Use the vt CLI for local development:

# Install dependencies npm install # Push to Val Town vt push

Limitations

  • Only supports X.com "article" posts (long-form threads with the article format)
  • Regular tweets/threads are not supported
  • Private accounts and deleted posts cannot be accessed
FeaturesVersion controlCode intelligenceCLIMCP
Use cases
TeamsAI agentsSlackGTM
DocsShowcaseTemplatesNewestTrendingAPI examplesNPM packages
PricingNewsletterBlogAboutCareers
We’re hiring!
Brandhi@val.townStatus
X (Twitter)
Discord community
GitHub discussions
YouTube channel
Bluesky
Open Source Pledge
Terms of usePrivacy policyAbuse contact
© 2026 Val Town, Inc.