Book recommendation web site in Docker container

Finished putting up a new website based on Streamlit.

My main focus here was to work on deploying Streamlit in a container… so I could use AWS ECS and benefit from autoscaling, rolling upgrades, health checks. The chat tools are the default that come with Streamlit. Also uses the new query string support.

https://book-finders.com/?a=I'm looking for a acience fiction book

Since I was was making containers, I customized the Streamlit html file to add:

  • Google tag for trackers
  • Custom web font
  • Customizations to the base file for Open Graph meta data (to get a preview as shown above)

Still trying to get a nice menubar on top, ideally without another custom component. I tried columns (but they stack on mobile), HTML injection but that was getting hard to tie into what I wanted to do, maybe st.buttons with some CSS to move to the top…

I also want to use popups so I can drop the expander menu and show additional information from an icon… maybe I could rework that expander with CSS to show it as a float. The toast messages are cute but seem to small to display more than a few lines. Looking to get it multi-lingual and session storage too.

Hi @shawngiese

This is a great example app combining an LLM powered app that also integrates affiliate marketing. Great job building this one!

@shawngiese

Thank you for sharing! This is a great app. I was given a recommendation and amazon link after three prompts. User experience was very smooth as well!

Also, kudos on deployment strategy with containers and AWS ECS. Great achievement!

Thanks for the comments. Recent updates include a custom button menu bar, multiple languages, the great popover, and the new st.html tags in place of st.markdown. Hoping to add comment to dynamoDB button soon.

I really like your little ant, it’s so cute. :laughing:

Thanks. I was looking for something subtle to make the form more interesting : )

This is awesome, the top menu with popovers is a nice idea. Wonder how easy it would be to make that into some menus or page_links too. Thanks for sharing!