PythonDeck Blog
Long-form posts on Python, Python GUI development, packaging and modern tooling. New posts every few weeks.
-
Choosing a Python GUI framework in 2026
2026-05-12Python has more GUI options than ever - Tkinter, CustomTkinter, PyQt / PySide, wxPython, Kivy, Flet, DearPyGui, Toga, Streamlit, Gradio. This post walks through how to pick one based on what you are actually building.
-
Visual GUI designers vs hand-coding layouts
2026-05-05Should you draw your interface in a visual designer or type it out by hand? It depends on the size of the project, the team and what you optimise for - but the answer is more nuanced than "real developers code by hand".
-
From Tkinter to CustomTkinter: a migration guide
2026-04-21If you have a working Tkinter app that looks stuck in 1998, CustomTkinter is the lowest-effort path to a modern look. The API is deliberately close to Tk's, but with rounded corners, theming, dark mode and HiDPI awareness.
-
Building your first Kivy mobile app
2026-04-10Kivy is the easiest way to ship a Python app to Android and iOS. This is a walkthrough of building a tiny note-taking app, packaging it for Android with Buildozer, and the gotchas nobody tells you about.
-
Flet vs Streamlit vs Gradio: when to use each
2026-03-28All three let you ship a Python-only web UI with a handful of lines of code, but they aim at different jobs. Picking the wrong one will frustrate you for weeks.
-
Python on the desktop: a 2026 reality check
2026-03-15Every year someone declares the Python desktop dead and someone else declares it reborn. The truth in 2026 is more boring and more useful: Python on the desktop is a perfectly fine choice for a clearly defined set of jobs.
-
Ten patterns every Python developer should know
2026-03-02These aren't "design patterns" in the Gang-of-Four sense - they're Python idioms that come up week after week. Internalising them will make your code shorter and more readable.
-
Async vs threading vs multiprocessing
2026-02-18Three concurrency models, three different problems. The decision rule is short: shape of the workload, not personal preference.
-
Type hints in modern Python
2026-02-04Type hints have gone from "optional curiosity" to "expected on serious codebases" in five years. Here's what a working subset looks like in 2026.
-
From script to package: publishing on PyPI
2026-01-20You have a working script. Turning it into a
pip install-able package takes about an hour the first time and ten minutes every time after that.