DEV Community

Roy J. Wignarajah
Roy J. Wignarajah

Posted on • Updated on

ChatCraft Adventures #4

ChatCraft Week 4

ChatCraft First Release

Today marks the completion of Release 1.1.0 of ChatCraft. In this release, my colleagues and I shipped various new features and UI changes. For now, releases mainly serve as project milestones, but it is available here for those interested.

This week also marks some 'firsts' for me in terms of leadership roles, mainly playing as a project 'Sheriff' and leading triage meetings.

My First Sheriff Experience

Each week, someone in my class takes on the role of Sheriff. The Sheriff's role is to steward a project and to help developers get their code shipped to the project cleanly, without breaking any tests, CI or infrastructure. The Sheriff isn't meant to fix every problem, but should help shine a light on problems and coordinate efforts to make fixes and ensure decisions are made quickly.

This week is the first week Sheriff duties are passed to students, and I ended up volunteering to take on the first week of duties. I still have a few days left of Sheriff duty, but for now I'll write on my duties so far.

My First Triage Meeting

It's important to keep a project in an active, healthy state. This includes:

  • reviewing list of open issues
  • ensuring pull requests are reviewed in a timely manner
  • unblocking people from accomplishing tasks
  • ensure any stuck issues/pull requests are identified and resourced

Holding a Triage meeting is one way to fulfilling the above. For my class, each triage meeting is run by the Sheriff for the week. Since I'm the Sheriff for this week, this was my first time running a triage meeting

My experience

In past classes, I've passively led group project meetings (led meetings when no one else wanted to). However, this was my first time actively leading a meeting like this.

When leading the triage meeting, I tried to focus on unblocking people from getting their work done. If people can't finish their pull requests for whatever reason, pull requests can go stale and a project can eventually become inactive. So for this meeting I checked the status of active Pull Requests and tried to assign resources (assign classmates as PR reviewers or provide expertise on a certain topic) to get Pull Requests merged by the end of this milestone.

Along with running the triage meeting, I also had to keep track of active issues/PRs for this week's release. If an Issue or PR was losing traction, I've been able to ping classmates on Discord or Microsoft Teams for status updates. In one case I reviewed a PR to get conversations started.

However, one close call occurred on my first day of Sheriff duty. My classmate Amnish added a really cool Text-to-Speech feature to ChatCraft, but a bug was discovered after shipping that caused the text-to-speech to play even when disabled, but I was preparing dinner at the time and didn't think to check the feature after it was merged. I'm fortunate and glad that my colleagues were available to identify and quickly resolve the issue, but I think in that moment I didn't live up to my role as Sheriff. In future Sheriff duties, I will check the repo and Discord server more frequently.


Apart from my Sheriff duties, this week I contributed some UI fixes to ChatCraft. I chose UI changes because I felt they are good first issues to contribute to. It's often easy to locate where small changes are required, and if I need help, ChatCraft is available to push me in the right direction.

Pull Requests

Margin correction between button and content

ChatCraft can render previews of HTML code, and there is a button available that lets you open the code in a new window, but the button previously cut into the preview content:

Image description

My Pull Request corrected the margin between the button and the preview content:

Image description

Remove keyboard hints on mobile edit form

You can edit queries in a ChatCraft conversation. The edit form shows a keyboard shortcut for saving your edited query, but this shortcut will clutter mobile screens:

Image description

A React hook was previously implemented that detects whether the user is on a mobile device (in ChatCraft, mobile devices have a width equal to or below 480px). This hook is already used in other components, so in my Pull Request I reused the hook to conditionally render the keyboard shortcut on non-mobile devices only:

Image description

So far I've been using ChatCraft exclusively on desktop. However, I think it would be great to provide an amazing mobile experience to users.

Next week

Next week I hope to contribute another UI fix and to work on slightly larger issues.

Top comments (0)