u/Keveran

▲ 5 r/dkudvikler+3 crossposts

Hey everyone,

A few friends and I are huge CS2 players and data nerds. If you’ve ever traded on the Steam Community Market, you know it’s prone to coordinated pumps and dumps. We wanted to see if we could build a tool to catch these market anomalies (accumulation phases) before the massive price spikes actually happen.

We built CSPump to scan the Steam Market and CSFloat for unnatural volume and listing behavior. I wanted to share a bit about our stack, the architectural choices we made to handle the background processing, and see if any other devs here play CS.

The Tech Stack

  • UI / Styling: Next.js, TailwindCSS, shadcn/ui
  • Authentication: better-auth (with a custom Steam plugin)
  • Database & Queues: PostgreSQL with pg-boss
  • Emails: AWS SES
  • Payments: Stripe
  • Observability: Pino.js + Loki transport + Grafana

The Technical Challenges

1. Steam Authentication with better-auth Steam still relies on an ancient OpenID 2.0 implementation, which makes modern authentication a bit of a headache. We decided to use better-auth, but since there wasn't an out-of-the-box solution for Steam, we had to write a custom Steam plugin for it. Getting the redirects, session state, and initial inventory sync to fire correctly without leaving the user hanging on a loading screen was an interesting challenge.

2. Background Workers & Queueing (Without Redis) Our app doesn't rely on users staring at heavy real-time dashboards. Instead, users configure watchlists, and our backend crunches the data. When an anomaly triggers, it dispatches an email alert. Instead of spinning up Redis for job queues, we opted for pg-boss, which uses PostgreSQL for background jobs. It allowed us to keep our infrastructure simple while effectively managing the massive amount of scheduled market scans and queuing up AWS SES email dispatches.

3. Observability & Logging Because the core value of the app relies on background workers executing flawlessly, we needed solid visibility into our queues. We set up Pino.js with a Loki transport, feeding logs directly into Grafana dashboards. This lets us monitor worker health, track Steam API rate limits, and see when our anomaly engine triggers in real-time without constantly querying the database directly.

Did it actually work?

Surprisingly, yes. The algorithms have caught some pretty crazy spikes early, and the SES email dispatches have been landing right on time. For example, our system caught:

  • FAMAS | Survivor Z (FN): Flagged the accumulation phase right before it pumped 82%.
  • Sticker | BIG (Holo) | 2020 RMR: Caught it before a 47% spike in two days.
  • USP-S | Pathfinder (FN): Flagged before a 46% increase.

What’s next?

Right now, we are looking into how to handle marketing emails. We use React Email for templates, but we don't know the best approach for going about promotions, new features etc. Is it best to create a new template for this and then send it out manually or should we set up a dedicated marketing system? Also curious if anyone else here has used pg-boss instead of Redis for job queues and how it scaled for you!

If you play CS and want to check out how we implemented the UI, the project is live at CSPump.

u/Keveran — 4 days ago

Hey everyone,

If you’ve spent enough time watching the CS market, you know that random price spikes aren’t always natural. Market manipulation, coordinated pumps, and sudden dumps happen constantly.

A few friends and I are data nerds, and we wanted to see if we could catch these market movements before the massive spikes happen by tracking sudden changes in volume and listing behavior. We built a tool called CSPump that scans the Steam Community Market and CSFloat for anomalies to detect accumulation phases and active pumps.

I wanted to share some recent data we gathered to show what these signals actually look like in practice. (See attached images for the graphs).

Case Study 1: USP-S | Pathfinder (Factory New)

  • The Signal: On April 29th (around 5 PM), our system flagged abnormal volume and accumulation behavior. The median price was sitting at roughly 162.85€.
  • The Peak: By May 5th, the price aggressively spiked to 237.57€.
  • The Result: A 46% price increase from the point of the initial accumulation alert to the peak.

