unclassified  //  for client eyes only  //  devwat.ch
[DEVWATCH]

// the deliverable

This is what
you get.

A plain-English brief on what got built, how hard it was, and how good it looks. Three real projects, analyzed by the real engine — identities anonymized. The page is ours; the paper is yours.

A consumer app — website, phone agent, and server systems — built by an outside development agency

Owner paid an agency — 250 commits over seven months

Jan 2026 – Aug 2026

confidence: medium
237 commits52 of 214 active days+280,208 −102,358 lines3 contributors

277,510 vendored/generated lines detected and excluded from scoring

period score72
difficulty68
quality52
red flags6section 04

all scores out of 100 · the tick marks 50 ≈ one competent professional

01 · the read

Over seven months this repository went from empty to a working AI answering and quoting service for moving companies. It now holds the screens customers use (dashboard, calendar, call and email inboxes, agent setup), a separate internal admin console for your own team, the behind-the-scenes systems that run everything, a public documentation site, and connections to ElevenLabs and Twilio for phone calls, Stripe for billing, Google and Microsoft for calendars and mailboxes, and HubSpot and SmartMoving for pushing leads into customers' existing sales tools. The biggest single pieces built were: a self-service signup and agent-training wizard; a quoting engine that prices moves from hourly, flat, mileage and hybrid rules including overtime, travel time and fuel; an AI agent that answers phone calls, texts and emails, books and reschedules jobs, and hands off to a human; and, in July, a system that lets you run the same phone agent on either of two voice providers and switch a customer between them safely while calls are in flight. About 280,000 lines of hand-written change landed, alongside roughly another 277,000 lines of generated or copied-in content (automatically produced database and routing files, a vendor's email templates, encoded logo images) that does not represent original work and is excluded from the assessment. Nearly all of this came from one person, working under two email addresses, in concentrated bursts across 51 active days. The last three months of work in particular is careful, well-tested engineering. The main concerns are that credentials and website certificate private keys were committed into the repository early on and remain in its history, that several very large single commits are effectively unreviewable, and that the project has no second pair of eyes on any of it.

02 · selected weeks

2026-W07score 85 / 100

The heaviest early week: a complete new dashboard (about 24,000 lines, part boilerplate), automatic synchronisation of the AI agent's instructions using a background job queue, fixes to social and email login, dashboard analytics built on database views, and deletion of the old 26,000-line web app. A run of trial-and-error deployment commits also sits here.

2026-W14score 85 / 100

Biggest week of the first half. The quoting engine landed with its own pricing rules (hourly, flat, mileage, hybrid, overtime, travel, fuel, minimum floors) and tests, metered access for outside software, usage reporting, service-type management screens in two applications, subscription plan management and a documentation site. Also a password reset fix and recovery of previously uncommitted database changes.

2026-W24score 88 / 100

The largest week by delivered scope: dedicated HubSpot and SmartMoving lead delivery with a central lead create-or-update pipeline (about 28,000 lines), mailbox synchronisation for Gmail and Microsoft with an AI email agent that can quote and reschedule, a hand-written calendar replacing the third-party one, and dynamic pricing plans in signup. Includes a deployment safety check for the production database.

2026-W31score 92 / 100

Exceptional week. One commit of about 81,000 lines introduced the switchable phone-call system with two voice providers, safeguards against processing the same call or charge twice, cost tracking, and real database and cache integration tests. On top of that: the admin organisations area rebuilt, staff impersonation for support, protection against a class of server-side request attacks, and repairs to lead delivery. Reviewers rated this the most demanding work of the period.

03 · who did what

Developer A213 commits · 37 active days · ≈850-1280 hours of work

about 99% of the difficulty-weighted work

Built essentially the entire product over seven months: the customer dashboard, a separate internal admin dashboard, the behind-the-scenes systems, the database, and the integrations with ElevenLabs, Twilio, Stripe, Google, HubSpot and SmartMoving. Delivered the self-service signup and agent-training wizard, the quoting engine with its own pricing rules and metered access for outside software, the email and SMS agents with mailbox synchronisation, and the switchable phone-call system with the safety controls that stop calls or payments from being processed twice. Also handled deployment, monitoring, backups, and a security hardening pass that added request throttling, tightened access to internal connection points, and signed the login handshakes with outside services. Roughly 26,000 lines of automated checks were added, most of them from June onwards.

⚑ Worth asking: have the database passwords, monitoring tokens, service secrets and web-certificate private keys that were committed in January through April been rotated? Deleting them from the current files does not remove them from the project's history, so they remain recoverable by anyone with repository access.

Developer B1 commits · 1 active days · ≈0-0 hours of work

negligible, under 1%

One single-line change to an image on the signup page, on 7 February.

04 · red flags

05 · recommendation

The work is real and, from late May onwards, of good quality. Two things are worth acting on. First, commission a one-time security review focused on secrets: database passwords, a monitoring token, a live quoting access key, a service webhook secret and Let's Encrypt certificate private keys were all committed at various points between January and June. Removing them from current files does not remove them from history, so they should be rotated regardless of whether the repository is private. Second, address the single-person concentration. One developer holds all knowledge of the phone-call system, the payment handling and the deployment process, and several commits (one of about 81,000 lines) are too large for anyone else to review. Getting a second engineer to read through the voice-call and Stripe handling, and asking for smaller commits going forward, would reduce the risk cheaply. Beyond that, one small defect flagged by review is worth a five-minute check: two of the AI agent's tools appear to call the wrong address.

