preface

preface

 

My first encounter with Streamlit occurred when I was building an internal web app at Stripe, using React and TypeScript to analyze the profitability of deals we were striking with customers—something I had cheerfully assumed would be quick and straight­forward. As it turned out, “straightforward” was relative, and “quick” was outright fiction.

After a few weeks spent wrestling with React components, centering divs, and trying to get my app’s frontend and backend to talk to each other, I was in a meeting with a coworker who casually suggested, “Couldn’t we have built this in Streamlit?” At the time, I thought, “Great, another JavaScript framework—precisely what the world needs.”

But the remark lingered. Eventually, curiosity took hold, and I began to investigate Streamlit more closely. To my surprise, it wasn’t a JavaScript framework at all—it was Python, my favorite language because it seldom makes me question my life choices.

Conveniently, at the time, I’d been mentally drafting an idea for a personal app: a simple calculator to compare rental property investments. I’d been procrastinating on this for months but figured it would be a good way to tell whether the hype around Streamlit was justified. Indeed, I had a basic functional prototype of the calculator up and running in a little over half an hour—and none of it was spent centering anything!