<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Streamlit on Codes</title><link>https://codes.metacog.co.kr/tags/streamlit/</link><description>Recent content in Streamlit on Codes</description><generator>Hugo -- gohugo.io</generator><language>en</language><copyright>© {year} jeonck. Distributed under [MIT](https://opensource.org/licenses/MIT).</copyright><lastBuildDate>Mon, 21 Sep 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://codes.metacog.co.kr/tags/streamlit/index.xml" rel="self" type="application/rss+xml"/><item><title>Google sign-in on a Streamlit app: st.login() is only half the gate</title><link>https://codes.metacog.co.kr/posts/streamlit-google-signin-is-not-an-allowlist/</link><pubDate>Mon, 21 Sep 2026 00:00:00 +0000</pubDate><guid>https://codes.metacog.co.kr/posts/streamlit-google-signin-is-not-an-allowlist/</guid><description>A successful Google sign-in proves someone owns a Google account — not that they may use your app. Without an allowlist the page is open to everyone, and a new OAuth client answers every sign-in with 403 until the consent screen is dealt with.</description></item><item><title>The sign-in gate is the one screen every visitor sees — mine said only "sign in"</title><link>https://codes.metacog.co.kr/posts/sign-in-gate-is-a-page-too/</link><pubDate>Mon, 21 Sep 2026 00:00:00 +0000</pubDate><guid>https://codes.metacog.co.kr/posts/sign-in-gate-is-a-page-too/</guid><description>A gated app shows its login screen to everyone and its actual product to almost nobody. Putting a live sample on that screen took a few lines — and immediately exposed a CDN that had been failing silently for anyone whose network was not mine.</description></item><item><title>Korean rendered as empty boxes in a reportlab PDF — the runtime font download was never going to work</title><link>https://codes.metacog.co.kr/posts/reportlab-korean-font-empty-boxes/</link><pubDate>Sun, 20 Sep 2026 00:00:00 +0000</pubDate><guid>https://codes.metacog.co.kr/posts/reportlab-korean-font-empty-boxes/</guid><description>A Streamlit invoice generator downloaded NanumGothic on first use and silently fell back to Helvetica when that failed. Helvetica has no Hangul — and no won sign either, which broke English invoices too.</description></item></channel></rss>