ChatCraft week 12: PR merged and follow ups!
Tags: opensource, chatcraft, typescript, chatgpt
Published: 2024-04-06 00:35:59

---
series: Collaborating on ChatCraft
---

# Landed PR

This week I finally landed the custom providers feature I have been working on! See my last [blog](https://dev.to/katiel/chatcraft-week-11-add-support-for-custom-providers-4d4p) for more details about it. Now if you have an Open AI compatible API url and key, you can use [ChatCraft](https://chatcraft.org/) as your user interface to communicating with the API!

{% github https://github.com/tarasglek/chatcraft.org/pull/530 %}

Before this got merged I did a lot of small refactoring and bug fixes, such as consolidating components, making sure the new provider row disappears after we close the modal, etc.

And as with any major feature, we can't forget about the follow up issues and hotfixes.

# Bug fixes

Some bug fixes I completed this week:

{% github https://github.com/tarasglek/chatcraft.org/pull/556 %}

{% github https://github.com/tarasglek/chatcraft.org/pull/562 %}

# Follow up issues

There are many follow up issues, but here are the two major ones I am currently focusing on.

{% github https://github.com/tarasglek/chatcraft.org/issues/561 %}

This issue aims at revamping the UI of the User Settings modal, to make sure it encompasses all our settings in a user-friendly way.

With taras' guidance, I have created some [mock up UI designs](https://github.com/tarasglek/chatcraft.org/issues/561#issuecomment-2040328542), and I am waiting to get feedback on them. I also spoke with mingming about how to create this two-column modal, as this task may need to be divided up among more people.

{% github https://github.com/tarasglek/chatcraft.org/issues/524 %}

The second issue I have my focus on is this issue which would allow the user to store a "current model" for each provider. Currently whenever the user switches between providers (let's say they switch from OpenAI to OpenRouter), the model will stay the same but when the switched provider doesn't have the model it will just change to some default model. This is not very convenient for the user because most likely this default model is not what they want to use.

I plan to change the way we store the current modal information. We currently store one "current modal" in the localStorage as settings.model. I plan to add a new member variable to the ChatCraftProvider class so that we store the model in the settings.currentProvider object. This way when the user switches between providers, they can have back the model they were last using with that provider! For those users who have more than one providers, I would assume that they have a preferred go-to model for each of their providers.

# Code Reviews

I did many code reviews this week. Here are the PRs I reviewed which were later merged!

{% github https://github.com/tarasglek/chatcraft.org/pull/554 %}

{% github https://github.com/tarasglek/chatcraft.org/pull/557 %}

{% github https://github.com/tarasglek/chatcraft.org/pull/559 %}

{% github https://github.com/tarasglek/chatcraft.org/pull/549 %}

It amazes me how many fixes and PRs we get merged every week! See the list of all the PRs merged from this week's [release v1.8.0](https://github.com/tarasglek/chatcraft.org/releases/tag/v1.8.0).