Loading repository data…
Loading repository data…
canaryGrapher / repository
Turn any story into a vintage newspaper graphic, then sequence those pages into a scroll-stopping match-cut video for Reels, Shorts, and TikTok. Fully in-browser, no server, no watermark. Built with Next.js, React, and ffmpeg.wasm.
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Turn any story into a vintage newspaper graphic, then sequence those pages into a scroll-stopping match-cut video for Reels, Shorts, and TikTok. All in the browser.
Newspaper-style edits are everywhere on social media, but making them usually means a video editor, fiddly keyframes, and an afternoon you won't get back. NewsX does it in minutes: write the story, pick a paper theme, drop a <highlight> on the words that matter, and export a finished video. No timeline, no plugins, no account. Everything runs client-side, so your content never leaves your machine.
📝 Compose a newspaper page with a live preview. Headlines, subheads, pull quotes, drop caps, multi-column layouts, captioned photos, and five paper themes (Classic, Modern White, Sepia, Night Ink, Black & White). Export a crisp PNG with one click.
🎬 Match Cut Studio sequences multiple pages into a video. Each page's <highlight> text is anchored to the exact same spot on screen, so the cut lands on the word and the eye stays locked while the story changes behind it. That anchoring is the whole trick behind the effect, and NewsX automates it.
🗂️ Library saves your articles locally and keeps them across reloads and restarts, so a session is never lost.
📤 Export to WebM instantly, or to MP4 transcoded in the browser via ffmpeg.wasm. No server, no upload, no watermark.
The match cut is built around one idea: keep the highlighted phrase fixed while everything else changes.
<highlight> to the same on-screen position and size, so successive pages snap together on the word.| Layer | Choice |
|---|---|
| Framework | Next.js 16 (App Router) + React 19 |
| Language | TypeScript |
| Rendering | html2canvas for page capture, Canvas 2D for compositing |
| Video | MediaRecorder (WebM) with on-demand ffmpeg.wasm MP4 transcode |
| Bulk input | papaparse for CSV import |
| Icons | lucide-react |
| Storage | localStorage (your data stays on-device) |
git clone https://github.com/canaryGrapher/newsx.git
cd newsx
npm install
npm run dev
Open http://localhost:3000 and you're composing.
npm run build # production build
npm run start # serve the build
npm run lint # lint
NewsX runs with zero configuration. Analytics are optional: copy .env.example to .env.local and fill in the keys you want.
NEXT_PUBLIC_GA_ID= # Google Analytics 4 measurement ID (optional)
NEXT_PUBLIC_CLARITY_ID= # Microsoft Clarity project ID (optional)
Leave them blank and no analytics load.
NewsX is almost entirely a client app. A page is rendered as real DOM, captured to a canvas with html2canvas, and the position and size of its <highlight> element are measured in canvas pixels. For the video, each captured page is drawn onto an output canvas, transformed so its highlight lands on the shared anchor, and the canvas stream is recorded with MediaRecorder. MP4 export loads a single-thread ffmpeg.wasm core from a CDN only the first time you ask for it, so the rest of the app stays light and no special server headers are needed. It deploys as a static-friendly Next.js app and works on any plain host.
Have a spreadsheet of stories? Upload a CSV with a highlight column and NewsX turns every eligible row into a page, ready to drop straight into the Match Cut Studio.
Ideas and pull requests welcome.
Contributions of any size are appreciated. Open an issue to discuss a change, or send a pull request directly for small fixes. If NewsX saved you some editing time, a ⭐ helps more people find it.
Released under the MIT License. Build on it, ship with it, make something great.
If NewsX is useful to you, star the repo and follow along, more is coming.