Case Study 2: Sticker | BIG (Holo) | 2020 RMR

  • The Signal: On May 1st (around 10 AM), we caught an accumulation alert when the sticker was trading at just 0.32€. Volume was picking up unnaturally compared to its historical baseline.
  • The Peak: Just two days later, on May 3rd, it hit 0.47€.
  • The Result: A 47% price increase in a very short window.

Case Study 3: FAMAS | Survivor Z (Factory New)

  • The Signal: Late on April 28th (around 11 PM), we detected an accumulation phase starting when the skin was sitting quietly at 10.87€.
  • The Peak: By May 3rd, the pump was in full effect, driving the price all the way up to 19.82€.
  • The Result: A massive 82% price increase from the accumulation alert to the peak.

Why build this?

The goal here isn't to provide "trading signals" or tell you what to invest in—that's a dangerous game. The purpose is awareness and protection.

Often, normal players end up holding the bag on a dumped item, or completely miss out on selling their play skins during a massive, temporary pump.

We set it up so that anyone can use it to protect their own inventory:

  • Free Tier: You get notified if items you already own are currently being pumped. It’s basically a safeguard so you don't miss a good opportunity to sell off a skin that is temporarily overvalued.
  • Pro Tier: Built for people who actively study the market. You get full access to alerts across the entire market, the ability to track your owned skins, and custom watchlists for specific items you are researching.

If you’re interested in market data and want to keep an eye on your inventory, you can check out the tracker at CSPump.

Would love to hear feedback from you about wanted features or any bugs you spot.

Edit: Fixed formatting

u/Keveran — 7 days ago

Hey everyone,

If you’ve spent enough time watching the CS market, you know that random price spikes aren’t always natural. Market manipulation, coordinated pumps, and sudden dumps happen constantly.

A few friends and I are data nerds, and we wanted to see if we could catch these market movements before the massive spikes happen by tracking sudden changes in volume and listing behavior. We built a tool called CSPump that scans the Steam Community Market and CSFloat for anomalies to detect accumulation phases and active pumps.

I wanted to share some recent data we gathered to show what these signals actually look like in practice. (See attached images for the graphs).

Case Study 1: USP-S | Pathfinder (Factory New)

  • The Signal: On April 29th (around 5 PM), our system flagged abnormal volume and accumulation behavior. The median price was sitting at roughly 162.85€.
  • The Peak: By May 5th, the price aggressively spiked to 237.57€.
  • The Result: A 46% price increase from the point of the initial accumulation alert to the peak.

Case Study 2: Sticker | BIG (Holo) | 2020 RMR

  • The Signal: On May 1st (around 10 AM), we caught an accumulation alert when the sticker was trading at just 0.32€. Volume was picking up unnaturally compared to its historical baseline.
  • The Peak: Just two days later, on May 3rd, it hit 0.47€.
  • The Result: A 47% price increase in a very short window.

Case Study 3: FAMAS | Survivor Z (Factory New)

  • The Signal: Late on April 28th (around 11 PM), we detected an accumulation phase starting when the skin was sitting quietly at 10.87€.
  • The Peak: By May 3rd, the pump was in full effect, driving the price all the way up to 19.82€.
  • The Result: A massive 82% price increase from the accumulation alert to the peak.

Why build this?

The goal here isn't to provide "trading signals" or tell you what to invest in—that's a dangerous game. The purpose is awareness and protection.

Often, normal players end up holding the bag on a dumped item, or completely miss out on selling their play skins during a massive, temporary pump.

We set it up so that anyone can use it to protect their own inventory:

  • Free Tier: You get notified if items you already own are currently being pumped. It’s basically a safeguard so you don't miss a good opportunity to sell off a skin that is temporarily overvalued.
  • Pro Tier: Built for people who actively study the market. You get full access to alerts across the entire market, the ability to track your owned skins, and custom watchlists for specific items you are researching.

If you’re interested in market data and want to keep an eye on your inventory, you can check out the tracker at CSPump.

Would love to hear feedback from you about wanted features or any bugs you spot.

Steam market graphs

Edit: Added steam market graph images

u/Keveran — 9 days ago