Work / Tools / Facebook to Blog
No. 42 · Tools · PublishingThe poetry survives the platform.
A poet writes for ten years on a Facebook group nobody indexes. Then one morning the platform changes the rules, or quietly takes the page down. This tool moves the poems out · to a beautiful, theme-aware blog with search, comments and a newsletter. Mood is auto-detected. Hindi, Hinglish and English supported from line one. Free to host.
She kept the Ganga in a brass cup,An evening verse, written here
and a small fire, and a very old name. वो पीतल के लोटे में गंगा रखती थी ·
एक नन्ही आग, एक बहुत पुराना नाम।
Act I · The Problem
A poet writes ten years.
The feed eats them all.
Mrs. Vaidya wrote for a small Facebook group. Her poems were read by a few hundred people who loved them, and forgotten by an algorithm that loved engagement. Search engines never saw the words. The newsletter never went out. One day the group will lock, or rename, or close. The verse will follow it down. Not because anyone wanted it gone. Because no platform was ever built to keep it.
Act II · The Promise
Every poem gets its own world.
Mood is detected from the words themselves · Hindi and English keywords both. The whole page changes: palette, type, particles, even the cursor's quiet companions. Same blog, seven evenings.
Act III · The Product
Three ways in.
One quiet archive out.
The poet should never have to think about JSON, or moods, or YAML. They write. The blog publishes.
-
A · CLI
Interactive add-poem.
Run
pnpm add-poem. It asks for title, poem text, language. Mood is auto-detected. The MDX file is written. Done. -
B · MDX file
Drop it in content/poems/.
One file per poem. Frontmatter is optional, mood is auto-detected from Hindi and English keywords. Override anytime.
pnpm build, deploy. -
C · Facebook import
Bulk-import the archive.
Request your Facebook data as JSON, point the import script at it, every post becomes a poem. Moods detected, dates preserved, original Facebook links kept.
A 3D leather book opens on the homepage. Search is fuzzy and instant. Bottom-tab navigation on mobile. Dark and light each get their own palette per mood. Skip links, focus rings, 7:1 contrast everywhere · because the poet's audience reads on whatever phone they have.
The Stack
Static at build. Free at runtime. Beautiful at any speed.
- Next.js 16 · App Router
- React 19
- TypeScript 5.9 (strict)
- Tailwind CSS 4
- Framer Motion 12
- MDX · gray-matter
- Fuse.js (client search)
- Vitest 4
- Tiro Devanagari · Crimson Pro
- Vercel free tier
Act IV · Proof
Built for a real poet. Designed for every poet.
Mood detection in Hindi + English
The detector reads Devanagari keywords (प्रेम, क्रोध, मेघ, राम) alongside English ones, so Hinglish and Hindi poems never default to the wrong palette.
WCAG 2.2 AAA, 7:1 contrast
Every mood, light and dark, holds 7:1 minimum text contrast. Skip link, focus rings, reduced-motion respect, screen-reader-friendly book hero.
Static export, free hosting
The whole site exports to out/ at build. No server, no database, no API costs. Vercel free tier is enough for a poet's lifetime.
18 tests, all passing
Mood detection, content parsing, theme switching and language routing are all covered. The poet doesn't see the tests. The poet sees the poems.
Your community lives on someone else's feed. Move it home.
I build static, beautiful, multilingual publishing for people the platforms forget. Editorial typography, mood-aware design, accessibility from line one, and a build cost that rounds to zero.