Simon.Fish

Engineering and educating for a free and open web.

Ruby logo Ruby on Ruby on Rails logo Rails developer with four years of industry experience.
Experienced with Turbo logo Hotwire, ViewComponent logo ViewComponent, and more.

ViewComponent

GitHub 31 Mar 2021
I am a maintainer for a promising Rails frontend library from GitHub.

During my time at Raise.dev, I investigated ways to break the frontend down into components. In base Rails at the time, the situation here was fraught - partials and views had access to controller-level instance variables and were difficult to test. ViewComponent, a project released from within GitHub, sought to resolve these issues. I developed a love for ViewComponent after applying it within the Raise.dev codebase.

At Raise.dev, I had started out with a view model pattern. ViewComponent replaced this over time. Small, central items like links, buttons, and headings were all backed by the same component code, and even some views became fully encapsulated components.

ViewComponent was at an early stage when I started to use it. That meant there was a lot of opportunity to set patterns, add features, and resolve upstream issues. Most of all, I found that my experience with the library was best applied in helping others resolve their own issues. This earned me a place on the triage team in June 2021, and is a responsibility that I continue to take seriously.

I reached out to Joel Hawksley, who is a leading figure on the project, to express my interest in being a core part of ViewComponent. After contributing a number of test cases, significant documentation updates, features, and fixes, I later joined the commit team in December 2021. I've continued to contribute regularly and support the project since, and as of July 2022, I'm a maintainer on the project.

Here's my PR history and issue history for ViewComponent/view_component.