July 16, 2025
Node.js, Express, React, LangChain, OpenAI

I came up with the idea for the AI Cat Chat app after attending a talk by Jacob Orshalick at a Dallas Software Developer Group meetup titled The Busy Developer's Guide to Gen AI. This app uses the OpenAI API to generate responses to user input. By leveraging a vector store to supplement prompts, the app allows users to ask questions and receive answers from the perspective of one of eight cats.
The backend is a straightforward Node.js application built with Express.js to create a server and define the route that processes each query. Within the index GET route, the prompt specifies that the response should come from a cat’s perspective, incorporating the following guidelines:
- Answer as a cat speaking to humans
- Include cat-like personality traits in each response
- Ensure each of the eight cat types has a unique voice
- Keep the tone light and fun
- Avoid anything potentially offensive
Each of the eight cat types has its own descriptive text file, which I created with help from ChatGPT. These files include details to make the prompts more specific, such as black cats being less likely to be adopted, orange cats having a reputation for being less intelligent, and Siamese cats being one of the oldest breeds. I used LangChain to generate a vector store from these data files, which enhances the LLM’s responses. The LLM itself is powered by OpenAI.
For the frontend, I chose React, which fetches responses from the backend. And for a creative touch, I drew each of the cats featured in the app—though I have to admit, the drawings became progressively less detailed as time went on.
This project gave me hands-on experience with integrating AI APIs, managing vector-based data for contextual responses, and building a full-stack application that combines technical functionality with a creative, engaging user experience. It reinforced my ability to quickly learn new tools, experiment with emerging technologies, and deliver a working product that’s both fun and technically meaningful.