generated by devwatch · devwat.ch · evidence, not vibes

An AI-voice SaaS product built by an outside development agency

Owner paid an agency — five weeks, empty repo to deployed product

Jun 2026 – Jul 2026

confidence: medium
169 commits16 of 33 active days+53,038 −14,612 lines3 contributors

48,531 vendored/generated lines detected and excluded from scoring

period score88
difficulty72
quality68
red flags6section 04

all scores out of 100 · the tick marks 50 ≈ one competent professional

01 · the read

Over about four and a half weeks, this repository went from an empty project to a substantially complete AI phone-verification product. One developer, Vinicius, built almost all of it. The system takes an employment verification request, places an automated phone call, navigates whatever it encounters (voicemail, call screening, hold music, press-1 menus, a human HR representative), runs a branching interview using an AI voice agent, records the outcome and transcript, and can also pursue the same verification by email, SMS or fax when a call fails. Alongside that sits a staff dashboard for verifications, calls, campaigns, contacts and access keys, plus PDF verification reports, per-call cost tracking, and a way for other software to connect and submit verification requests directly. The last week added a real-time voice mode that talks to the caller with much lower delay than the earlier approach, and a mode that lets the whole system run inside someone else's product without its own login screens. A significant share of the effort — roughly a week's worth — went into security and reliability rather than features: checking that incoming notifications from Twilio, Telnyx and Resend are actually from those companies, encrypting personal data and call transcripts in the database, preventing the same person from being called twice, preventing a call from being recorded as finished twice, blocking scanner bots, daily database backups, and automated checks that run on every change. That work is unglamorous and it is what separates a demo from something you can point at real customers.

02 · selected weeks

2026-W26score 88 / 100

Three active days but a huge amount of ground covered: the database design and its structured changes for around fifteen tables, sign-in and organization accounts, the first working API for contacts, campaigns and calls, background job workers, the Twilio phone integration with an AI voice agent, the dashboard skeleton, and local development setup. Reviewers estimated 60-85 focused hours across the two slices in this window and rated the integration complexity moderate-to-high. Discounted somewhat because several commits were large scaffolding drops and a few would not have built on their own.

2026-W27score 85 / 100

Three active days covering the employment-verification feature end to end, the staff dashboard for verifications, calls, campaigns, contacts and access keys, production deployment with automatic SSL certificates, and a long tail of real debugging against live phone behavior (signature checks behind the proxy, voicemail and call-screening detection, speech latency tuning). Reviewers put this at 50-70 hours of focused work.

2026-W28score 95 / 100

The heaviest week: 86 commits over five active days. Timezone-aware calling windows, campaign rate limits and duplicate suppression, CSV contact import, outcome tracking, email/SMS/fax delivery channels, PDF reports, multiple AI providers with fallback, then a broad security and data-integrity pass (signature verification on incoming notifications, encryption of personal data and transcripts, duplicate-call and double-finish prevention, backups, automated checks on every change). Reviewers rated the security and concurrency portions senior-level and estimated well over 100 hours across the slices. Some of the volume is automated reformatting and generated files, which is excluded.

2026-W29score 72 / 100

One active day but high-value: the real-time voice mode built and debugged against Twilio's live protocol, per-call cost tracking, and a mode letting the system run without its own login screens for embedded deployments, with automated verification that the two halves stay separable.

03 · who did what

Developer A167 commits · 14 active days · ≈270-390 hours of work

about 99% of the difficulty-weighted work

Built essentially the entire product: the database and its structured changes, sign-in and organization accounts, the phone-calling engine that conducts AI verification calls (including voicemail detection, hold/IVR menu navigation, branching question flows, and a newer real-time voice mode), the delivery of verifications by email, SMS and fax, PDF report generation, and the staff dashboard covering verifications, calls, campaigns, contacts and access keys. Also delivered the production deployment setup, daily database backups, automated checks that run on every change, and a large security and data-integrity pass covering signature checks on incoming notifications from Twilio, Telnyx and Resend, encryption of personal data and call transcripts, duplicate-call prevention, and protection against scanner bots. Closed the period with a real-time voice transport, per-call cost tracking, and a mode that lets the system run without the built-in login system for embedded deployments.

⚑ Worth asking: several reviewers noted that a few individual commits referenced code that did not yet exist at that point in history, and one early set of security gaps (unverified incoming email/SMS/fax notifications, test call-simulation routes exposed in production) shipped before being fixed days later. Is there any second pair of eyes on this work before it reaches production?

a production server account1 commits · 1 active days · ≈0-1 hours of work

well under 1% of the work

Made a single one-line change on a production server, switching the new real-time voice mode to be on by default when no explicit setting is present.

⚑ Worth asking: this flips a safety default that was deliberately set to off until the new voice mode had been validated on live calls, and it was committed directly from a server rather than from a developer machine. Was that intentional and coordinated?

