Skip to content

Repository files navigation

lyriic

A zen text editor for writing in meter. Large-font canvas, subtle per-line syllable counts, optional meter rulers and stress marks, and quiet per-draft syllable/stress overrides for ambiguous words.

Built for lyriic.com Write-up on my blog: I meant to write a song but built a local-first lyric editor instead.

Stack

  • Vite + React + TypeScript
  • CodeMirror 6 (poem canvas)
  • Tailwind CSS + shadcn/ui
  • pnpm

Develop

pnpm install
pnpm dev

Open the local URL Vite prints (usually http://localhost:5173).

pnpm test
pnpm build
pnpm preview
pnpm lint

pnpm build regenerates SEO/agent files (llms.txt, markdown mirrors, sitemap), builds the app, then prerenders /faq, /privacy, and /tools/* to static HTML via react-dom/server (Vite SSR) — no browser required.

Regenerate Open Graph images (Playwright screenshots of og.htmlpublic/og/):

pnpm build:og

Preview the OG gallery with pnpm dev:og.

Rebuild pronunciation packs (shared lexicon + perfect/end/slant rhyme indexes). Downloads Misaki and WikiPron into scripts/sources/ when missing; requires pip install wordfreq:

pnpm build:pronunciation

Rebuild the thesaurus pack (Open English WordNet + Wiktionary; downloads when missing; requires lexicon from build:pronunciation):

pnpm build:thesaurus

Rebuild definition digraph packs (OEWN glosses + Wiktionary fill; requires lexicon):

pnpm build:definitions

Runtime dictionaries live under src/lib/data/packs/ as compact binary assets (not JSON).

Syllable counting

Defaults follow the fused US pronunciation corpus (Misaki + CMU Pronouncing Dictionary + WikiPron): vowel nuclei in the primary IPA transcription. Hyphenated compounds are split and summed. Out-of-vocabulary words use a spelling heuristic. Prefer an alternate count for ambiguous words (e.g. poetic fire as 1) via hover/tap a word → Syllables; overrides persist with the active draft.

Data attribution

Offline dictionaries are built from:

See scripts/README.md for rebuild details.

About

A zen text editor for writing in meter. Large-font canvas, subtle per-line syllable counts, optional meter rulers and stress marks, and quiet per-draft syllable/stress overrides for ambiguous words.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages