Skip to content

feat: provide matrix.go blog#2

Open
x0prc wants to merge 1 commit intomainfrom
jack
Open

feat: provide matrix.go blog#2
x0prc wants to merge 1 commit intomainfrom
jack

Conversation

@x0prc
Copy link
Copy Markdown
Collaborator

@x0prc x0prc commented Feb 13, 2026

Add matrix.go blog post

@github-actions
Copy link
Copy Markdown

github-actions bot commented Feb 13, 2026

PR Preview Action v1.6.2

🚀 View preview at
https://isopath.github.io/pr-preview/pr-2/

Built to branch gh-pages at 2026-03-04 05:58 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

@x0prc x0prc self-assigned this Feb 13, 2026
@x0prc x0prc added the documentation 📚 Improvements or additions to documentation label Feb 13, 2026
Copy link
Copy Markdown
Contributor

@SauravMaheshkar SauravMaheshkar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The PR preview seems broken. Let me look into this for now. I'll make a commit to this branch to fix this. And then once the preview is working I'll leave a review.

Copy link
Copy Markdown
Contributor

@SauravMaheshkar SauravMaheshkar left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The bones for the article are there but needs work on the overall grammar (uniform grammar and wording) and technical depth (a lot more). Let's add more details on how bubble tea works and what the various snippets contain (we create a type for <>, a function to do <>, we use the builtin <> module).

It'd be pretty cool if we could isolate the components from this project, show a well documented MVP and then showcase how we go from template to implementation. As in this is a simple 25 line MRE implementation of how a menu works in bubble tea (uses types from ..., standard modules ... go constructs ...) and then we can modify this MRE to implementing the matrix effect.

Also let's call it the matrix effect and not the rain effect. It comes from the matrix and sounds for some reason grammatically better.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is this necessary?


![Matrix Rain Demo](../../matrix.gif)

We got bored one weekend and decided to build a Matrix rain effect in the terminal. You know, those cascading green characters from the movie? But we wanted ours to display actual text files, not just random symbols. Here's how we built it.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Grammar feels a little off, too much "we". Also totally forgetting to explicitly mention that opencode generated most of the code, we just orchestrated and observed.

Comment on lines +14 to +15
Building a terminal app is easy until you need to include data files. We had a bunch of text files we wanted to display, but asking users to download separate assets felt wrong. What if they put them in the wrong folder? What if they forgot entirely?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think we should add a simple bash code block showing how the file structure is something like

assets/
    rain-man.txt

Something like this but colorised maybe. We can get creative here.


## Building a Menu That Doesn't Suck

We wanted users to pick which text file to rain-ify. Bubble Tea (Charm's TUI framework) makes this possible, but it's not exactly plug-and-play. The API requires you to jump through some hoops.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"rain-ify" let's reword this to be something like choose the content of the effect. matrix like effect sounds a lot more coherent than "rain".

}
```

Then there's the delegate - the thing that actually renders each item. This is where you customize the look:
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Switching a lot between talking to the reader and monologue. As in the phrasing "we did ...", "we wanted to ..." is in line with a monologue. But saying things like "This is where you ..." adds the reader to the mix. Stick to a consistent tone. I prefer talking with the reader. Lots of back and forth, rather hear me speak.


## The Heartbeat of Animation

Bubble Tea uses the Elm Architecture: your app has a Model (state), an Update function (handles messages), and a View function (renders output). Everything flows through messages.
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We need a proper introduction and overview of the Elm architecture with mermaid diagrams and everything.

We need to write this in a way that would have helped us when were building matrix.go i.e.

  • someone who knows programming but doesn't know go
  • someone who has no understanding about Bubble Tea
  • someone who has no understanding about the Elm architecture

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation 📚 Improvements or additions to documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants