strictly
A local-first inspector for copied configuration, credentials, and connection strings.
strictly was built to catch the tiny characters and structural mistakes that make copied configuration fail in ways that are difficult to diagnose.
The problem is invisible
Configuration is often copied from terminals, screenshots, dashboards, and chat messages. A zero-width space, smart quote, Unicode dash, OCR substitution, or unencoded space can look correct while changing the value that reaches an application.
The resulting error is rarely helpful. A space in a password can look like an authentication failure, while a space in a host can look like a DNS outage. A valid connection string can also point to the wrong branch, project, or pooling mode.
Inspection without exposure
strictly is a local-first inspector for connection strings, environment files, credentials, and configuration copied from images. Text stays in memory, the web app has no backend, and after its static assets load it makes no network calls.
A small library underneath
The product is split into a zero-runtime-dependency TypeScript library and a static Vite/React web app. A shared parser and rule registry classify the input before provider-specific checks run, while universal character checks apply to every value.
Connection strings receive the deepest semantic checks today, including URI structure, query parameters, Neon direct versus pooler hints, and Supabase session versus transaction pooling observations. Unrecognized plain text is deliberately left alone apart from those universal checks.
Correctness is part of the interface
The hard part was making the tool safe to trust. Original and proposed values remain separate, fixes are never auto-applied, copy actions require an explicit version, and the library has no network calls, environment reads, storage, logging, or time-dependent decisions.
Tradeoff: static inspection can expose suspicious structure and characters, but it cannot prove that a credential is current or that a valid endpoint is the one a user intended. The product makes that boundary visible instead of pretending to validate what it cannot know.