# bashformer: terminal Flappy Bird in Ink — after I deleted the C/SDL pile

Source: https://www.michaelchurley.com/blog/bashformer-ink-flappy-after-c-sdl-cleanup  
Published: 2026-06-22  
Author: Michael C. Hurley  
Tags: bashformer, flappy-bird, ink, react, bun, typescript, terminal-game, bash, platformer, nerd-font, cli, michaelmonetized

![Ink Flappy frame](/blog/bashformer-ink-flappy-after-c-sdl-cleanup/screenshots/ink-flappy-frame.png)

## Who

I wanted Flappy Bird that lives in the TTY, and I kept a pure-bash platformer under the same repo name because the first instinct was bash + former, then an Ink clone later.

For people who install Bun and still respect a 300-line bash game that only needs Nerd Fonts.

## What

I built **bashformer**, public https://github.com/michaelmonetized/bashformer. HEAD `541d2bc`. **21** commits. **0** stars. Default **master**. Version **Unreleased**. CLI/TTY only.

**Product A (README):** `index.tsx` (~263 LOC). Bun + React 19 + Ink 7. CONFIG: FPS 30, GRAVITY 0.32, FLAP_VY -1.7, PIPE_SPEED 3.1, PIPE_GAP 8. Space flaps/restarts; Q quits. Pipe.scored prevents double-count (`d1fa8d0`, #7). Terminal <40x10 exits (`6678fda`).

![CONFIG + scored](/blog/bashformer-ink-flappy-after-c-sdl-cleanup/screenshots/config-scored-fix.png)

**Product B (in-tree):** `bashformer.sh` (~314 LOC). Pure bash Nerd Font side-scroller with coins/spikes/goal and camera follow. A/D move, W/Space jump, Q quit.

![Bash platformer HUD](/blog/bashformer-ink-flappy-after-c-sdl-cleanup/screenshots/bash-platformer-hud.png)

**Feb 21 cleanup:** CONFIG extract (`6b9eead`), PLAN rewrite (`e27c79b`), bun tests (`810e5f4`), remove vex_sdl (#14) and C/SDL (`5a840cf`), CHANGELOG (#11), README match, scored flag, term size.

Residue: PLAN still lists deleted C experiments; sitrep says Unknown tool / PROTOTYPE; CHANGELOG [Unreleased]; package.json private.

![Cleanup arc](/blog/bashformer-ink-flappy-after-c-sdl-cleanup/screenshots/cleanup-arc.png)

## Where

Code: [github.com/michaelmonetized/bashformer](https://github.com/michaelmonetized/bashformer), public. No live web app.

```bash
bun install && bun run index.tsx
# or
./bashformer.sh
```

![Dual stack](/blog/bashformer-ink-flappy-after-c-sdl-cleanup/screenshots/dual-stack.png)

## When

**2025-12-21 to 12-27.** init, kong/baddies/tools, zoom/png, story cleanup.

**2026-01-31.** chore sync.

**2026-02-21.** CONFIG to tests to delete C/SDL to scored flag to term size.

**2026-06-22.** nightly x2 to HEAD `541d2bc`.

![Commit arc](/blog/bashformer-ink-flappy-after-c-sdl-cleanup/screenshots/commit-arc.png)

## Why

Deleting the C/SDL pile was a product decision. Pipe.scored is more honest than "score feels off." Unreleased with empty Phase 1 checkboxes beats inventing a 1.0 tag.

**Engagement Q:** Keep the pure-bash platformer beside Ink Flappy, or split so the README stops lying by omission?