the owner1 commits · 1 active days · ≈0-0 hours of work

negligible

Created the repository with an initial one-line description file.

04 · red flags

05 · recommendation

The delivered product is broad and the hard parts (live phone calls, concurrency, security) were treated seriously. Two things are worth acting on. First, this is a one-person system with no code review anywhere in the history; commission a one-time independent security and reliability review by a senior developer, focused on the phone-call handling and the incoming-notification paths, before onboarding real customers at volume. Second, resolve the real-time voice mode default: the code now turns it on when nothing says otherwise, while the deployment configuration and documentation say it should be off until validated. Pick one and make them agree.

generated by devwatch · devwat.ch · evidence, not vibes

A subscription revenue-recovery app built by a solo contract developer

Owner hired one contractor — idea to deployed application

Sep 2024 – May 2025

confidence: medium
52 commits10 of 227 active days+41,517 −11,416 lines1 contributor

56,529 vendored/generated lines detected and excluded from scoring

period score26
difficulty65
quality28
red flags6section 04

all scores out of 100 · the tick marks 50 ≈ one competent professional

01 · the read

Over about seven and a half months, one developer built the product from an empty repository into a working subscription-recovery product. The first commit (September 2024) put up the screens and navigation with placeholder data. Then, after a five-month gap, the application was wired to real services: sign-in by emailed magic link, connecting a customer's Stripe account, importing their customer list with live progress feedback, and automated recovery campaigns with scheduled follow-up emails. March 2025 added a real analytics dashboard (recovery rate, churn, revenue retention computed from actual payment events) and then a complete invoicing module that generates PDF invoices, emails them to customers, and can produce them automatically when Stripe reports a payment. Early April was spent getting the application live in production, and the last two working days added switching between multiple connected businesses and finer control over campaign timing.

The work is real and the feature range is wide for one person. Two things temper it. First, the calendar: 52 commits landed on 10 working days, with a five-month gap between September and February and long quiet stretches after. Expert review of the code estimates roughly 150-230 hours of hands-on effort in total, so this reads as an intense part-time project rather than sustained full-time development. Second, quality hygiene is weak in a specific and urgent way. Live passwords and service keys were committed into the project files repeatedly, an encryption routine uses a key that is itself stored in the repository (so the encryption protects nothing), and reviewers flagged an email-sending connection point that appears to be open to anyone who finds it. Those need attention before anything else.

02 · selected weeks

2025-W09score 82 / 100

The heaviest week of the period. The application went from mock screens to working software: email-link sign-in, Stripe account connection, customer list import with live progress, automated campaigns with scheduled follow-ups, and then a dashboard rebuilt on real payment data with churn and recovery metrics. Reviewers estimated 44-72 hours of work landing in these four commits across three days.

2025-W11score 58 / 100

One working day (March 10) delivering the analytics and charting overhaul, expanded Stripe payment-notification handling, and protection-rule statistics, plus same-day corrections to the revenue-retention calculations. Substantive full-stack work compressed into a single day.

2025-W12score 70 / 100

Two days producing the invoicing module essentially from scratch: pulling payment events, generating invoices, producing PDFs, and emailing them through Postmark, with the supporting database structure and business-details settings. Fast and functional, though debug artifacts and an unauthenticated test-email route were left behind.

2025-W14score 45 / 100

23 commits on April 6 taking the application live: automatic invoicing triggered by Stripe notifications, internal route protection, moving the project to the repository root, deployment configuration, and a long run of one-line production fixes. Low line volume but real work; a meaningful share of it was deployment trial and error.

03 · who did what

the developer52 commits · 10 active days · ≈150-230 hours of work

100% of the period's difficulty-weighted work

Built the entire product single-handedly: the initial screens and scaffolding, then the connections to Stripe, the email service, and the scheduling service that turned mock screens into a working application. Later work delivered the analytics dashboard (recovery rates, churn, revenue retention), the invoicing module with PDF generation and emailed invoices, automatic invoicing triggered by Stripe payment notifications, and the production deployment. The final stretch added switching between multiple connected businesses and finer control over campaign timing.

⚑ Worth asking: live credentials (Stripe keys, database passwords, email service tokens) were committed into the project files in at least four separate stretches, and reviewers found an email-sending connection point that appears to require no authentication. What is the plan for rotating those keys and closing that route?

04 · red flags

05 · recommendation

Two actions, in order. First, treat the committed credentials as compromised: rotate the Stripe keys, database password, and email service tokens, remove the secret files from the project's history, and replace the encryption routine whose key is stored alongside the data it protects. Second, commission a one-time review by a senior developer covering the security items and the specific correctness bugs reviewers flagged (the Stripe key check that ignores the key the user typed in, the unauthenticated email route, the payment-amount columns that may be too small for real amounts, and the rewritten database change history). Going forward, ask for smaller, single-purpose commits and at least basic automated tests around payments and invoicing; the current single test file gives no safety net for a product that handles money. The feature work itself is competent and delivered fast, so this is about hardening what exists rather than rebuilding it.

generated by devwatch · devwat.ch · evidence, not vibes
Run my first report — free