Custom Favicon MacOS Safari

Hey there, thanks for reaching out and welcome to the Streamlit community! :partying_face: This is a super common pain point, especially for folks deploying B2C apps who want that polished, branded look. You’re not alone—Safari is notoriously stubborn with favicons, and Streamlit’s default behavior can be tricky to override, especially on managed hosts like Render.

Summary:
Setting a custom favicon in Streamlit works reliably in Chrome and Firefox using st.set_page_config(page_icon=...), but Safari often ignores this and defaults to the Streamlit icon, especially when you can’t directly modify the static folder or index.html (as is the case on Render or Streamlit Community Cloud). This is a known limitation and has been discussed extensively in the community and on GitHub. There is currently no officially supported, cross-browser way to guarantee a custom favicon in Safari when deploying Streamlit apps on managed platforms. Workarounds like static file serving or injecting custom HTML/JS have not proven reliable for Safari, and direct file replacement is not possible on most hosts. See Streamlit Docs, GitHub Issue #10911, and community discussions.

If you want to see a minimum reproducible example or want to debug further, please share your code and deployment setup! The community might have new tricks, and sometimes browser caching or icon format quirks can be the culprit. If anyone in the community has a Safari-specific fix that works on Render, please jump in and share your insights! :rocket:

Sources: