Skip to content

Case study

ShakeMaster — Anti-AFK for Time Trackers

A Windows app that keeps Hubstaff, TimeDoctor and other trackers reading an active session — human cursor drift and quiet typing, never a bot's straight lines. Behind it: licensing, fiat/crypto checkout and background updates.

Desktop
Web
Cloud
Integrations
Remote work tooling
ShakeMaster — Anti-AFK for Time Trackers cover

Overview

Project overview

ShakeMaster keeps a time tracker's session alive while its owner steps away from the keyboard. The Windows client drifts the cursor inside a 200-pixel radius the way a resting hand does, types into its own window during idle so no chat ever receives a stray keystroke, and can drop out of screenshots and screen recording entirely. Everything else in the ecosystem exists to sell and maintain that client: a storefront, hardware-bound licensing, fiat and crypto checkout, and updates that install themselves.

ROLE

Desktop Client Engineer + Full Stack Engineer (Server)

TIMELINE

2026

FOCUS

  • Human-like input synthesis
  • Idle detection and intensity rules
  • Privacy: stealth window, process masking
  • Subscription + licensing architecture
  • Hybrid payments (fiat + crypto)
  • Zero-touch updates pipeline

Story

Problem → Solution → Outcome

PROBLEM

Time trackers mark a session idle the moment the keyboard and mouse go quiet, and the obvious workarounds — a script nudging the cursor on a timer — are trivially recognisable, type into whatever window is focused, and sit in plain sight of every screenshot the tracker takes.

SOLUTION

A .NET Windows client that synthesises human-shaped input — eased cursor drift in a bounded radius, keystrokes confined to its own window, activity gated behind a user-set idle threshold — and hides itself through window affinity and process masking. Alongside it, a Node/Express platform that turns the client into a product: storefront, hardware-bound licensing, fiat and crypto checkout, and a versioned update feed.

OUTCOME

A product that does its one job quietly: the tracker keeps counting, nothing lands in a work chat, nothing shows up in a screenshot, and the client keeps itself licensed and up to date without anyone touching it.

Highlights

What we built

Key systems shipped end-to-end — designed for reliability, conversion, and scale.

Input a tracker reads as a person

The whole product stands on one thing: activity that does not look generated. Straight lines and fixed intervals are exactly what gets noticed.

  • Cursor drifts within a 200px radius with easing — never teleports across the screen.
  • Keystrokes land in the app's own window, docked bottom-left, so chats stay clean.
  • Idle threshold and intensity are user-set: activity starts only after real inactivity.

Stays out of frame

Trackers screenshot the desktop. A tool that shows up in every capture defeats its own purpose.

  • Stealth window: excluded from screenshots and screen recording at the OS level.
  • Process masking with presets — Telegram, Chrome, Slack, or the real name.
  • Tracker radar lists installed trackers and stops running ones in a click.
  • Lives in the tray with a red/green status and a live log — statistics stay on the machine.

Licensing and payments behind the client

A 50 UAH/month product cannot afford manual support: checkout, key delivery, and renewals all run without a human.

  • Personal (one device) and Team (tiered seats), keys bound to a hardware hash.
  • Monobank for cards, NOWPayments for USDT TRC20 — with webhook and IPN validation.
  • Lifecycle: trials, renewals, grace periods, invoices — all automated.

Zero-touch updates

A tool that runs unattended for hours must not stop to ask about an update.

  • Server exposes an /updates feed endpoint for versioned releases.
  • Client checks updates on startup and patches in the background (Squirrel).
  • Safe handoff: updates and licensing share a single control plane.

Challenges

Technical challenges

The hard parts — and the solutions that made the system stable.

Results

Impact

Measured outcomes and operational wins.

  • Sessions in Hubstaff, TimeDoctor and similar trackers stay active without straight-line, fixed-interval patterns.

  • Stealth window and process masking keep the tool out of screenshots and process lists.

  • Fully automated lifecycle: checkout → invoice → license → activation → renewals.

  • Zero-touch desktop updates driven by a versioned server feed.

Availability

Where it runs

One codebase, every surface it ships on.

Windows 10/11

Shipped

The full product: tray indicator, stealth window, tracker radar, local stats.

macOS

Beta

Apple Silicon and Intel builds in development and testing.

Linux

Planned

Packages planned for Ubuntu and other distributions.

Stack

Tech stack used

Tools and patterns used on this build.

Desktop client

  • .NET 8
  • C#
  • Windows Forms
  • P/Invoke: input synthesis, window affinity, process naming
  • user32.dll · dwmapi.dll · kernel32.dll
  • Clowd.Squirrel (Squirrel updates)

Server runtime

  • Node.js
  • Express.js

Database

  • MongoDB (Docker)
  • JSON fallback storage

Storefront

  • EJS (Server-Side Rendering)
  • Vanilla CSS (Glassmorphism design system)

Payments

  • Monobank Merchant (Fiat/UAH)
  • NOWPayments (USDT TRC20)
  • Webhooks + IPN validation

DevOps

  • Docker Compose
  • PM2
  • GitHub Actions

Utilities

  • nodemailer
  • i18n
  • multer

Metrics

Impact metrics

Cursor drift

200px radius, eased

Components

2client + server

Payment gateways

2fiat + crypto

Plan tiers

2Personal + Team

Locales

3languages

Next

Next case study

Keep browsing the system.

LostPass — Local-First Password Manager + Licensing

A desktop vault on Electron with encrypted local SQLite (AES‑256‑GCM) and PIN/WebAuthn, plus a licensing server for subscriptions via Monobank, email key delivery, and deep-link activation.

Next case