The batteries-included full-stack framework for the AI era. Develop JS/TS web apps (React, Node.js, and Prisma) using declarative code that abstracts away complex full-stack features like auth, background jobs, RPC, email sending, end-to-end type safety, single-command deployment, and more.
This report summarizes scanner evidence for wasp-lang/wasp, a TypeScript project with 18,794 GitHub stars. SynthScan examined 590,469 lines of code across 3571 source files, recording 695 pattern matches distributed across 15 syntactic categories. The legacy adjusted pattern signal is 1.6 (Low pattern signal); it is not an authorship estimate.
Use the findings to ask whether maintainers can explain intent, verify dependencies, simplify unnecessary scaffolding, and focus review effort. Risk Payload v1 adds ownership, supply-chain, over-engineering, and review-effort vectors when available. These are prompts for human verification, not probabilities, security findings, or measured maintenance costs.
Use each vector to guide manual verification of the underlying findings.
Payload schema: 1.0.0 · Engine: 2.0.0 · Scoring: heuristic-density-v1 · Scan date: 2026-10-31.
Can maintainers explain intent, assumptions, and trade-offs? 586 finding(s).
Are imports declared and package/API names verified? 98 finding(s).
Are wrappers, guards, and repeated structures necessary? 200 finding(s).
Which changes need focused human review? 695 finding(s).
This chart tracks the legacy adjusted pattern score across scan runs. Changes can reflect source changes, scan coverage, or detector/scoring versions; they do not measure AI adoption or prove that a team refactored code. Compare runs only when their scoring versions are compatible. The dashed line tracks the raw pattern-hit count.
Groups findings by configured severity weight. Severity is not a confidence estimate, security rating, or proof that a package is missing. Verify imports against the project's manifests and inspect each finding in its local design context.
This horizontal bar chart shows where configured pattern scores accumulate across directories. Treat the bars as locations to inspect, not as evidence of authorship or code quality. Use the file-level findings to decide whether a directory needs a focused ownership, dependency, complexity, or review check.
The scanner identified 695 distinct pattern matches across 15 syntactic categories. Each entry below represents a discrete location in the source code where the engine recorded a detector match to inspect in context. Expand any category row to inspect the individual file paths, line numbers, code snippets, and the lexical context (CODE, COMMENT, or STRING) in which each match was detected.
Reading the findings table: The Severity column indicates the configured finding weight (CRITICAL / HIGH / MEDIUM / LOW). The Context column identifies whether the match occurred inside executable code, an inline comment, or a string literal — legacy comment-context matches receive a ×1.5 score weight. The ⚡ bolt icon marks clustered matches: three or more patterns within a 10-line window, each receiving an additional ×1.5 density multiplier under the legacy scoring model.
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/.claude/skills/notion-to-blog/SKILL.md | 11 | ### Step 1: Fetch the Notion page | COMMENT |
| LOW | web/.claude/skills/notion-to-blog/SKILL.md | 17 | ### Step 2: Parse the content | COMMENT |
| LOW | web/.claude/skills/notion-to-blog/SKILL.md | 39 | ### Step 3: Download and optimize images | COMMENT |
| LOW | web/.claude/skills/notion-to-blog/SKILL.md | 47 | ### Step 4: Create the MDX file | COMMENT |
| LOW | web/.claude/skills/notion-to-blog/SKILL.md | 70 | ### Step 5: Verify with the user | COMMENT |
| LOW | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 317 | // Step 1: Initiate resumable upload | COMMENT |
| LOW | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 341 | // Step 2: Upload the video file | COMMENT |
| LOW | web/docs/guides/debugging/local-network-testing.md | 21 | ## Step 1: Start Your App | COMMENT |
| LOW | web/docs/guides/debugging/local-network-testing.md | 29 | ## Step 2: Find Your Network URL | COMMENT |
| LOW | web/docs/guides/debugging/local-network-testing.md | 45 | ## Step 3: Tell Wasp the URLs Other Devices Will Use | COMMENT |
| LOW | web/docs/guides/debugging/local-network-testing.md | 63 | ## Step 4: Allow the Host in Vite Config | COMMENT |
| LOW | web/docs/guides/debugging/local-network-testing.md | 84 | ## Step 5: Test | COMMENT |
| LOW | web/docs/guides/debugging/db-studio-fly-io.md | 34 | ## Step 1: Get the Database Name | COMMENT |
| LOW | web/docs/guides/debugging/db-studio-fly-io.md | 52 | ## Step 2: Get the Database Password | COMMENT |
| LOW | web/docs/guides/debugging/db-studio-fly-io.md | 68 | ## Step 3: Open a Database Tunnel | COMMENT |
| LOW | web/docs/guides/debugging/db-studio-fly-io.md | 87 | ## Step 4: Configure the Database URL | COMMENT |
| LOW | web/docs/guides/debugging/db-studio-fly-io.md | 103 | ## Step 5: Run Database Studio | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/vps.md | 34 | ### Step 1: Connect to Your Server | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/vps.md | 44 | ### Step 2: Install Caddy | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/vps.md | 58 | ### Step 3: Set Up the Firewall | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/vps.md | 78 | ### Step 4: Install Docker | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/vps.md | 88 | ### Step 5: Set Up GitHub Deploy Key | COMMENT |
| LOW⚡ | web/docs/guides/deployment/self-hosted/vps.md | 104 | ### Step 6: Clone Your Repository | COMMENT |
| LOW⚡ | web/docs/guides/deployment/self-hosted/vps.md | 110 | ### Step 7: Install Node.js | COMMENT |
| LOW⚡ | web/docs/guides/deployment/self-hosted/vps.md | 120 | ### Step 8: Install Wasp CLI | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/vps.md | 146 | ### Step 9: Build the Application | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/vps.md | 155 | ### Step 10: Start the Database | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/vps.md | 183 | ### Step 11: Configure Your Domain | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/vps.md | 190 | ### Step 12: Start the Server | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/vps.md | 238 | ### Step 13: Build the Client | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/vps.md | 253 | ### Step 14: Configure Caddy | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/coolify.md | 33 | ### Step 1: Set Up Your Domain | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/coolify.md | 40 | ### Step 2: Create Coolify Resources | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/coolify.md | 72 | ### Step 3: Configure Server Environment Variables | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/coolify.md | 86 | ### Step 4: Create GitHub Action | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/coolify.md | 199 | ### Step 5: Configure GitHub Secrets | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/coolify.md | 222 | ### Step 6: Deploy | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/caprover.md | 33 | ### Step 1: Set Up Your Domain | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/caprover.md | 44 | ### Step 2: Create Caprover Apps | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/caprover.md | 74 | ### Step 3: Configure Server Environment Variables | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/caprover.md | 88 | ### Step 4: Enable GitHub Container Registry Access | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/caprover.md | 97 | ### Step 5: Create GitHub Action | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/caprover.md | 217 | ### Step 6: Configure GitHub Secrets | COMMENT |
| LOW | web/docs/guides/deployment/self-hosted/caprover.md | 239 | ### Step 7: Deploy | COMMENT |
| LOW⚡ | web/markdown-snapshots/llms-full.txt | 22090 | #### Step 6: Clone Your Repository | COMMENT |
| LOW⚡ | web/markdown-snapshots/llms-full.txt | 22096 | #### Step 7: Install Node.js | COMMENT |
| LOW⚡ | web/markdown-snapshots/llms-full.txt | 22106 | #### Step 8: Install Wasp CLI | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 19964 | ### Step 1: Get the Database Name | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 19982 | ### Step 2: Get the Database Password | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 19998 | ### Step 3: Open a Database Tunnel | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 20017 | ### Step 4: Configure the Database URL | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 20033 | ### Step 5: Run Database Studio | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 20068 | ### Step 1: Start Your App | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 20076 | ### Step 2: Find Your Network URL | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 20092 | ### Step 3: Tell Wasp the URLs Other Devices Will Use | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 20109 | ### Step 4: Allow the Host in Vite Config | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 20129 | ### Step 5: Test | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 21534 | #### Step 1: Set Up Your Domain | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 21545 | #### Step 2: Create Caprover Apps | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 21581 | #### Step 3: Configure Server Environment Variables | COMMENT |
| 234 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/sidebars.ts | 261 | function generateMigrationGuideLinks( | CODE |
| LOW | web/.claude/skills/crossposting/scripts/convert-mdx.ts | 64 | function createVideoWithCaptionRegex(): RegExp { | CODE |
| LOW | web/.claude/skills/crossposting/scripts/convert-mdx.ts | 329 | function absolutizeRootRelativeMarkdownLinks(md: string): string { | CODE |
| LOW | web/.claude/skills/crossposting/scripts/convert-mdx.ts | 429 | function stripImportsOutsideCodeFences(md: string): string { | CODE |
| LOW | web/.claude/skills/crossposting/scripts/convert-mdx.ts | 660 | function postProcessChunksForMedium(html: string): string { | CODE |
| LOW | web/docs/guides/integrations/custom-oauth.md | 197 | async function createUserFromSpotifyProfile( | CODE |
| LOW | web/markdown-snapshots/llms-full.txt | 19678 | async function createSocialLoginMigration( | CODE |
| LOW | web/markdown-snapshots/llms-full.txt | 22515 | async function createUserFromSpotifyProfile( | CODE |
| LOW | web/functions/_middleware.ts | 84 | function routeHasFileTypeExtension(pathname: string): boolean { | CODE |
| LOW | …_docs/version-0.26/guides/integrations/custom-oauth.md | 197 | async function createUserFromSpotifyProfile( | CODE |
| LOW | …_docs/version-0.24/guides/integrations/custom-oauth.md | 194 | async function createUserFromSpotifyProfile( | CODE |
| LOW | web/versioned_docs/version-0.12/migration-guide.md | 1311 | async function createSocialLoginMigration( | CODE |
| LOW | …_docs/version-0.25/guides/integrations/custom-oauth.md | 194 | async function createUserFromSpotifyProfile( | CODE |
| LOW | web/tutorial-actions-executor/tests/files.test.ts | 14 | function testGettingFileNameWithoutExtension( | CODE |
| LOW | web/tutorial-actions-executor/tests/actions/git.test.ts | 23 | function expectValidPatchNotToThrow(patch: string) { | CODE |
| LOW | web/tutorial-actions-executor/tests/actions/git.test.ts | 29 | function expectInvalidPatchToThrow(patch: string, errorMessage: string) { | CODE |
| LOW | …ns-executor/tests/extract-actions/astTraversal.test.ts | 89 | function createMockTutorialActionNode( | CODE |
| LOW | …ns-executor/tests/extract-actions/astTraversal.test.ts | 113 | function createMockNonTutorialActionNode(name: string): MdxJsxFlowElement { | CODE |
| LOW | …ns-executor/tests/extract-actions/astTraversal.test.ts | 129 | function testExtractingTutorialActionNodes( | CODE |
| LOW | …-executor/tests/extract-actions/fileOperations.test.ts | 9 | function testFilteringTutorialFileNames( | CODE |
| LOW | …ions-executor/tests/extract-actions/mdxParsing.test.ts | 40 | function testExtractingActionsThrows( | CODE |
| LOW | web/tutorial-actions-executor/src/editor.ts | 6 | export async function askToOpenTutorialAppInEditor( | CODE |
| LOW | web/tutorial-actions-executor/src/git.ts | 5 | export async function generatePatchFromAllChanges( | CODE |
| LOW | web/tutorial-actions-executor/src/git.ts | 20 | export async function findCommitSHAForExactMessage( | CODE |
| LOW | web/tutorial-actions-executor/src/git.ts | 70 | export async function generatePatchFromRevision( | CODE |
| LOW | web/tutorial-actions-executor/src/git.ts | 103 | export async function moveLastCommitChangesToStaging( | CODE |
| LOW | web/tutorial-actions-executor/src/files.ts | 3 | export function getFileNameWithoutExtension(filePath: string): string { | CODE |
| LOW | web/tutorial-actions-executor/src/actions/git.ts | 76 | export async function askUserToEditAndCreatePatch({ | CODE |
| LOW | web/tutorial-actions-executor/src/actions/git.ts | 103 | export async function createBranchFromActionCommit({ | CODE |
| LOW | …tions-executor/src/commands/edit-patch-action/index.ts | 123 | async function extractCommitsIntoPatches( | CODE |
| LOW | …actions-executor/src/extract-actions/fileOperations.ts | 18 | export function filterValidTutorialFileNames(fileNames: string[]): string[] { | CODE |
| LOW | …actions-executor/src/extract-actions/fileOperations.ts | 30 | export function sortFileNamesByNumberedPrefix(fileNames: string[]): string[] { | CODE |
| LOW | …l-actions-executor/src/extract-actions/astTraversal.ts | 15 | export function extractTutorialActionNodes(ast: Root): TutorialActionNode[] { | CODE |
| LOW | …tutorial-actions-executor/src/extract-actions/index.ts | 6 | export async function getActionsFromTutorialFiles( | CODE |
| LOW | …al-actions-executor/src/extract-actions/nodeMapping.ts | 11 | export function mapTutorialActionNodeToAction( | CODE |
| LOW | web/src/plugins/cloudflare-redirects.ts | 31 | export default function cloudflareRedirectsPlugin( | CODE |
| LOW | …src/plugins/llm-files/markdown-docs/markdown-routes.ts | 8 | export function htmlFileRelPathHasMarkdownVariant( | CODE |
| LOW | web/src/plugins/llm-files/markdown-docs/index.ts | 32 | export async function convertValidHtmlFilesToMarkdownDocs( | CODE |
| LOW | web/src/plugins/llm-files/markdown-docs/index.ts | 85 | function buildMarkdownDocsIndexHeader(baseUrl: string): string { | CODE |
| LOW | web/src/plugins/llm-files/markdown-docs/index.ts | 93 | async function findConvertibleHtmlFileRelPaths( | CODE |
| LOW | …lugins/llm-files/markdown-docs/html-to-md-processor.ts | 21 | export function createDocusaurusHtmlToMarkdownProcessor( | CODE |
| LOW | …s/docusaurus/rehype-annotate-custom-heading-anchors.ts | 35 | export function rehypeAnnotateCustomHeadingAnchors(): ( | CODE |
| LOW | …kdown-docs/docusaurus/rehype-reduce-docusaurus-page.ts | 29 | export function rehypeReduceDocusaurusPageToValidMarkdownContent( | CODE |
| LOW | …kdown-docs/docusaurus/rehype-reduce-docusaurus-page.ts | 51 | function findMarkdownContentContainer(root: hast.Root): hast.Element { | CODE |
| LOW | …kdown-docs/docusaurus/rehype-reduce-docusaurus-page.ts | 99 | function isDocusaurusHeadingHashLink(node: hast.Element) { | CODE |
| LOW | …down-docs/docusaurus/handlers/docusaurus-admonition.ts | 36 | export function docusaurusAdmonitionToMdast( | CODE |
| LOW | …down-docs/docusaurus/handlers/docusaurus-admonition.ts | 84 | function detectAdmonitionCustomTitle(admonition: hast.Element): string | null { | CODE |
| LOW | …down-docs/docusaurus/handlers/docusaurus-code-block.ts | 40 | export function docusaurusCodeBlockToMdast( | CODE |
| LOW | …ns/llm-files/generate-llm-files/versioned-llm-files.ts | 15 | export async function generateVersionedLlmFiles( | CODE |
| LOW | …ns/llm-files/generate-llm-files/versioned-llm-files.ts | 119 | async function generateVersionedLlmsFullTxt( | CODE |
| LOW | …ns/llm-files/generate-llm-files/versioned-llm-files.ts | 142 | async function generateLatestVersionLlmsFullTxt( | CODE |
| LOW | …ns/llm-files/generate-llm-files/versioned-llm-files.ts | 160 | function buildLatestVersionFullDocsHeader(context: LlmFilesContext): string { | CODE |
| LOW | …ns/llm-files/generate-llm-files/versioned-llm-files.ts | 172 | function buildFullDocsIndexSection(context: LlmFilesContext): string { | CODE |
| LOW | …b/src/plugins/llm-files/generate-llm-files/llms-txt.ts | 50 | function buildLlmFilesIndexSection(context: LlmFilesContext): string { | CODE |
| LOW | …src/plugins/llm-files/generate-llm-files/docs-index.ts | 75 | export function buildLlmFilesMarkdownDocsIndex( | CODE |
| LOW | …src/plugins/llm-files/generate-llm-files/docs-index.ts | 227 | function extractApiDocsPackageName(docId: string): string | null { | CODE |
| LOW | …plugins/llm-files/generate-llm-files/adapt-markdown.ts | 16 | export function adaptMarkdownForLlmsFullFiles(markdown: string): string { | CODE |
| LOW | …plugins/llm-files/generate-llm-files/adapt-markdown.ts | 27 | function remarkAdaptMarkdownForLlmsFullFiles(): (tree: mdast.Root) => void { | CODE |
| LOW | web/src/remark/search-and-replace.ts | 35 | function getWaspVersionFromFilePath(filePath: string): string | undefined { | CODE |
| LOW | web/src/remark/util/code-blocks.ts | 32 | export function codeBlockMetaStringFromMap( | CODE |
| 129 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | web/docs/features/email.md | 53 | name: "John Doe", | CODE |
| LOW | web/docs/features/email.md | 246 | name: "John Doe", | CODE |
| LOW | web/docs/features/auth/hooks.md | 290 | name: "John Doe", | CODE |
| LOW | web/docs/features/auth/hooks.md | 313 | name: "John Doe", | CODE |
| LOW | web/markdown-snapshots/llms-full.txt | 9782 | name: "John Doe", | CODE |
| LOW | web/markdown-snapshots/llms-full.txt | 10542 | name: "John Doe", | CODE |
| LOW | web/markdown-snapshots/llms-full.txt | 10732 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.11.8/advanced/email.md | 70 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.11.8/advanced/email.md | 88 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.11.8/advanced/email.md | 288 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.11.8/advanced/email.md | 306 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.20/advanced/email/email.md | 47 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.20/advanced/email/email.md | 215 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.20/auth/auth-hooks.md | 308 | name: 'John Doe', | CODE |
| LOW | web/versioned_docs/version-0.20/auth/auth-hooks.md | 341 | name: 'John Doe', | CODE |
| LOW | …/versioned_docs/version-0.20/general/wasp-ts-config.md | 205 | defaultFrom: { email: 'test@test.com' } | CODE |
| LOW | web/versioned_docs/version-0.18/advanced/email/email.md | 47 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.18/advanced/email/email.md | 206 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.18/auth/auth-hooks.md | 308 | name: 'John Doe', | CODE |
| LOW | web/versioned_docs/version-0.18/auth/auth-hooks.md | 341 | name: 'John Doe', | CODE |
| LOW | …/versioned_docs/version-0.18/general/wasp-ts-config.md | 210 | defaultFrom: { email: 'test@test.com' } | CODE |
| LOW | web/versioned_docs/version-0.16/advanced/email/email.md | 68 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.16/advanced/email/email.md | 86 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.16/advanced/email/email.md | 328 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.16/advanced/email/email.md | 346 | name: "John Doe", | CODE |
| LOW | …/versioned_docs/version-0.16/general/wasp-ts-config.md | 215 | defaultFrom: { email: 'test@test.com' } | CODE |
| LOW | web/versioned_docs/version-0.17/advanced/email/email.md | 47 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.17/advanced/email/email.md | 206 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.17/auth/auth-hooks.md | 308 | name: 'John Doe', | CODE |
| LOW | web/versioned_docs/version-0.17/auth/auth-hooks.md | 341 | name: 'John Doe', | CODE |
| LOW | …/versioned_docs/version-0.17/general/wasp-ts-config.md | 211 | defaultFrom: { email: 'test@test.com' } | CODE |
| LOW | web/versioned_docs/version-0.19/advanced/email/email.md | 47 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.19/advanced/email/email.md | 211 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.19/auth/auth-hooks.md | 308 | name: 'John Doe', | CODE |
| LOW | web/versioned_docs/version-0.19/auth/auth-hooks.md | 341 | name: 'John Doe', | CODE |
| LOW | …/versioned_docs/version-0.19/general/wasp-ts-config.md | 205 | defaultFrom: { email: 'test@test.com' } | CODE |
| LOW | web/versioned_docs/version-0.26/features/email.md | 53 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.26/features/email.md | 246 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.26/features/auth/hooks.md | 290 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.26/features/auth/hooks.md | 313 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.21/advanced/email/email.md | 47 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.21/advanced/email/email.md | 215 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.21/auth/auth-hooks.md | 308 | name: 'John Doe', | CODE |
| LOW | web/versioned_docs/version-0.21/auth/auth-hooks.md | 341 | name: 'John Doe', | CODE |
| LOW | …/versioned_docs/version-0.21/general/wasp-ts-config.md | 205 | defaultFrom: { email: 'test@test.com' } | CODE |
| LOW | web/versioned_docs/version-0.24/advanced/email.md | 50 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.24/advanced/email.md | 215 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.24/auth/auth-hooks.md | 286 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.24/auth/auth-hooks.md | 309 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.23/advanced/email/email.md | 47 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.23/advanced/email/email.md | 215 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.23/auth/auth-hooks.md | 308 | name: 'John Doe', | CODE |
| LOW | web/versioned_docs/version-0.23/auth/auth-hooks.md | 341 | name: 'John Doe', | CODE |
| LOW | …/versioned_docs/version-0.23/general/wasp-ts-config.md | 205 | defaultFrom: { email: 'test@test.com' } | CODE |
| LOW | web/versioned_docs/version-0.15/advanced/email/email.md | 68 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.15/advanced/email/email.md | 86 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.15/advanced/email/email.md | 328 | name: "John Doe", | CODE |
| LOW | web/versioned_docs/version-0.15/advanced/email/email.md | 346 | name: "John Doe", | CODE |
| LOW | …/versioned_docs/version-0.15/general/wasp-ts-config.md | 216 | defaultFrom: { email: 'test@test.com' } | CODE |
| LOW | web/versioned_docs/version-0.12/advanced/email/email.md | 68 | name: "John Doe", | CODE |
| 27 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | mise.toml | 21 | # Use the same versions of HLint and Stan as the ones used inside the HLS binary | COMMENT |
| LOW | web/redirects.ts | 121 | // `resources/` and `site/` folders. They keep external links to the old image | COMMENT |
| LOW | web/docs/features/auth/entities.md | 641 | // await User.create({ | COMMENT |
| LOW | web/static/robots.txt | 1 | # As a condition of accessing this website, you agree to abide by the following | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 9521 | providerData, | COMMENT |
| LOW | web/markdown-snapshots/llms-full.txt | 18021 | // Types for jest-dom are not recognized automatically and Typescript complains | COMMENT |
| LOW | …/versioned_docs/version-0.20/auth/entities/entities.md | 621 | }) | COMMENT |
| LOW | …/versioned_docs/version-0.20/auth/entities/entities.md | 701 | hashedPassword: args.password, | COMMENT |
| LOW | …/versioned_docs/version-0.20/general/wasp-ts-config.md | 161 | // email: { | COMMENT |
| LOW | …/versioned_docs/version-0.18/auth/entities/entities.md | 621 | }) | COMMENT |
| LOW | …/versioned_docs/version-0.18/auth/entities/entities.md | 701 | hashedPassword: args.password, | COMMENT |
| LOW | …/versioned_docs/version-0.18/general/wasp-ts-config.md | 161 | gitHub: { | COMMENT |
| LOW | …/versioned_docs/version-0.16/auth/entities/entities.md | 621 | }) | COMMENT |
| LOW | …/versioned_docs/version-0.16/auth/entities/entities.md | 701 | hashedPassword: args.password, | COMMENT |
| LOW | …/versioned_docs/version-0.17/auth/entities/entities.md | 621 | }) | COMMENT |
| LOW | …/versioned_docs/version-0.17/auth/entities/entities.md | 701 | hashedPassword: args.password, | COMMENT |
| LOW | …/versioned_docs/version-0.17/general/wasp-ts-config.md | 161 | }, | COMMENT |
| LOW | …/versioned_docs/version-0.19/auth/entities/entities.md | 621 | }) | COMMENT |
| LOW | …/versioned_docs/version-0.19/auth/entities/entities.md | 701 | hashedPassword: args.password, | COMMENT |
| LOW | …/versioned_docs/version-0.19/general/wasp-ts-config.md | 161 | // email: { | COMMENT |
| LOW | …/versioned_docs/version-0.26/features/auth/entities.md | 641 | // await User.create({ | COMMENT |
| LOW | …/versioned_docs/version-0.21/auth/entities/entities.md | 621 | }) | COMMENT |
| LOW | …/versioned_docs/version-0.21/auth/entities/entities.md | 701 | hashedPassword: args.password, | COMMENT |
| LOW | …/versioned_docs/version-0.21/general/wasp-ts-config.md | 161 | // email: { | COMMENT |
| LOW | …/versioned_docs/version-0.24/auth/entities/entities.md | 641 | // identities: { | COMMENT |
| LOW | …/versioned_docs/version-0.24/auth/entities/entities.md | 701 | await createUser( | COMMENT |
| LOW | …/versioned_docs/version-0.23/auth/entities/entities.md | 621 | }) | COMMENT |
| LOW | …/versioned_docs/version-0.23/auth/entities/entities.md | 701 | hashedPassword: args.password, | COMMENT |
| LOW | …/versioned_docs/version-0.23/general/wasp-ts-config.md | 161 | // email: { | COMMENT |
| LOW | …/versioned_docs/version-0.15/auth/entities/entities.md | 621 | COMMENT | |
| LOW | …/versioned_docs/version-0.15/auth/entities/entities.md | 701 | }) | COMMENT |
| LOW | …/versioned_docs/version-0.12/auth/entities/entities.md | 321 | providerId, | COMMENT |
| LOW | …/versioned_docs/version-0.12/auth/entities/entities.md | 401 | await createUser( | COMMENT |
| LOW | …/versioned_docs/version-0.13/auth/entities/entities.md | 321 | providerId, | COMMENT |
| LOW | …/versioned_docs/version-0.13/auth/entities/entities.md | 401 | await createUser( | COMMENT |
| LOW | web/versioned_docs/version-0.14/migration-guide.md | 141 | // This is needed to properly support Vitest testing with jest-dom matchers. | COMMENT |
| LOW | …/versioned_docs/version-0.14/auth/entities/entities.md | 621 | COMMENT | |
| LOW | …/versioned_docs/version-0.14/auth/entities/entities.md | 701 | }) | COMMENT |
| LOW | …/versioned_docs/version-0.22/auth/entities/entities.md | 621 | }) | COMMENT |
| LOW | …/versioned_docs/version-0.22/auth/entities/entities.md | 701 | hashedPassword: args.password, | COMMENT |
| LOW | …/versioned_docs/version-0.22/general/wasp-ts-config.md | 161 | // email: { | COMMENT |
| LOW | …/versioned_docs/version-0.25/auth/entities/entities.md | 641 | // identities: { | COMMENT |
| LOW | …/versioned_docs/version-0.25/auth/entities/entities.md | 701 | await createUser( | COMMENT |
| LOW | web/src/lib/analytics.ts | 1 | // The markup declares analytics events with `data-track-*` attributes. | COMMENT |
| LOW | examples/ask-the-documents/src/hero.ts | 1 | import { heroui } from "@heroui/react"; | COMMENT |
| LOW | examples/kitchen-sink/src/vite-env.d.ts | 1 | /// <reference types="vite/client" /> | COMMENT |
| LOW | examples/tutorials/TodoAppTs/src/vite-env.d.ts | 1 | /// <reference types="vite/client" /> | COMMENT |
| LOW | examples/tutorials/TodoApp/src/vite-env.d.ts | 1 | /// <reference types="vite/client" /> | COMMENT |
| LOW | packages/studio/client/src/hero.ts | 1 | import { heroui } from "@heroui/react"; | COMMENT |
| LOW | packages/studio/client/src/Flow.tsx | 41 | const getLayoutedElements = (nodes: Node[], edges: Edge[]) => { | COMMENT |
| LOW | packages/deploy/tsconfig.json | 1 | { | COMMENT |
| LOW | packages/deploy/tsconfig.json | 21 | // "jsxImportSource": "", /* Specify module specifier used to import the JSX factory func | COMMENT |
| LOW | packages/deploy/tsconfig.json | 41 | /* JavaScript Support */ | COMMENT |
| LOW | packages/deploy/tsconfig.json | 61 | // "inlineSources": true, /* Include source code in the sourcemaps inside the emitted Jav | COMMENT |
| LOW | packages/deploy/tsconfig.json | 81 | // "strictNullChecks": true, /* When type checking, take into account 'null' and 'undefined' | COMMENT |
| LOW | packages/cli/bin.js | 201 | } | COMMENT |
| LOW | packages/libs/sdk-core/src/utils/types.ts | 1 | // This is a helper type used exclusively for DX purposes. It's a No-op for the | COMMENT |
| LOW | packages/libs/sdk-core/src/browser/auth/session.ts | 81 | // We need to invalidate queries after login in order to get the correct user | COMMENT |
| LOW | …ges/libs/sdk-core/src/node/vite/plugins/validateEnv.ts | 21 | // We validate just before any artifacts are built. | COMMENT |
| LOW | …ges/libs/sdk-core/src/node/vite/plugins/validateEnv.ts | 41 | // the temporary server anyway. | COMMENT |
| 26 more matches not shown… | ||||
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | web/docs/deployment/local-testing.md | 29 | wasp build start --server-env DATABASE_URL=<your-database-url> --server-env JWT_SECRET=<your-jwt-secret> | CODE |
| HIGH | web/markdown-snapshots/llms-full.txt | 13966 | wasp build start --server-env DATABASE_URL=<your-database-url> --server-env JWT_SECRET=<your-jwt-secret> | CODE |
| HIGH | …ersioned_docs/version-0.20/deployment/local-testing.md | 25 | wasp build start --server-env DATABASE_URL=<your-database-url> --server-env JWT_SECRET=<your-jwt-secret> | CODE |
| HIGH | …ersioned_docs/version-0.18/deployment/local-testing.md | 25 | wasp build start --server-env DATABASE_URL=<your-database-url> --server-env JWT_SECRET=<your-jwt-secret> | CODE |
| HIGH | …ersioned_docs/version-0.19/deployment/local-testing.md | 25 | wasp build start --server-env DATABASE_URL=<your-database-url> --server-env JWT_SECRET=<your-jwt-secret> | CODE |
| HIGH | …ersioned_docs/version-0.26/deployment/local-testing.md | 29 | wasp build start --server-env DATABASE_URL=<your-database-url> --server-env JWT_SECRET=<your-jwt-secret> | CODE |
| HIGH | …ersioned_docs/version-0.21/deployment/local-testing.md | 25 | wasp build start --server-env DATABASE_URL=<your-database-url> --server-env JWT_SECRET=<your-jwt-secret> | CODE |
| HIGH | …ersioned_docs/version-0.24/deployment/local-testing.md | 25 | wasp build start --server-env DATABASE_URL=<your-database-url> --server-env JWT_SECRET=<your-jwt-secret> | CODE |
| HIGH | …ersioned_docs/version-0.23/deployment/local-testing.md | 25 | wasp build start --server-env DATABASE_URL=<your-database-url> --server-env JWT_SECRET=<your-jwt-secret> | CODE |
| HIGH | …ersioned_docs/version-0.22/deployment/local-testing.md | 25 | wasp build start --server-env DATABASE_URL=<your-database-url> --server-env JWT_SECRET=<your-jwt-secret> | CODE |
| HIGH | …ersioned_docs/version-0.25/deployment/local-testing.md | 25 | wasp build start --server-env DATABASE_URL=<your-database-url> --server-env JWT_SECRET=<your-jwt-secret> | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 39 | // ─── Configuration ────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 57 | // ─── Types ────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 79 | // ─── Helpers ──────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 104 | // ─── OAuth: capture authorization code via local HTTP server ──────────────── | COMMENT |
| MEDIUM | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 139 | // ─── authorize() — interactive OAuth flow ─────────────────────────────────── | COMMENT |
| MEDIUM | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 201 | // ─── Refresh access token ─────────────────────────────────────────────────── | COMMENT |
| MEDIUM | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 284 | // ─── uploadVideo() — resumable upload ─────────────────────────────────────── | COMMENT |
| MEDIUM | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 381 | // ─── CLI ──────────────────────────────────────────────────────────────────── | COMMENT |
| MEDIUM | waspc/.stylish-haskell.yaml | 2 | # ================================== | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | web/.claude/skills/geo-fundamentals/SKILL.md | 43 | ## 3. RAG Retrieval Factors | COMMENT |
| MEDIUM | web/src/components/FeaturesExplorer.tsx | 706 | source: `$ wasp new my-app # scaffold a new full-stack app | CODE |
| MEDIUM | examples/ask-the-documents/README.md | 1 | # Ask The Documents (Embeddings / RAG / ChatGPT) with Wasp & PG Vector | COMMENT |
| MEDIUM | .github/workflows/ci.yaml | 36 | # orchestrate the CI process. We ignore the zizmor warnings since this workflow | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | web/static/robots.txt | 16 | # include providing AI-generated search summaries. | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| HIGH | ….claude/skills/geo-fundamentals/scripts/geo_checker.py | 28 | except AttributeError: | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 317 | // Step 1: Initiate resumable upload | COMMENT |
| LOW | …/.claude/skills/crossposting/scripts/upload-youtube.ts | 341 | // Step 2: Upload the video file | COMMENT |
| LOW | …ges/deploy/src/providers/railway/railwayProject/cli.ts | 79 | // Sometimes linking fails silently, so we need to check if the project | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ….claude/skills/geo-fundamentals/scripts/geo_checker.py | 65 | # Check if it's in a pages/app directory (Next.js, etc.) | COMMENT |
| LOW | ….claude/skills/geo-fundamentals/scripts/geo_checker.py | 92 | # Check if it's likely a page | COMMENT |
| LOW | ….claude/skills/geo-fundamentals/scripts/geo_checker.py | 251 | # Print results | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | …amples/kitchen-sink/src/features/auth/pages/Signup.tsx | 25 | 👉 Don't forget to press the button below to submit the form. | CODE |
| LOW | …kages/deploy/src/providers/fly/commands/setup/setup.ts | 63 | `Don't forget to create your database by running "${getFullCommandName(createFlyDbCommand)}".`, | CODE |
| LOW | …deploy/src/providers/fly/commands/createDb/createDb.ts | 89 | `Don't forget to deploy your app by running "${getFullCommandName(flyDeployCommand)}".`, | CODE |
| LOW | …ink-golden/wasp-app/src/features/auth/pages/Signup.tsx | 25 | 👉 Don't forget to press the button below to submit the form. | CODE |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | packages/spec/src/spec/appAnalyzer.ts | 51 | // TODO: Make this more robust — structural duck-typing accepts any object with | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| MEDIUM | .github/workflows/ci-npm-package-test.yaml | 64 | # Create a test project to install into | COMMENT |
| Severity | File | Line | Snippet | Context |
|---|---|---|---|---|
| LOW | ….claude/skills/geo-fundamentals/scripts/geo_checker.py | 103 | except Exception as e: | CODE |