Watchtower-Course-Project

External Monitored Test App Separation Plan

Status: Planning only
Sprint: 2
Related docs: API Contract v1, Event Schema v1


Overview

WatchTower is meant to monitor external websites through its SDK, not only demo pages that live inside the same repository.

For now, the repository keeps local and hosted demo pages inside src/prototype_2/ so the team can develop, test, and show the prototype quickly. Later, we should separate the monitored test app from the WatchTower repo to better reflect real usage.


Current In-Repo Demo Usage

The current prototype includes:

This setup is useful right now because it:


Why Separate the Test App Later

A separate monitored test app would better demonstrate the real WatchTower product flow:

  1. An external site loads the WatchTower SDK
  2. The SDK captures errors, performance data, and feedback events
  3. Events are sent to the WatchTower API
  4. The dashboard displays the monitored activity

This would make the demo more realistic and show that WatchTower can observe another application, not just pages inside its own repository.


Separation Options

Option 1: Separate Test App Repository

Create a second repository for a small external demo website that imports or links the WatchTower SDK.

Pros

Cons

Option 2: Separately Hosted Test Site

Keep the app simple, but host it independently from the WatchTower dashboard.

Pros

Cons


Prerequisites Before Separation

Before moving the test app out of the main repository, we should have:

These prerequisites reduce the chance of separating too early and creating extra rework.


Risks


Recommendation

Do not separate the monitored test app during the current sprint.

For now, continue using the in-repo demo setup for development, testing, and prototype iteration. Once the SDK, API flow, and dashboard behavior are stable, move to a separate monitored test app in a later sprint.

Recommended execution timing: Sprint 3 or later, depending on prototype stability.


Conclusion

Keeping the demo app inside the repository is the right short-term choice for speed and simplicity. Separating it later will make the WatchTower demo more realistic and better aligned with the product goal of monitoring external websites.


Addendum: Prototype 3 External Test App

The external monitored test app has been created for Prototype 3.

The test app is hosted on GitHub Pages and sends telemetry to the Render-hosted Prototype 3 backend. This validates the intended external monitoring flow:

  1. A separately hosted site loads the WatchTower SDK
  2. The SDK captures events from that external site
  3. Events are sent to the deployed Prototype 3 backend on Render
  4. The Prototype 3 dashboard displays the monitored activity

This changes the separation plan from a future recommendation into an implemented Prototype 3 integration path.