Taskade
App Quality Report
Powered by Testers.AI
B-82%
Quality Score
7
Pages
159
Issues
8.1
Avg Confidence
7.9
Avg Priority
62 Critical75 High21 Medium1 Low
Testers.AI
>_ Testers.AI AI Analysis

Taskade was tested and 159 issues were detected across the site. The most critical finding was: CSP is in report-only mode; external scripts from multiple domains are not enforced. Issues span Security, Performance, A11y, Other categories. Persona feedback rated Visual highest (9/10) and Accessibility lowest (6/10).

Qualitative Quality
Taskade
Category Avg
Best in Category
Issue Count by Type
Content
29
UX
28
Security
28
A11y
22
Pages Tested · 7 screenshots
Detected Issues · 159 total
1
CSP is in report-only mode; external scripts from multiple domains are not enforced
CRIT P9
Conf 9/10 SecurityOther
Prompt to Fix
As a frontend security engineer, implement an enforced Content-Security-Policy: - Set header Content-Security-Policy: default-src 'self'; script-src 'self' https://ajax.cloudflare.com https://challenges.cloudflare.com https://js.driftt.com https://widget.drift.com https://www.googletagmanager.com https://www.google-analytics.com; include script-src-elem; set object-src 'none'; remove unsafe-inline and unsafe-eval or replace with nonce/hash-based allowances for any required inline scripts; apply Subresource Integrity (SRI) for all external scripts when possible; audit and minimize external script dependencies (PostHog, surveys, analytics) and host only on trusted domains; ensure CSP is delivered via HTTP response header (not meta) and test across environments to ensure no regressions.
Why it's a bug
The Content Security Policy is configured as report-only, so violations are logged but not blocked. Logs show script-src violations when loading third-party scripts (e.g., PostHog, Drift) from domains not strictly whitelisted. This creates an attack surface where malicious or compromised third-party scripts could execute in-browser, risking XSS, data exfiltration, or session hijacking. Enforcement is needed to prevent execution of untrusted scripts.
Why it might not be a bug
If this is intentional for staging/observability, it is not a functional defect. However, from a security perspective, non-enforced CSP is a known risk and should be migrated to enforce mode to reduce attack surface.
Suggested Fix
1) Change CSP from report-only to enforce mode via HTTP header: Content-Security-Policy: default-src 'self'; script-src 'self' https://ajax.cloudflare.com https://challenges.cloudflare.com https://js.driftt.com https://widget.drift.com https://www.googletagmanager.com https://www.google-analytics.com; add script-src-elem; remove 'unsafe-inline' and 'unsafe-eval' or replace with nonce/hash-based allowing inline scripts only when necessary; 2) Prefer hosting critical third-party scripts on trusted domains or load them with Subresource Integrity (SRI) and matching integrity attributes; 3) Ensure all CSP headers are delivered by the server (not meta tags) and test in environments with various user flows; 4) Audit and prune unnecessary external scripts (PostHog, surveys, analytics) unless strictly required.
Why Fix
Enforcing CSP reduces opportunities for injected or compromised scripts to run, mitigates XSS and data leakage risks, and strengthens overall application security against supply-chain and reflection-based attacks.
Route To
Web Platform Security Engineer
Page
Tester
Sharon · Security Console Log Analyzer
Technical Evidence
Console: [INFO] Loading the script 'https://us-assets.i.posthog.com/array/phc_6eC2U3HVeurZjP15Q3yFLkkugQ1cviGuI8bDizB8T1n/config.js' violates the following Content Security Policy directive: "script-src 'self' 'unsafe-eval' 'unsafe-inline' https://ajax.cloudflare.com https://challenges.cloudflare.com https://js.driftt.com https://widget.drift.com https://www.googletagmanager.com https://www.google-analytics.com https://ssl.google-analytics.com https://checkout.stripe.com https://js.stripe.com https://www.youtube.com https://player.vimeo.com https://fast.wistia.com https://r.wdfl.co https://public.profitwell.com https://cdn.firstpromoter.com https://canny.io https://pa.taskade.com https://unicorn.taskade.workers.dev https://static.cloudflareinsights.com". Note that 'script-src-elem' was not explicitly set, so 'script-src' is used as a fallback. The policy is report-only, so the violation has been logged but no further action has been taken.
Network: Connecting to 'https://us.i.posthog.com/flags/?v=2&config=true&ip=0&_=1774475013086&ver=1.347.2&compression=base64' violates CSP connect-src directive; The policy is report-only, so no action taken. Also connects to Google Analytics collection endpoints which violate connect-src in the same report-only manner.
2
Unconsented Google Tag Manager tracking script loaded (gtag.js)
CRIT P9
Conf 9/10 Other
Prompt to Fix
Add a consent-gated loading mechanism for Google Tag Manager. Do not load https://www.googletagmanager.com/gtag/js?id=G-WWJTNN1SFE until the user has given explicit consent to tracking. After consent, initialize GTM with dataLayer events that exclude PII and enable IP anonymization. Review GTM configuration to avoid sending user identifiers; ensure events are minimal and privacy-preserving.
Why it's a bug
The page loads a third-party tracking script from Google Tag Manager (gtag/js) without clear evidence of user consent gating in the captured activity. This enables potential cross-site user tracking and data collection by a third party, which may violate privacy regulations and user expectations.
Why it might not be a bug
Analytics scripts are common for product insights; if a robust consent banner and data minimization controls exist elsewhere, this may be acceptable. However, the provided activity log does not show consent gating.
Suggested Fix
Introduce explicit user consent gating before loading Google Tag Manager. Lazy-load the GTM script only after user consents to tracking, or provide a clearly visible opt-out. Configure GTM to anonymize IP addresses and minimize data collected (no PII). Ensure no user-identifiable data is sent via dataLayer without consent.
Why Fix
Reducing privacy risk, increasing user trust, and helping comply with privacy laws (e.g., GDPR/CCPA) by ensuring tracking only occurs with consent and minimal data collection.
Route To
Frontend Engineer / Privacy Engineer
Page
Tester
Pete · Privacy Networking Analyzer
Technical Evidence
Network: https://www.googletagmanager.com/gtag/js?id=G-WWJTNN1SFE
3
Exposure of Google Analytics client ID in console/network logs
CRIT P9
Conf 9/10 Other
Prompt to Fix
Actionable prompt: In the analytics integration code, ensure that no client-side tracking identifiers (cid, tid) or raw page data (dl, dt, etc.) are logged to the console or included in error reports. Implement a privacy-safe logger that redacts analytics parameters before logging. For example, replace cid with [redacted] and strip query parameters to only show event names. Add a unit/integration test that asserts logs do not contain cid or tid. Enable analytics IP anonymization where possible and centralize log sanitization in a shared utility used by all analytics calls.
Why it's a bug
The Google Analytics client ID (cid) is a persistent tracking identifier used to correlate user sessions across visits. It is observed in the console/network logs as part of analytics requests (e.g., cid=617823860.1774475013). Exposing this identifier in logs can enable profiling or cross-session tracking if logs are captured, shared, or accessed by unintended parties. This constitutes a privacy risk and potential regulatory concern.
Why it might not be a bug
cid is a standard analytics token and not directly PII. In many setups, this value is handled by analytics services and not treated as sensitive. However, leaking it via console/network logs increases the chance of exposure and misuse, especially if logs are collected or exposed beyond the intended debugging context.
Suggested Fix
Do not log or expose analytics request URLs or identifiers (such as cid, tid) in console or error reports. Implement a privacy-safe logger that redacts tracking identifiers before printing; use a sanitizer like redactAnalyticsParams(url) to mask cid, tid, and other sensitive query parameters. Consider enabling IP anonymization and limiting diagnostic data sent to analytics services. Audit and sanitize all console/network log statements that reference analytics endpoints.
Why Fix
Fixing this reduces the risk of cross-session profiling and potential data leakage, supporting user privacy and regulatory compliance (e.g., GDPR/CCPA). It also aligns with best practices for secure debugging and logging.
Route To
privacy_engineer
Page
Tester
Pete · Privacy Console Log Analyzer
Technical Evidence
Console: [INFO] Connecting to 'https://analytics.google.com/g/collect?v=2&tid=G-WWJTNN1SFE&gtm=45je63o0v879630057za200zd879630057&_p=1774475013077&_gaz=1&gcd=13l3l3l3l1l1&npa=0&dma=0&cid=617823860.1774475013&ul=en-us&sr=800x600&uaa=&uab=&uafvl=&uamb=0&uam=&uap=&uapv=&uaw=0&are=1&frm=0&pscdl=noapi&_eu=AAAAAGA&_s=1&tag_exp=103116026~103200004~115938465~115938469~116024733~117484252~117884344~118199988&sid=1774475013&sct=1&seg=0&dl=https%3A%2F%2Fwww.taskade.com%2F&dt=AI%20App%20Builder%3A%20Vibe%20Code%20Apps%2C%20AI%20Agents%20%26%20Workflow%20Automations%20%7C%20Taskade&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&tfd=912' violates the following Content Security Policy directive: "connect-src 'self' https://www.google-analytics.com https://*.googleapis.com https://api.rudderlabs.com https://hosted.rudderlabs.com https://rudderstack.taskade.cloud https://api.stripe.com https://checkout.stripe.com https://sentry.io wss: https://cn2bi8ujy8.execute-api.us-east-1.amazonaws.com https://taskade-files.s3.us-east-1.amazonaws.com https://files.taskade.com https://vimeo.com https://fast.wistia.com https://*.loom.com https://www2.profitwell.com https://api.canny.io https://companion.taskade.com"
Network: https://analytics.google.com/g/collect?v=2&tid=G-WWJTNN1SFE&gtm=45je63o0v879630057za200zd879630057&_p=1774475013077&_gaz=1&gcd=13l3l3l3l1l1&npa=0&dma=0&cid=617823860.1774475013&ul=en-us&sr=800x600&uaa=&uab=&uafvl=&uamb=0&uam=&uap=&uapv=&uaw=0&are=1&frm=0&pscdl=noapi&_eu=AAAAAGA&_s=1&tag_exp=103116026~103200004~115938465~115938469~116024733~117484252~117884344~118199988&sid=1774475013&sct=1&seg=0&dl=https%3A%2F%2Fwww.taskade.com%2F&dt=AI%20App%20Builder%3A%20Vibe%20Code%20Apps%2C%20AI%20Agents%20%26%20Workflow%20Automations%20%7C%20Taskade&en=page_view&_fv=1&_nsi=1&_ss=1&_ee=1&tfd=912
+54
54 more issues detected  View all →
Exposed Sentry ingestion key in URL query (sentry_key)
Credentials exposed in URL query parameter for 3rd-party scr...
Exposed ProfitWell auth token in client-side URL parameter
and 51 more...
Unlock All 159 Issues
You're viewing the top 3 issues for Taskade.
Sign up at Testers.AI to access the full report with all 159 detected issues, detailed fixes, and continuous monitoring.
Sign Up at Testers.AI or let us run the tests for you