Skip to content

Commit

Permalink
chore(docs): add walk to Bubble Tea in the Wild
Browse files Browse the repository at this point in the history
  • Loading branch information
meowgorithm committed Aug 22, 2023
1 parent 5506e9a commit 90ec4ed
Showing 1 changed file with 74 additions and 73 deletions.
147 changes: 74 additions & 73 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ Be sure to check out [Bubbles][bubbles], a library of common UI components for B
<a href="https://github.com/charmbracelet/bubbles"><img src="https://stuff.charm.sh/bubbles-examples/textinput.gif" width="400" alt="Text Input Example from Bubbles"></a>
</p>

***
---

## Tutorial

Expand All @@ -48,7 +48,7 @@ By the way, the non-annotated source code for this program is available
[on GitHub][tut-source].

[elm]: https://guide.elm-lang.org/architecture/
[tut-source]:https://github.com/charmbracelet/bubbletea/tree/master/tutorials/basics
[tut-source]: https://github.com/charmbracelet/bubbletea/tree/master/tutorials/basics

### Enough! Let's get to it.

Expand All @@ -71,9 +71,9 @@ import (
Bubble Tea programs are comprised of a **model** that describes the application
state and three simple methods on that model:

* **Init**, a function that returns an initial command for the application to run.
* **Update**, a function that handles incoming events and updates the model accordingly.
* **View**, a function that renders the UI based on the data in the model.
- **Init**, a function that returns an initial command for the application to run.
- **Update**, a function that handles incoming events and updates the model accordingly.
- **View**, a function that renders the UI based on the data in the model.

### The Model

Expand Down Expand Up @@ -298,12 +298,12 @@ your program in another window.

## Libraries we use with Bubble Tea

* [Bubbles][bubbles]: Common Bubble Tea components such as text inputs, viewports, spinners and so on
* [Lip Gloss][lipgloss]: Style, format and layout tools for terminal applications
* [Harmonica][harmonica]: A spring animation library for smooth, natural motion
* [BubbleZone][bubblezone]: Easy mouse event tracking for Bubble Tea components
* [Termenv][termenv]: Advanced ANSI styling for terminal applications
* [Reflow][reflow]: Advanced ANSI-aware methods for working with text
- [Bubbles][bubbles]: Common Bubble Tea components such as text inputs, viewports, spinners and so on
- [Lip Gloss][lipgloss]: Style, format and layout tools for terminal applications
- [Harmonica][harmonica]: A spring animation library for smooth, natural motion
- [BubbleZone][bubblezone]: Easy mouse event tracking for Bubble Tea components
- [Termenv][termenv]: Advanced ANSI styling for terminal applications
- [Reflow][reflow]: Advanced ANSI-aware methods for working with text

[bubbles]: https://github.com/charmbracelet/bubbles
[lipgloss]: https://github.com/charmbracelet/lipgloss
Expand All @@ -316,72 +316,73 @@ your program in another window.

For some Bubble Tea programs in production, see:

* [AT CLI](https://github.com/daskycodes/at_cli): execute AT Commands via serial port connections
* [Aztify](https://github.com/Azure/aztfy): bring Microsoft Azure resources under Terraform
* [brows](https://github.com/rubysolo/brows): a GitHub release browser
* [Canard](https://github.com/mrusme/canard): an RSS client
* [charm](https://github.com/charmbracelet/charm): the official Charm user account manager
* [chezmoi](https://github.com/twpayne/chezmoi): securely manage your dotfiles across multiple machines
* [chtop](https://github.com/chhetripradeep/chtop): monitor your ClickHouse node without leaving terminal
* [circumflex](https://github.com/bensadeh/circumflex): read Hacker News in the terminal
* [clidle](https://github.com/ajeetdsouza/clidle): a Wordle clone
* [cLive](https://github.com/koki-develop/clive): automate terminal operations and view them live in a browser
* [container-canary](https://github.com/NVIDIA/container-canary): a container validator
* [countdown](https://github.com/aldernero/countdown): a multi-event countdown timer
* [dns53](https://github.com/purpleclay/dns53): dynamic DNS with Amazon Route53. Expose your EC2 quickly, securely and privately
* [eks-node-viewer](https://github.com/awslabs/eks-node-viewer): a tool for visualizing dynamic node usage within an eks cluster
* [enola](https://github.com/sherlock-project/enola): hunt down social media accounts by username across social networks
* [flapioca](https://github.com/kbrgl/flapioca): Flappy Bird on the CLI!
* [fm](https://github.com/knipferrc/fm): a terminal-based file manager
* [fork-cleaner](https://github.com/caarlos0/fork-cleaner): clean up old and inactive forks in your GitHub account
* [fztea](https://github.com/jon4hz/fztea): a Flipper Zero TUI
* [gambit](https://github.com/maaslalani/gambit): chess in the terminal
* [gembro](https://git.sr.ht/~rafael/gembro): a mouse-driven Gemini browser
* [gh-b](https://github.com/joaom00/gh-b): a GitHub CLI extension for managing branches
* [gh-dash](https://www.github.com/dlvhdr/gh-dash): a GitHub CLI extension for PRs and issues
* [gitflow-toolkit](https://github.com/mritd/gitflow-toolkit): a GitFlow submission tool
* [Glow](https://github.com/charmbracelet/glow): a markdown reader, browser, and online markdown stash
* [gocovsh](https://github.com/orlangure/gocovsh): explore Go coverage reports from the CLI
* [got](https://github.com/fedeztk/got): a simple translator and text-to-speech app build on top of simplytranslate's APIs
* [httpit](https://github.com/gonetx/httpit): a rapid http(s) benchmark tool
* [IDNT](https://github.com/r-darwish/idnt): a batch software uninstaller
* [kboard](https://github.com/CamiloGarciaLaRotta/kboard): a typing game
* [mandelbrot-cli](https://github.com/MicheleFiladelfia/mandelbrot-cli): a multiplatform terminal mandelbrot set explorer
* [mc](https://github.com/minio/mc): the official [MinIO](https://min.io) client
* [mergestat](https://github.com/mergestat/mergestat): run SQL queries on git repositories
* [Neon Modem Overdrive](https://github.com/mrusme/neonmodem): a BBS-style TUI client for Discourse, Lemmy, Lobste.rs and Hacker News
* [Noted](https://github.com/torbratsberg/noted): a note viewer and manager
* [pathos](https://github.com/chip/pathos): a PATH env variable editor
* [portal](https://github.com/ZinoKader/portal): secure transfers between computers
* [redis-viewer](https://github.com/SaltFishPr/redis-viewer): a Redis databases browser
* [sku](https://github.com/fedeztk/sku): Sudoku on the CLI
* [Slides](https://github.com/maaslalani/slides): a markdown-based presentation tool
* [SlurmCommander](https://github.com/CLIP-HPC/SlurmCommander): a Slurm workload manager TUI
* [Soft Serve](https://github.com/charmbracelet/soft-serve): a command-line-first Git server that runs a TUI over SSH
* [solitaire-tui](https://github.com/brianstrauch/solitaire-tui): Klondike Solitaire for the terminal
* [StormForge Optimize Controller](https://github.com/thestormforge/optimize-controller): a tool for experimenting with application configurations in Kubernetes
* [Storydb](https://github.com/grrlopes/storydb): a bash/zsh ctrl+r improved command history finder.
* [STTG](https://github.com/wille1101/sttg): a teletext client for SVT, Sweden’s national public television station
* [sttr](https://github.com/abhimanyu003/sttr): a general-purpose text transformer
* [tasktimer](https://github.com/caarlos0/tasktimer): a dead-simple task timer
* [termdbms](https://github.com/mathaou/termdbms): a keyboard and mouse driven database browser
* [ticker](https://github.com/achannarasappa/ticker): a terminal stock viewer and stock position tracker
* [tran](https://github.com/abdfnx/tran): securely transfer stuff between computers (based on [portal](https://github.com/ZinoKader/portal))
* [Typer](https://github.com/maaslalani/typer): a typing test
* [typioca](https://github.com/bloznelis/typioca): Cozy typing speed tester in terminal
* [tz](https://github.com/oz/tz): an aid for scheduling across multiple time zones
* [ugm](https://github.com/ariasmn/ugm): a unix user and group browser
* [wander](https://github.com/robinovitch61/wander): a HashiCorp Nomad terminal client
* [WG Commander](https://github.com/AndrianBdn/wg-cmd): a TUI for a simple WireGuard VPN setup
* [wishlist](https://github.com/charmbracelet/wishlist): an SSH directory
- [AT CLI](https://github.com/daskycodes/at_cli): execute AT Commands via serial port connections
- [Aztify](https://github.com/Azure/aztfy): bring Microsoft Azure resources under Terraform
- [brows](https://github.com/rubysolo/brows): a GitHub release browser
- [Canard](https://github.com/mrusme/canard): an RSS client
- [charm](https://github.com/charmbracelet/charm): the official Charm user account manager
- [chezmoi](https://github.com/twpayne/chezmoi): securely manage your dotfiles across multiple machines
- [chtop](https://github.com/chhetripradeep/chtop): monitor your ClickHouse node without leaving terminal
- [circumflex](https://github.com/bensadeh/circumflex): read Hacker News in the terminal
- [clidle](https://github.com/ajeetdsouza/clidle): a Wordle clone
- [cLive](https://github.com/koki-develop/clive): automate terminal operations and view them live in a browser
- [container-canary](https://github.com/NVIDIA/container-canary): a container validator
- [countdown](https://github.com/aldernero/countdown): a multi-event countdown timer
- [dns53](https://github.com/purpleclay/dns53): dynamic DNS with Amazon Route53. Expose your EC2 quickly, securely and privately
- [eks-node-viewer](https://github.com/awslabs/eks-node-viewer): a tool for visualizing dynamic node usage within an eks cluster
- [enola](https://github.com/sherlock-project/enola): hunt down social media accounts by username across social networks
- [flapioca](https://github.com/kbrgl/flapioca): Flappy Bird on the CLI!
- [fm](https://github.com/knipferrc/fm): a terminal-based file manager
- [fork-cleaner](https://github.com/caarlos0/fork-cleaner): clean up old and inactive forks in your GitHub account
- [fztea](https://github.com/jon4hz/fztea): a Flipper Zero TUI
- [gambit](https://github.com/maaslalani/gambit): chess in the terminal
- [gembro](https://git.sr.ht/~rafael/gembro): a mouse-driven Gemini browser
- [gh-b](https://github.com/joaom00/gh-b): a GitHub CLI extension for managing branches
- [gh-dash](https://www.github.com/dlvhdr/gh-dash): a GitHub CLI extension for PRs and issues
- [gitflow-toolkit](https://github.com/mritd/gitflow-toolkit): a GitFlow submission tool
- [Glow](https://github.com/charmbracelet/glow): a markdown reader, browser, and online markdown stash
- [gocovsh](https://github.com/orlangure/gocovsh): explore Go coverage reports from the CLI
- [got](https://github.com/fedeztk/got): a simple translator and text-to-speech app build on top of simplytranslate's APIs
- [httpit](https://github.com/gonetx/httpit): a rapid http(s) benchmark tool
- [IDNT](https://github.com/r-darwish/idnt): a batch software uninstaller
- [kboard](https://github.com/CamiloGarciaLaRotta/kboard): a typing game
- [mandelbrot-cli](https://github.com/MicheleFiladelfia/mandelbrot-cli): a multiplatform terminal mandelbrot set explorer
- [mc](https://github.com/minio/mc): the official [MinIO](https://min.io) client
- [mergestat](https://github.com/mergestat/mergestat): run SQL queries on git repositories
- [Neon Modem Overdrive](https://github.com/mrusme/neonmodem): a BBS-style TUI client for Discourse, Lemmy, Lobste.rs and Hacker News
- [Noted](https://github.com/torbratsberg/noted): a note viewer and manager
- [pathos](https://github.com/chip/pathos): a PATH env variable editor
- [portal](https://github.com/ZinoKader/portal): secure transfers between computers
- [redis-viewer](https://github.com/SaltFishPr/redis-viewer): a Redis databases browser
- [sku](https://github.com/fedeztk/sku): Sudoku on the CLI
- [Slides](https://github.com/maaslalani/slides): a markdown-based presentation tool
- [SlurmCommander](https://github.com/CLIP-HPC/SlurmCommander): a Slurm workload manager TUI
- [Soft Serve](https://github.com/charmbracelet/soft-serve): a command-line-first Git server that runs a TUI over SSH
- [solitaire-tui](https://github.com/brianstrauch/solitaire-tui): Klondike Solitaire for the terminal
- [StormForge Optimize Controller](https://github.com/thestormforge/optimize-controller): a tool for experimenting with application configurations in Kubernetes
- [Storydb](https://github.com/grrlopes/storydb): a bash/zsh ctrl+r improved command history finder.
- [STTG](https://github.com/wille1101/sttg): a teletext client for SVT, Sweden’s national public television station
- [sttr](https://github.com/abhimanyu003/sttr): a general-purpose text transformer
- [tasktimer](https://github.com/caarlos0/tasktimer): a dead-simple task timer
- [termdbms](https://github.com/mathaou/termdbms): a keyboard and mouse driven database browser
- [ticker](https://github.com/achannarasappa/ticker): a terminal stock viewer and stock position tracker
- [tran](https://github.com/abdfnx/tran): securely transfer stuff between computers (based on [portal](https://github.com/ZinoKader/portal))
- [Typer](https://github.com/maaslalani/typer): a typing test
- [typioca](https://github.com/bloznelis/typioca): Cozy typing speed tester in terminal
- [tz](https://github.com/oz/tz): an aid for scheduling across multiple time zones
- [ugm](https://github.com/ariasmn/ugm): a unix user and group browser
- [walk](https://github.com/antonmedv/walk): a terminal navigator
- [wander](https://github.com/robinovitch61/wander): a HashiCorp Nomad terminal client
- [WG Commander](https://github.com/AndrianBdn/wg-cmd): a TUI for a simple WireGuard VPN setup
- [wishlist](https://github.com/charmbracelet/wishlist): an SSH directory

## Feedback

We'd love to hear your thoughts on this project. Feel free to drop us a note!

* [Twitter](https://twitter.com/charmcli)
* [The Fediverse](https://mastodon.social/@charmcli)
* [Discord](https://charm.sh/chat)
- [Twitter](https://twitter.com/charmcli)
- [The Fediverse](https://mastodon.social/@charmcli)
- [Discord](https://charm.sh/chat)

## Acknowledgments

Expand All @@ -398,7 +399,7 @@ of days past.

[MIT](https://github.com/charmbracelet/bubbletea/raw/master/LICENSE)

***
---

Part of [Charm](https://charm.sh).

Expand Down

0 comments on commit 90ec4ed

Please sign in to comment.