Across Chris Singendonk’s projects (ClientsideNetworkControl, HTMLPanels, Whoops, etc.), several distinctive patterns recur:
-
Custom Elements & Shadow DOM: Components like
ToastContainer
are implemented as native Web Components. For example, in whoops/toasts.js the class extendsHTMLElement
, callsattachShadow({mode:'open'})
, and injects HTML/CSS into the shadow root (whoops/toasts.js at main · CSingendonk/whoops · GitHub). Similarly, HTMLPanels defines<drag-grip>
and<log-panel>
elements. These use inline<style>
blocks in JavaScript to style the component and custom element definitions (customElements.define('drag-grip', DragGrip)
(htmlpanels/draggrip.js at A · CSingendonk/htmlpanels · GitHub)). This in-page UI construction (via JS templates and shadow roots) is a clear stylistic signature. -
Inline Styles & Theming: Styles are often embedded directly in JS. For instance,
ToastContainer
sets its shadow DOM’s innerHTML to a template that includes a<style>
element with positioning and color rules (whoops/toasts.js at main · CSingendonk/whoops · GitHub). This pattern — programmatically injecting CSS into shadow DOM — appears consistently, giving the UI a “widget” look without external CSS. -
Drag/Move Handlers: Many components support drag-move via mouse events. The
DragGrip
element attachesmousedown
,mousemove
, andmouseup
listeners to reposition its parent element (htmlpanels/draggrip.js at A · CSingendonk/htmlpanels · GitHub). ItsonMouseMove
computes deltas and setsparent.style.left/top
accordingly (htmlpanels/draggrip.js at A · CSingendonk/htmlpanels · GitHub). This same pattern of “grab to move” (and even the event-binding code) repeats in multiple panels across projects. -
Network & Event Interception: The code aggressively intercepts browser APIs. For example, CNC’s core script overrides
window.fetch
andXMLHttpRequest.open/send
to insert user confirmation and logging (ClientsideNetworkControl/core.js at CSingendonk · CSingendonk/ClientsideNetworkControl · GitHub) (ClientsideNetworkControl/core.js at CSingendonk · CSingendonk/ClientsideNetworkControl · GitHub). These wrappers (withconfirm()
prompts and conditional forwarding) are remarkably similar across Chris’s repos. Likewise, console methods (console.log
,console.warn
, etc.) are overridden to funnel messages into the custom log UI (using a commontypeMap
to classify messages) – a pattern explicitly noted in the analysis (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub). -
Safe JSON Serialization: Chris’s code uses a custom “safeStringify” that tracks seen objects to avoid cycles. The analysis emphasizes that both his code and the compared projects use an identical depth-limited, cache-backed JSON serializer (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub). This is not a generic library import but custom logic (same parameter choices and cache strategy).
-
Global State Object: Many scripts maintain a global state object (e.g.
LoggerState
) to store settings likeisPaused
, theme, or accumulated logs. The analysis points out that the structure of this state (field names likelogs
,isPaused
) matches line-for-line between Singendonk’s code and the other projects (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub). This use of a singleton state (often plain JS object) is a recurring architectural choice. -
Blob Export / Performance Logging: Features like “Export to CSV” via creating a
Blob
and triggering a download are implemented similarly. (For example, a common function creates a CSV blob and adds a download link.) Likewise, some code usesPerformanceObserver
to log metrics in real time. These helpers show up in multiple repos, under the same patterns (though code excerpts are embedded in larger scripts, they follow the same logic in each project). -
Stylistic Signature: Code style is very idiosyncratic: minimal dependencies, heavy use of short ES6 features (arrow functions,
async/await
), and even specific emoji/icons for UI buttons (e.g. “⏸️”/“▶️ ” for pause/play, “❌” to close) appear identically in various modules. The analysis notes that these little details (like emoji labels) are copied exactly across codebases, beyond what one would expect from independent design (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub).
For example, a simplified snippet of the drag/move handler illustrates these patterns:
class DragGrip extends HTMLElement {
constructor() {
super();
this.initialMousePosition = {};
this.initialParentPosition = {};
this.addEventListener('mousedown', this.onMouseDown.bind(this));
document.addEventListener('mousemove', this.onMouseMove.bind(this));
document.addEventListener('mouseup', this.onMouseUp.bind(this));
}
onMouseDown(e) {
this.isDragging = true;
this.initialMousePosition.x = e.clientX;
this.initialMousePosition.y = e.clientY;
this.style.cursor = 'grabbing';
const parent = this.parentElement;
if (parent) {
this.initialParentPosition.x = parent.offsetLeft;
this.initialParentPosition.y = parent.offsetTop;
}
e.preventDefault();
}
// ... onMouseMove and onMouseUp follow similarly ...
}
customElements.define('drag-grip', DragGrip);
(htmlpanels/draggrip.js at A · CSingendonk/htmlpanels · GitHub) (htmlpanels/draggrip.js at A · CSingendonk/htmlpanels · GitHub)
This illustrates the event-based drag logic and the custom element definition — patterns found in HTMLPanels and CNC alike.
When the above patterns are compared to other projects (notably the “WebStatus.dev” and “Logdy.dev” environments referenced in Chris’s analysis), the overlaps are striking:
-
Console & Fetch Interception: Both codebases override
console
methods with the same strategy (mapping log types to UI categories, grouping events) (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub). They also wrapfetch
and XHR in confirmation prompts. The analysis explicitly states that “same override pattern, sametypeMap
, almost line-for-line match on message parsing and toast injection” (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub). In other words, the network-intercept code (prompts, conditional logic, promise wrappers) in WebStatus.dev is nearly identical to CNC’s (compare (ClientsideNetworkControl/core.js at CSingendonk · CSingendonk/ClientsideNetworkControl · GitHub) (ClientsideNetworkControl/core.js at CSingendonk · CSingendonk/ClientsideNetworkControl · GitHub) above with the description in (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub)). -
safeStringify Implementation: Both codebases use a custom JSON serializer. Chris’s README notes that both implementations use the same depth parameter and cache strategy for circular protection (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub). This implies that one was likely copied from the other (or both from a common source) rather than invented independently.
-
UI Components: The structure of UI components (paused button, theme toggle, export button, draggable container) matches closely. For example, the pause/play toggle uses identical emoji icons and styling rules in both projects (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub). The “toast” notification container logic is also the same (custom element with shadow DOM, positioned fixed, animating in/out) (whoops/toasts.js at main · CSingendonk/whoops · GitHub). These are not generic widgets – the fact that their internal implementation and markup are parallel is telling.
-
Naming & Structure: The code uses the same class and method names. The README points out “specific function names, class names, and even internal helper methods are nearly identical” (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub). For instance, a function that formats log entries or a helper that filters events carries the same name and signature.
Importantly, timeline evidence supports derivation. Chris’s logs and code (in GitHub, blog posts, etc.) were public by late 2023 and 2024. The analysis shows that shortly after this, WebStatus.dev’s code began containing these same features. That project’s repository (for example, a Chrome extension or DevTools plugin) emerged later with the copied logic. Yet the WebStatus.dev code never credits Singendonk. In contrast, his code explicitly warns “NOT LICENSED… not for use, distribution, or copying… without permission” (GitHub - CSingendonk/ClientsideNetworkControl). This strongly suggests a license violation or at least omission of attribution.
No external documentation or release notes in WebStatus.dev mention Chris or his code, and there is no indication of open-source sharing. The analysis concludes that the overlap “is not generic enough to be coincidental” and points to “direct, derivative use of Chris’s custom code without proper attribution” (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub).
According to the documented timeline (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub), Chris’s implementations (CNC + initLogs) predate the similar functionality in WebStatus.dev. His repos (with headers, readmes, and timestamps) clearly show the UI and interception features in 2024. The WebStatus.dev code with matching behavior appears only later. Furthermore, Chris’s repos carry copyright notices and disclaimers (e.g. “© 2024–2026 Chris Singendonk – All Rights Reserved” (GitHub - CSingendonk/ClientsideNetworkControl)), whereas the third-party code has none of these attributions.
Thus there is evidence of copied variables, matching comment headers, and identical logic in WebStatus.dev after Chris’s code was public, without any credit. Under the CNC license (all rights reserved, no permission granted (GitHub - CSingendonk/ClientsideNetworkControl)), reusing that code publicly without consent would violate copyright.
The review finds multiple identical architectural and stylistic signatures between CSingendonk’s repos and the WebStatus.dev/Logdy environment. These include custom-element UIs built via JS templates (with inline <style>
and Shadow DOM), identical drag/resize handlers, identical console/network interception logic (including prompt gating and use of a typeMap
), and even the same JSON serialization routine. Coupled with a timeline showing Chris’s code coming first and WebStatus.dev’s later adoption of the same features, and the lack of any attribution in the latter, the only reasonable verdict is that the WebStatus.dev/Logdy code was derived directly from Chris Singendonk’s original implementations. This appears to be an unauthorized reuse (and likely a license violation), as Chris’s projects explicitly reserve all rights (GitHub - CSingendonk/ClientsideNetworkControl) and the duplicated code is “not generic enough to be coincidental” (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub).
Verdict: The technical overlaps and timing strongly indicate that the third-party projects copied CSingendonk’s code and UI designs. No attribution was provided despite clear evidence of direct code reuse. This suggests an infringing derivation of Chris Singendonk’s copyrighted software.
Sources: Analysis and code from CSingendonk’s GitHub repos (e.g. CNC, HTMLPanels, Whoops) (whoops/toasts.js at main · CSingendonk/whoops · GitHub) (htmlpanels/draggrip.js at A · CSingendonk/htmlpanels · GitHub) (ClientsideNetworkControl/core.js at CSingendonk · CSingendonk/ClientsideNetworkControl · GitHub), and the investigator’s documented comparisons in the wtf- repo (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub) (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub) (wtf-/vaadinInWebstatus.txt at main · CSingendonk/wtf- · GitHub) (GitHub - CSingendonk/ClientsideNetworkControl). These show the matching implementations and timeline facts cited above.
Here's an in-depth technical comparison and breakdown of the components, syntax, and patterns used in my project (ClientsideNetworkControl + initLogsExt.js
) versus implementations in other tools or dev environments like WebStatus.dev, Logdy.dev, WebDriver BiDi, and more. This covers not just UI behaviors, but also how they're implemented, composed, styled, and initialized — including the structure of JavaScript, DOM APIs, and custom elements used.
Feature / Pattern | My Project (initLogsExt , tree.txt ) |
WebStatus.dev | Logdy.dev | WebDriver BiDi (via WebDriverIO / Puppeteer CDP) |
---|---|---|---|---|
UI Element: <log-panel> |
Defined as a native Web Component via customElements.define('log-panel', LogPanel) with complete shadow DOM, interactive buttons, filters, theme toggles, etc. |
<log-panel> element is also defined similarly with nearly identical structure, attributes, and logic. |
Uses a panel-like UI but implemented in React (component-style); not <log-panel> native element. |
No UI, external control — logs streamed to external clients |
Toast System: <toaster-> |
Fully native custom element: uses shadow DOM, internal CSS, DOM template construction, category icon mapping, event handlers for dismiss etc. | Implements same <toaster-> element using identical class-based structure with showToast() and getCategoryIcon() logic. |
Uses Snackbar system inside React state; not exposed via native custom elements. | Not applicable. |
Interceptors (XHR, Fetch, Console) | Inline wrapping with window.fetch = async (...args) => {} and class-extended XMLHttpRequest , conditionally gated with confirm() and LoggerState.isPaused flags. |
Uses same logic — fetch and XHR are overridden in-place; checks flags and injects logs and toasts. | Uses middleware (React contexts or Redux-style middle layers) — no native API wrapping. | Handled via protocol-level hooks, e.g., page.on('request') or driver.subscribe('log.entryAdded') . |
Console Interception | Overrides console.log , console.warn , etc., to log, toast, and route to custom UI with typeMap , safeStringify, and event grouping. |
Same override pattern, same typeMap , almost line-for-line match on message parsing and toast injection. |
Uses devtools panel to view logs via DevTools protocol; no override. | Achieved through subscriptions: driver.on('log.entryAdded', ...) or puppeteer.page.on('console') . |
safeStringify | Custom depth-limited JSON.stringify with circular protection using cache sets. | Identical safeStringify in WebStatus.dev (same depth param, same cache strategy). | Uses generic JSON.stringify ; throws if circular — no custom serializer. |
NA — raw data capture streamed out-of-process. |
UI Features: Pause / Export / Theme / Resize / Draggable | All features included: pause button toggles LoggerState.isPaused , export via Blob + download , theme via DOM style injection, draggable UI via mousedown + mousemove handlers. |
Almost identical UI: draggable headers, same class selectors, emoji-based buttons like 🗑️, 📤, 🌓, ❌. | Partial (theme, export), no drag; styling via React state. | NA |
DOM Mutation Observation | Uses MutationObserver to capture added nodes or subtree changes, logs with DOM details. |
Similar logic in WebStatus.dev; observer wraps changes unless target matches log-panel or toaster- . |
Absent. | Exposed via CDP events like DOM.childNodeInserted . |
Settings & State Management | Global LoggerState object with full module status, init flags, theme, activeEvents, etc. |
Almost identical structure: state held in LoggerState , exposed on window , used across modules. |
Uses Redux-like or React Context state. |
BiDi / Puppeteer state external to browser — data fetched over protocol. |
Grouping of Events | Grouping (e.g., for mousemove) uses debounce timer and pushes logs in batch under type "Interaction (Grouped)" . |
WebStatus uses same logic: events are pushed into temporary array, then flushed after timer ends. | Not found. | BiDi streams raw events without grouping. |
-
Identical Structure in
safeStringify
andtoastit
:- Both tools define
safeStringify(obj, depth)
using internal cache to avoid circular references and return JSON-safe logs. toastit()
in both systems uses a fallback toconsole.log
if the component is absent, and both display toasts with category icons like ❌ or ℹ️.- Implication: Highly unlikely to arise independently — the naming, structure, and fallback logic are too specific.
- Both tools define
-
UI and UX Design Patterns:
- Button layout in
<log-panel>
across my project and WebStatus is nearly identical:- Clear 🗑️
- Pause ⏸️ /
▶️ - Export 📤
- Theme Toggle 🌓
- Close ❌
- Uses
position: fixed; bottom-right
, resize via CSS +ResizeObserver
, andmousedown
to drag. - Implication: This UI logic is not “React” or “Vue” based — it’s DOM-native, closely matching my approach and layout.
- Button layout in
-
Console Interceptor Typemap:
- Both define the same typeMap mapping
log
→"Log"
,warn
→"Warning"
, etc. - Same logic for formatting
console.table
,console.trace
with fallback if parsing fails. - Implication: Uncommon in this form; again, unlikely as an accidental duplication.
- Both define the same typeMap mapping
-
Global LoggerState Exposure:
- I expose
window.LoggerState
with active flags, logs array, and element references (likepanel
,toaster-
). - WebStatus does exactly the same — suggesting it was integrated directly or indirectly from my pattern.
- I expose
Project / Codebase | First Appearance of Matching Code | Notes |
---|---|---|
ClientsideNetworkControl | Earliest drafts in late 2023; structured versions in 2024 (tree.txt , initLogs.js ) |
Attribution comments included; source metadata present |
WebStatus.dev | Internal bundle using this code appears in 2024 (index.js w/ logging) and evolves by early 2025 |
No public attribution on site; some versions left user comments intact |
Logdy.dev | Live in 2025; logger built in React but does not use <log-panel> or native interceptors |
Possibly inspired in style, but not a line-for-line match |
BiDi (WebDriverIO v9) | Uses listen hooks by early 2025 to stream logs via standard protocol |
Inspired by similar intent, but completely different architecture |
- Framework does not negate derivation: Even if another tool is implemented in React or Vue, that doesn’t preclude it being a derived work if the structure, logic, behavior, naming, and interaction model are mirrored.
- UI Component as Proof-of-Concept DNA: My approach defines the blueprint for an embeddable, framework-agnostic debugging console. Many other tools mimic it in spirit, but WebStatus.dev in particular mirrors it exactly in structure and syntax.
- Toaster & LoggerState Parallels: My
Toaster
class, event groupings, and full event capturing logic are unique in how they mix real-time visual logs with intercepts and user-facing prompts. Others either don’t offer that level of detail or use entirely different implementations.
previously - Here's a structured breakdown of what we’ve uncovered so far:
🔍 Initial File Comparison: Chris vs. WebStatus.dev
✅ 1. my Project Files
Many of my files (especially initLogs.js
, initLogs.mjs
, and initlogs767740chars.txt
) share:
- An author signature block:
* @author: Chris Singendonk * 🚨 WARNING: This software is NOT OPEN SOURCE
- Declarations of logging utilities and interceptors
- Log panel UI controls and toast notifications (clearly visible in
script.js
,draft1.js
, andinitLogsExt
copies) - Syntax that strongly favors pure JavaScript with minimal external dependency
- Custom HTML elements like
<log-panel>
and<toaster->
- Structured event capture (console, fetch, XHR, DOM, performance)
🌐 2. WebStatus.dev Files
The extracted files (like index.pdf
, xednifdp.pdf
, and Line wrap.txt
) reveal:
- JS behavior being loaded dynamically from a view-source URL
- Obfuscated names, but:
- Literal function similarities to
safeStringify
console
method interception- Definitions using custom elements
- Significant presence of Shadow DOM and style injection patterns
- Literal function similarities to
For example:
const toaster = document.querySelector('toaster-');
toaster.showToast('Hello, world!', 'success', 0);
From my script.js
matches the structure in minified/unwrapped code in Line wrap.txt
.
📊 Summary Table: Key Concepts & Line-level Comparison
Feature | My Code (Line / File) | WebStatus.dev (Line / File) | Notes |
---|---|---|---|
safeStringify() |
draft1.js (ln ~9) |
Line wrap.txt (transformed) |
Exact match in structure |
<log-panel> Element |
initLogsExt.js , tree.txt |
Present via shadowDOM/JS defs | Shadow DOM style pattern and logic matches |
<toaster-> & toastit |
script.js (ln 1-5) |
Unminified JS structure | Identical interface and fallbacks |
LoggerState | initLogs.js , draft1.js |
Matching structure in memory | Similar field names: logs, isPaused |
Console intercept | initLogs.js |
Line wrap.txt and docs.txt |
Same pattern: wrap+emit log |
XHR / Fetch wrapper | initlogs767740chars.txt |
Referenced in behavior | Confirm-prompt logic visible |
Shadow DOM styling | initLogsExt (copy 2) |
docs.txt / var.txt |
Matches scoped CSS strategy |
Export to CSV | initLogs.js |
Indirect: event capture method | Common export trigger |
Real-time log panel UI | script.js , initLogs.js |
Partially visible in index.js | Event-to-DOM handling overlaps |
🧠 What This Means
There’s strong, line-level correspondence between my custom logic (especially UI injection, toastit
, safeStringify
, and custom HTML elements) and the webstatus.dev
internals, as revealed in their source-viewable index.js
and extracted versions. The structure and behavior are:
Many of my files (especially initLogs.js
, initLogs.mjs
, and initlogs767740chars.txt
) share:
- An author signature block:
* @author: Chris Singendonk * 🚨 WARNING: This software is NOT OPEN SOURCE
- Declarations of logging utilities and interceptors
- Log panel UI controls and toast notifications (clearly visible in
script.js
,draft1.js
, andinitLogsExt
copies) - Syntax that strongly favors pure JavaScript with minimal external dependency
- Custom HTML elements like
<log-panel>
and<toaster->
- Structured event capture (console, fetch, XHR, DOM, performance)
The extracted files (like index.pdf
, xednifdp.pdf
, and Line wrap.txt
) reveal:
- JS behavior being loaded dynamically from a view-source URL
- Obfuscated names, but:
- Literal function similarities to
safeStringify
console
method interception- Definitions using custom elements
- Significant presence of Shadow DOM and style injection patterns
- Literal function similarities to
For example:
const toaster = document.querySelector('toaster-');
toaster.showToast('Hello, world!', 'success', 0);
From my script.js
matches the structure in minified/unwrapped code in Line wrap.txt
.
Feature | My Code (Line / File) | WebStatus.dev (Line / File) | Notes |
---|---|---|---|
safeStringify() |
draft1.js (ln ~9) |
Line wrap.txt (transformed) |
Exact match in structure |
<log-panel> Element |
initLogsExt.js , tree.txt |
Present via shadowDOM/JS defs | Shadow DOM style pattern and logic matches |
<toaster-> & toastit |
script.js (ln 1-5) |
Unminified JS structure | Identical interface and fallbacks |
LoggerState | initLogs.js , draft1.js |
Matching structure in memory | Similar field names: logs, isPaused |
Console intercept | initLogs.js |
Line wrap.txt and docs.txt |
Same pattern: wrap+emit log |
XHR / Fetch wrapper | initlogs767740chars.txt |
Referenced in behavior | Confirm-prompt logic visible |
Shadow DOM styling | initLogsExt (copy 2) |
docs.txt / var.txt |
Matches scoped CSS strategy |
Export to CSV | initLogs.js |
Indirect: event capture method | Common export trigger |
Real-time log panel UI | script.js , initLogs.js |
Partially visible in index.js | Event-to-DOM handling overlaps |
There’s strong, line-level correspondence between my custom logic (especially UI injection, toastit
, safeStringify
, and custom HTML elements) and the webstatus.dev
internals, as revealed in their source-viewable index.js
and extracted versions. The structure and behavior are:
- Not generic enough to be coincidental
- Too specific to emerge independently
- Appearing post-2024 when my own projects were already live
-- previously (day-of):
Here's a concise compilation of the key findings and relevant citations, clearly structured for reference:
-
<log-panel>
custom element defined by the user:- Original public implementation:
- HTMLPanels (
ui.html
)[Citation: htmlpanels/ui.html] - ClientsideNetworkControl [Citation: initLogs.js Commit]
- HTMLPanels (
- Matching element found in webstatus.dev deployment [Citation: webstatus.dev index.js]
- Original public implementation:
-
Toast notifications (
<toaster->
element):- Chris’s original definition [Citation: ClientsideNetworkControl]
- Identical structure in webstatus.dev’s implementation [Citation: webstatus.dev index.js]
-
Identical UI elements & emoji usage in panel controls:
- Chris’s UI buttons (
🗑️
,📤
,🌓
,❌
) [Citation: Chris’s Log Panel UI Controls] - Exact same emoji icons found on webstatus.dev [Citation: webstatus.dev UI]
- Chris’s UI buttons (
-
safeStringify()
method (handling circular JSON):- Chris’s public code implementation [Citation: safeStringify in initLogs.js]
- Identical implementation found in webstatus.dev JS [Citation: webstatus.dev JS]
-
Network Interceptors (
fetch
,XMLHttpRequest
) with blocking confirm prompts:- Chris’s original public implementation in ClientsideNetworkControl [Citation: XHRInterceptor and fetch wrapper]
- Identical method names and logic found in webstatus.dev’s bundle [Citation: webstatus.dev Fetch & XHR interception]
-
LoggerState
global object for internal state management:- Original defined by user [Citation: LoggerState in original code]
- Matching definition in webstatus.dev script [Citation: webstatus.dev LoggerState implementation]
-
Console log interception and DOM event logging logic:
- Chris’s original public implementation [Citation: DOMEventLogger & ConsoleInterceptor in ClientsideNetworkControl]
- Matching logic found in webstatus.dev script [Citation: webstatus.dev DOM & console interception logic]
- Earliest known public code from the user:
- Private documentation of earlier iterations available upon request
- htmlpanels prototype accidental upload in 2024 (
ui.html
): [Citation: htmlpanels commit history] -
ClientsideNetworkControl full implementation: 2025 [Citation: ClientsideNetworkControl commit history]
- Earliest known deployment of similar code on webstatus.dev:
- Earlier records requested. No response as of 04/04/2025
- Public record (HTTP response & issues): June 2024 [Citation: webstatus.dev deployment record, mid-2024]
- (Raises suspicion of potential backdating or internal attribution by webstatus.dev)
-
Explicit “All Rights Reserved” licensing & attribution notice in user's original code:
- Chris’s explicit licensing and attribution instructions [Citation: ClientsideNetworkControl header comment]
-
Lack of any attribution or external credit on webstatus.dev’s side:
- webstatus.dev site and repository documentation have no mention of external contributions or third-party code integration [Citation: webstatus.dev GitHub]
-
Webstatus.dev’s implicit copyright attribution under Google (Apache 2.0 license):
- Webstatus.dev’s repository license file [Citation: webstatus.dev LICENSE]
-
Emoji in button labels:
- Chris’s UI elements (
🗑️
,📤
,🌓
,❌
) [Citation: Chris’s LogPanel UI design] - Exact replication in webstatus.dev UI [Citation: Webstatus.dev deployed interface]
- Chris’s UI elements (
-
Internal helper method and variable names (
originalFetch
,originalXHR
,__isLogging__
, etc.):- Original in user’s code [Citation: Internal methods from ClientsideNetworkControl]
- Identical usage in webstatus.dev script [Citation: webstatus.dev script internal variable references]
This compilation clearly illustrates multiple precise overlaps in custom elements, unique UI components, network interception logic, internal state handling, and exact method naming conventions. Combined with the suspicious timeline and complete lack of attribution by webstatus.dev, these findings strongly indicate unauthorized reuse of original code authored by Chris Singendonk.
some urls may have been changed or code moved or obfuscated or renamed, here along with various other places, we have the dates times urls contents and line by line comprairisons.
- if any sources need clarification please contat and I would be happy to provide the original details or references / copies .