u/Inca_PVP

Built a free Rust server + player tracker with a personal watchlist — Steam login, no email, no ads

Built a free Rust server + player tracker with a personal watchlist — Steam login, no email, no ads

Long-time lurker, first-time builder-of-a-thing.

Got fed up with refreshing BM every 10 minutes to check if my squad was on, so I built my own tracker over the last few weekends.

What it does:

- Add a server (paste IP/port, or pick from the live browser)

- Click "Details" in ur watchlist, find the player list

- Click which players you want to watch

- Live status, pop, map, wipe info and ping per server — all on one page

A few things I tried to do differently from BM:

- Steam OpenID login — no email, no password, you only give me your SteamID64 + public name + avatar

- No ads, no premium tier, no analytics, no third-party trackers. The only cookie is the session cookie

- Falls back to BM's public API on servers that block A2S, so you still see the player list on hardened community servers

- Detects Facepunch "streamer mode" name-anonymization and tags the server, so you're not staring at 30 "Player"s wondering what's going on

Stack: Python + Postgres on a Hetzner box I already had. Going open source once I'm sure I'm not leaking anything dumb in the repo.

Link: https://rustmetrics.eu

Built it for myself, figured a few of you might want it too. Tell me what's broken, what's missing, or what's a stupid idea.

u/Inca_PVP — 5 days ago
▲ 5 r/n8n

Built a receipt-processing workflow for Swiss accounting firms — sharing the template (15 nodes, Claude Haiku 4.5, ~$0.001/receipt)

couple weeks into building n8n flows for a specific niche (Swiss "Treuhand" =

accounting firms) and figured the receipt-processing workflow is generic

enough to share. MIT, anonymized, runs on n8n self-hosted or Cloud.

Flow:

Gmail → PDF text extract → Claude Haiku 4.5 classify

→ match client (code-node, fuzzy alias list)

→ Google Drive route to client subfolder

→ Google Sheets journal row

Low-confidence (<0.7) → "_Unzugeordnet" folder for human review

What it does per email:

- pulls PDF attachments

- OCR/text-extract

- Haiku classifies: doctype (invoice/payroll/receipt/expense/tax/insurance),

sender, recipient, amount, date, due-date, reference, summary, confidence

- matches the client via an alias list in the code-node

(clients sometimes write their address instead of the company name —

aliases catch both)

- moves the file into Clients/{ClientName}/{DocType}/

- renames it: YYYYMMDD_Sender_DocType_CHFamount.pdf

- appends a row in the journal sheet

A few things I'd flag if you build something similar:

- Haiku 4.5 returns markdown-fenced JSON about 1 in 20 times. The

parse-step strips ```json fences AND the bare "json" prefix.

- Confidence threshold matters more than model quality. I run 0.7;

anything below ends up in _Unzugeordnet and a human looks at it.

Tried 0.6 and got too many wrong-client routings.

- Mandant-Matching is *not* the AI's job. The model gives you fields;

a deterministic code-node does the routing. AI-routing was worse.

- For Drive moves, separate "upload to inbox" and "move to client folder"

into two nodes. If the move fails (permissions, deleted folder), the file

still exists in the inbox instead of being lost in limbo.

Template + setup instructions:

https://gist.github.com/swiss-shift-ch/41bf3a328819abb454629754ab171dea

Cost at our volume: ~CHF 1-2 per 1000 receipts on Haiku 4.5.

Happy to answer questions about the mandant-matching logic or the

confidence-routing design — that's where most of the iteration went.

u/Inca_PVP — 10 days ago