A small Python service that pulls its weight
Not everything belongs in the frontend. Here's how I use a little Python — and Node.js — for the backend jobs that quietly make a site better.
A fast website is the visible part of a project. Behind it, there’s often work that has no business running in the browser: scraping and cleaning data, generating reports, syncing with another system, or crunching numbers. That’s where I reach for Python (and sometimes Node.js) on the backend.
A concrete example
Say a tour operator wants their site to always show live availability pulled from a spreadsheet the team already maintains. I’d set up a small Python service that:
- Reads the source on a schedule (a cron job or a serverless function).
- Cleans and validates the data — Python is excellent at this.
- Writes the tidy result to the database (e.g. Supabase/Postgres) or a JSON the site can read instantly.
The website stays fast and static; the messy work happens out of sight.
Python vs Node.js — how I choose
- Python when the job is data-shaped: parsing, transforming, scraping, anything numeric or analytical. The ecosystem (requests, pandas, etc.) is unmatched here.
- Node.js when it lives close to the web app — API routes, webhooks, talking to the same services the frontend uses, sharing types with the TypeScript codebase.
The point
Being full-stack isn’t about using every tool on every project — it’s about having the right tool when a project needs it. Most of my sites are happy as fast, content-driven builds. But when one needs a real backend, automation or data work, I can build that too, in the language that fits the problem.