TL;DR
- The problem: step-by-step guides are full of screenshots of internal tools and customer data.
- The decision: no account, no server, no network request. Guides live in the user’s browser.
- What it removed: a database to breach, a processor agreement to sign, an outage to have.
- What it cost: no sync, no shared links, no usage data. Every one of those is a design problem now.
We run a SaaS product, Consulting Cockpit, and a good part of supporting it is answering “how do I…?” questions. The honest answer is almost always a short sequence of clicks. Writing it down means taking a screenshot, cropping it, drawing an arrow, pasting it into a document, and doing that seven more times. Nobody enjoys it, so the guides do not get written, and the same question comes in again next week.
Tools that record the clicks and write the guide for you exist and are good at it. What stopped us was where the result goes. A step-by-step guide is, by construction, a series of screenshots of whatever you were working in: an admin panel, a CRM with customer names in it, an invoice, an internal dashboard. The popular recorders upload those screenshots to the vendor’s cloud so the guide can be shared by link. For a German company that is a data protection conversation before it is a productivity win.
So we built our own, stepkeep, and made one decision first: there would be no server.
What “no server” means in practice
Not “we have a server but we promise not to look”. There is nothing on the other end.
- Storage is the browser profile. Guides and screenshots are written to the extension’s own storage in the user’s Chrome profile. Nothing is uploaded when a guide is saved, edited or exported.
- There is no account. No sign-up, no login, no user table.
- The extension makes no network request of any kind. No telemetry, no analytics, no crash reports. That is not a policy statement; the build has an end-to-end test that fails if the extension makes a request.
- Export is a file. PDF, Markdown or HTML goes to the downloads folder, or Markdown goes to the clipboard to be pasted into Notion, Confluence, a wiki or a ticket. Sharing is whatever the user already uses to share files.
The recorder only reads the tab the user chose, only while a recording runs, and asks for access to each site at the moment it is needed rather than at install time.
What the decision removed
The interesting part of leaving out the server is how much else disappears with it.
There is nothing to breach. No database of customer screenshots exists, so it cannot leak, be subpoenaed, or be misconfigured into a public bucket.
There is no data processing agreement. When a vendor stores your data, your legal team needs a processing agreement, a list of sub-processors and a view on where the data sits. When the vendor never receives the data, there is nothing to process and nothing to sign. For buyers in Germany this is the difference between “install it” and “open a ticket with the data protection officer”.
There is no outage. A tool that runs entirely in the browser keeps working when a vendor’s region is down, on a train, and on machines that are not allowed to talk to the internet.
There is no infrastructure bill that grows with users. One more user costs us nothing to run, which is why the price can be a one-time purchase instead of a subscription.
What it cost, and how we worked around it
Every feature a cloud product gets for free became a design problem.
Licensing. Normally a licence key is checked against a server. Ours is a signed message: the extension verifies the signature against a public key that ships inside the extension. Activation works offline and on managed machines, and a key keeps working for as long as the customer keeps it. The trade-off is that a key cannot be revoked remotely.
Company branding. Teams want every exported guide to carry their logo and colours, set once by one person. Without a server there is no central settings page to hold that. Instead, an administrator deploys the design through the browser’s ordinary managed policy, the same way IT already rolls out other Chrome settings, and can lock it. For smaller teams the design is a file that can be exported and imported.
Sharing and sync. There is no “copy link” and no sync between machines. We decided that is a feature for the audience we built this for: the guide goes where the team’s documents already live, under the team’s access control, not in a third place.
Knowing what users do. We have no usage data from the product at all. What we learn comes from support conversations and from people who write to us.
Who ended up using it
We built stepkeep for our own customer support, and that is still where we use it most: a customer asks how to do something, we click through it once, and they get a clean PDF or a Markdown snippet a minute later.
The use we did not plan for came from home: my wife uses it to help her mother. Record the task once, and there is a guide with numbered screenshots to follow. It is the same problem as customer support, one generation removed.
The other group it fits is IT. Microsoft deprecated the built-in Windows Steps Recorder in November 2023, and people who used it to document or report problems are looking for something that behaves the same way: records locally, produces a file, and does not need an account.
The takeaway for tech leads
“Where does the data go?” is usually answered with encryption, certifications and contracts. Sometimes the better answer is architectural: if the product does not need the data, do not receive it. It removes whole categories of risk and paperwork, and it forces you to solve licensing, configuration and sharing in ways that often suit enterprise environments better than the cloud default would.
stepkeep is free for up to five guides, and a personal licence is a one-time payment. You can try it at stepkeep.app.