Bots that keep running when nobody is watching.
Anyone can write the happy path. The job is the other ninety percent: the dropped socket at 4am, the duplicate fill, the rate limit you meet on the busiest day of the year.
What actually breaks a trading bot?
A dropped websocket that nobody notices for six hours, usually. Or a retry that fires the same order twice. Every bot works in backtest and on a quiet Tuesday; what separates a toy from something you leave running is the day the venue has an incident.
- A websocket drops and nothing notices for six hours
- A retry fires the same order twice
- Rate limits discovered by being banned
- State in memory, so a restart starts from nothing
- Alerts so noisy you mute the channel by week two
- Reconnect with backoff, and a heartbeat that shouts when it stops
- Idempotent jobs, so a replay cannot double-fire
- Paced requests that stay inside the published limits
- Durable state, so a restart resumes where it stopped
- De-duplicated alerts with quiet hours and per-search mutes
Running against live data inside a fortnight.
Scope call
We start with whether the thing is worth building at all. If we are the wrong shop for it, we would rather say so in week one than in week nine.
A thin slice, end to end
One real path all the way through the system. Ugly, but running and instrumented, so the unknowns surface while there is still time to do something about them.
A demo you can poke at, not a status update
Something real every week. Nothing gets saved up for a reveal at the end, so a change of direction costs a conversation instead of a change order.
Handoff with runbooks
Code, deploy steps, and what to do when it breaks at 3am. We stay available for follow-on work, but we do not build in a dependency on us.

A trading system that has never seen a real fill is a hypothesis.Concept211 · Trading bots
What do you build trading bots on?
Node.js and TypeScript, Playwright where a venue has no API, and Telegram for delivery. All of it boring on purpose: a bot that has to run for a year is the wrong place to try a framework for the first time.
What proof is there that this works?
Two things running in public. CarSnipe is this exact service as a product: 450+ paired accounts, 20,300+ alerts delivered, and a 3-minute scan interval on the Pro tier, read off its own live counters on 25 August 2026.

A Marketplace watcher that moved into the buyer’s own browser
CarSnipe watches Facebook Marketplace and fires a Telegram alert on a 3-minute check. We moved the watching off our servers and into a Chrome and Firefox extension, which killed the credential-storage problem and the throttling problem in one move.
And on the crypto side: HyperLens
Same pattern, different venue. HyperLens is a free browser extension that reads Hyperliquid’s API and draws straight onto the exchange’s own trading screen: cross-venue funding rates side by side, the carry on an open position in dollars instead of basis points, background alerts that fire while the tab is somewhere else, and perp-versus-underlying divergence from trade.xyz. The watching happens in the trader’s own browser for the same reason it does in CarSnipe. There are no keys to hold and no session to store.
It ships alongside the Hyperliquid Guide, an independent 18-chapter reference to the exchange that we write and revise every quarter for more than 50,000 readers. The same API feeds an embeddable liquidation calculator and funding ticker anyone can drop into their own page. That is where the venue knowledge behind a perps bot comes from: fees, order types, deposits, and how the book behaves against a centralized exchange. How the guide is built and measured is written up separately.
What that looks like in numbers
Volume first, because an alerting product that nobody is paged by is a demo. CarSnipe's live counters read 450+ paired accounts and 20,300+ alerts delivered on 25 August 2026. The same two counters read 425+ and 19,100+ five days earlier on 20 August, so roughly 1,200 alerts went out in that window. Both counters round down and both are read off the production database rather than typed onto a page, which makes the 1,200 a floor rather than an exact count. They are on carsnipe.com if you want to watch them move.
Cadence next, and it is held rather than attempted: a 3-minute check on the Pro tier and 15 minutes on Basic, driven by the extension's own alarm in the buyer's browser instead of a best-effort server queue. The comparison worth making is Facebook's own saved-search notification, which arrives hours late when it fires at all. The case study covers why the watching moved into the browser and what that trade costs.
And the site side, measured the same way as everything else here. Over two consecutive 28-day windows read on 11 August 2026 from the Search Console Search Analytics API, carsnipe.com went from 587 clicks to 863, a 47.0 percent rise, on impressions up 23.8 percent from 60,185 to 74,509. Clicks growing faster than impressions is the direction that matters on a product site. What it is not is proof of cause: the product was being marketed and the weekly audit cycle was running at the same time, with no control group, and Search Console filters page-level rows so both totals are floors.
The venues get named here rather than implied, which is the one thing a template-cloned page will not do. Three across the two builds: Facebook Marketplace for CarSnipe, then Hyperliquid and trade.xyz for HyperLens, the second of those read for perp-versus-underlying divergence.
Questions we get every time.
The things people ask on the first call, answered before you have to ask them.
Ask us something elseWhat kinds of bots do you build?
Perpetual market-makers and execution bots against exchange APIs, on-chain watchers that follow contract events or wallet activity, and alerting pipelines that turn any of it into a message you actually read. Where a venue has no API we drive a real browser instead, either with Playwright on a server or as an extension running in the user's own browser, which is how CarSnipe watches Facebook Marketplace.
How do you keep a bot running unattended?
By assuming it will break. Every socket reconnects with backoff, every job is idempotent so a replay cannot double-fire, and rate limits are paced rather than discovered by getting banned. State lives somewhere durable so a restart resumes instead of starting over, and the logs are written for the person reading them at 3am.
Do you take custody of funds or keys?
No. Keys stay with you, on your infrastructure, scoped to the permissions the bot actually needs. We will help you set the exchange permissions correctly and will tell you plainly when a design needs withdrawal rights, which is almost never.
How long does a bot build take?
Six to fourteen weeks from first scope to handoff. An alerting pipeline sits at the short end, a market-maker with inventory and risk logic at the long end. You get something running against live data in the first fortnight, because a trading system that has never seen a real fill is a hypothesis.
Need something that runs while you sleep?
Trading, monitoring, or alerting where being first is the entire value. We will tell you in week one if we are the wrong shop for it, rather than in week nine.