
Lookbook Final Reveal — Part IV
Dec 1, 2025
We’re finally here...the final reveal of the Style Lookbook app. The goal: integrate AI into a digital salon lookbook for clients to view. After spending the previous 3 blog posts detailing the requirements and design, the frontend and backend implementation, and the AI integration, the Lookbook app is ready for your eyes.
Drumroll, please...
Tada: https://hairstyleslookbook.netlify.app/
Go ahead — try it! Type something like, “I’m looking for a short, blonde hair style for a woman/man.”
You should get a customized response from OpenAI and a list of hairstyles that (mostly) match your request. There is some fine-tuning that needs to be done as I have noticed that it occasionally returns styles for individuals with dark hair even when blonde hair is specified, or vice versa.
But for a fairly basic RAG application, it works quite well!
The Learnings
As with all side projects, this was a great way to test out AI integration in a real application. I learned more about how OpenAI converts text to vector embeddings and more about vector databases. I enjoyed seeing the end result: a chatbot that provides a text response tailored to the search query. It certainly isn’t perfect, but with some fine-tuning, it can provide a more customized user experience.
The Future Improvements
Continuous improvement is better than delayed perfection.
~Mark Twain
Nothing is ever perfect the first time. This app is no different. If this were to be implemented on a large-scale basis (not just as a simple side project), I’d add the following:
- Tests – integration and end-to-end tests would certainly be added to help detect errors and ensure there is proper code coverage. With this being a simple app, I chose not to add tests.
- Auth — adding authentication to the app would be incredibly important for both stylists and customers. Stylists require a login to enter style information within the admin and clients need login access to be able to view the lookbook.
- Infinite Scroll or Load More — due to the limited number of styles I included in this app, there was no need to display only a select number of results at one time. However, if this were an actual app with 100s of styles, either some type of lazy load or load more button would be required to improve performance.
- Style Data Improvements – hair color, face shape, hair thickness, gender and hair length are predefined fields in the model along with optional tags. However, there may be some additional fields that clients would use in their search query. User research and ongoing testing would be required to refine the style data.
- Image Embeddings – I chose to add text fields and descriptions to embed in the vector database. Converting text to vector embeddings is much more affordable than converting images to embeddings. However, exploring the cost/benefit of image embeddings would be beneficial for future exploration in a larger app.
- Vector and Model Improvements — I chose OpenAI and Pinecone for this application because I had previously used both of them for a simple RAG tutorial in the past and already had accounts. These both worked well for a side project. But there are many different models and vector databases available. Finding the right model and vector database would require more in-depth research based on the application requirements.
Final Impressions
It’s now easier than ever to implement AI into applications…but with a healthy dose of curiosity and skepticism. AI integration needs to be used responsibly and purposefully. Not every application needs AI. And using it, just for the sake of it, is not only overkill, but may also contribute to environmental and societal burdens due to its large energy consumption and questionable reliability.
Just like humans, AI is not perfect. Its hallucinations can be more persuasive than people, which can be detrimental. So while I enjoyed learning a bit more about how AI can be used, I still believe there needs to be humans running the show. We need fact checkers, we need individuals to review the AI output for accuracy and understanding, and we still need human thought, creativity and reason to develop solutions.
My final words of advice: use AI to enhance your applications. Be intentional; don’t add it just because you can.