PageSourceSearch

https://brevwick.dev/docs/sdk

html brevwick.dev collected 2026-10-05 06:56:40 UTC 78,570 bytes, 2 lines download raw bytes

1<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/chunks/0fy78gub0byw0.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/chunks/170996v~vthco.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/126g587n359k8.js"/>
1<script src="/_next/static/chunks/0djrmctdztmf0.js" async=""></script>
1<script src="/_next/static/chunks/0euyap1to8si~.js" async=""></script>
1<script src="/_next/static/chunks/11m6z_w3.i_0..js" async=""></script>
1<script src="/_next/static/chunks/0vaa55ka6h5kc.js" async=""></script>
1<script src="/_next/static/chunks/turbopack-0r4vyubc9_r_l.js" async=""></script>
1<script src="/_next/static/chunks/170ff8ut0o9t2.js" async=""></script>
1<script src="/_next/static/chunks/0zmhuz4hpxz8e.js" async=""></script>
1<script src="/_next/static/chunks/0qibc5u18kg02.js" async=""></script>
1<script src="/_next/static/chunks/0kjwgkln7eo2p.js" async=""></script>
1<script src="/_next/static/chunks/12-q9g-1to.xh.js" async=""></script>
1<script src="/_next/static/chunks/0.d~t.uvcm7-2.js" async=""></script>
1<script src="/_next/static/chunks/0qwfog_u8ze1u.js" async=""></script>
1<script src="/_next/static/chunks/0~0uvsk6s2bcs.js" async=""></script>
1<script src="/_next/static/chunks/08h7ugvkz96sz.js" async=""></script>
1<script src="/_next/static/chunks/0~k5p0iy~7rnb.js" async=""></script>
1<script src="/_next/static/chunks/0a.j3agnimgvp.js" async=""></script>
1<script src="/_next/static/chunks/12vkk7okt9f3d.js" async=""></script>
1<script src="/_next/static/chunks/07e~ma52xubbw.js" async=""></script>
1<link rel="preload" href="https://plausible.io/js/script.js" as="script"/><meta name="next-size-adjust" content=""/><title>SDK install guides — Brevwick</title><meta name="description" content="Install Brevwick in Next.js, React, Remix, Astro, React Native, Flutter, Vue, Svelte, SolidJS, Angular, or vanilla JS."/><meta name="application-name" content="Brevwick"/><meta property="og:title" content="Brevwick SDK install guides"/><meta property="og:description" content="Install Brevwick in Next.js, React, Remix, Astro, React Native, Flutter, Vue, Svelte, SolidJS, Angular, or vanilla JS."/><meta property="og:url" content="https://brevwick.dev/docs/sdk"/><meta property="og:site_name" content="Brevwick"/><meta property="og:image" content="https://brevwick.dev/docs/sdk/opengraph-image-ltsqog?29994aefd24aeb1c"/><meta property="og:image:type" content="image/png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:image:alt" content="Brevwick SDK install guides"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Brevwick SDK install guides"/><meta name="twitter:description" content="Install Brevwick in Next.js, React, Remix, Astro, React Native, Flutter, Vue, Svelte, SolidJS, Angular, or vanilla JS."/><meta name="twitter:image" content="https://brevwick.dev/docs/sdk/opengraph-image-ltsqog?29994aefd24aeb1c"/><meta name="twitter:image:alt" content="Brevwick SDK install guides"/><meta name="twitter:image:type" content="image/png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/favicon.svg"/><link rel="apple-touch-icon" href="/apple-touch-icon.png"/>
1<script src="/_next/static/chunks/03~yq9q893hmn.js" noModule=""></script>
1</head><body class="inter_c15e96cb-module__0bjUvq__variable"><div hidden=""><!--$--><!--/$--></div>
1<script>((a,b,c,d,e,f,g,h)=>{let i=document.documentElement,j=["light","dark"];function k(b){var c;(Array.isArray(a)?a:[a]).forEach(a=>{let c="class"===a,d=c&&f?e.map(a=>f[a]||a):e;c?(i.classList.remove(...d),i.classList.add(f&&f[b]?f[b]:b)):i.setAttribute(a,b)}),c=b,h&&j.includes(c)&&(i.style.colorScheme=c)}if(d)k(d);else try{let a=localStorage.getItem(b)||c,d=g&&"system"===a?window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light":a;k(d)}catch(a){}})("class","theme","system",null,["light","dark"],null,true,true)</script>
1<!--$!--><template data-dgst="BAILOUT_TO_CLIENT_SIDE_RENDERING"></template><!--/$--><div class="flex min-h-screen flex-col">
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"Organization","name":"Brevwick","url":"https://brevwick.dev","logo":"https://brevwick.dev/apple-touch-icon.png","sameAs":["https://github.com/tatlacas-com","https://www.npmjs.com/package/@tatlacas/brevwick-sdk","https://www.npmjs.com/package/@tatlacas/brevwick-react","https://www.npmjs.com/package/@tatlacas/brevwick-vue","https://www.npmjs.com/package/@tatlacas/brevwick-svelte","https://www.npmjs.com/package/@tatlacas/brevwick-solid","https://www.npmjs.com/package/@tatlacas/brevwick-angular","https://www.npmjs.com/package/@tatlacas/brevwick-react-native","https://pub.dev/packages/brevwick"]}</script>
1<script type="application/ld+json">{"@context":"https://schema.org","@type":"WebSite","name":"Brevwick","url":"https://brevwick.dev"}</script>
1<header class="border-b border-neutral-200/60 dark:border-neutral-800"><nav aria-label="Primary" class="mx-auto flex h-16 max-w-6xl items-center justify-between gap-3 px-4 sm:px-6"><div class="flex min-w-0 items-center gap-3"><a aria-label="Brevwick home" class="flex shrink-0 items-center" href="/"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 380 100" role="img" aria-label="Brevwick" aria-hidden="true" class="h-7 w-auto"><title>Brevwick</title><g fill="currentColor"><path d="M36 14 H46 V42 A22 22 0 0 1 46 86 H36 Q32 86 32 82 V18 Q32 14 36 14 Z"></path><path d="m 145.32812,68.585937 q -2.7832,0 -4.6582,-0.9375 -1.875,-0.966796 -2.98828,-2.314453 -1.11328,-1.347656 -1.69922,-2.519531 h -0.49805 V 68 h -7.4414 V 24.347656 h 7.61719 v 16.31836 h 0.32226 q 0.58594,-1.171875 1.66992,-2.519532 1.08399,-1.347656 2.92969,-2.314453 1.875,-0.996094 4.77539,-0.996094 3.8086,0 6.85547,1.933594 3.04688,1.933594 4.83398,5.712891 1.81641,3.75 1.81641,9.199219 0,5.390625 -1.75781,9.169921 -1.75781,3.779297 -4.83399,5.771485 -3.04687,1.96289 -6.94336,1.96289 z m -2.05078,-6.269531 q 2.54883,0 4.27735,-1.376953 1.72851,-1.40625 2.60742,-3.808594 0.87891,-2.43164 0.87891,-5.478515 0,-3.046875 -0.87891,-5.419922 -0.84961,-2.402344 -2.57813,-3.75 -1.72851,-1.376953 -4.30664,-1.376953 -2.51953,0 -4.24804,1.318359 -1.72852,1.318359 -2.63672,3.691406 -0.87891,2.34375 -0.87891,5.53711 0,3.193359 0.87891,5.595703 0.9082,2.402344 2.63672,3.75 1.75781,1.318359 4.24804,1.318359 z M 164.28437,68 V 35.246094 h 7.38282 v 5.478515 h 0.35156 q 0.87891,-2.841797 3.07617,-4.365234 2.19727,-1.552734 5.00977,-1.552734 0.64453,0 1.43554,0.05859 0.79102,0.05859 1.34766,0.146485 v 7.001953 q -0.46875,-0.146485 -1.52344,-0.263672 -1.05469,-0.117188 -2.08008,-0.117188 -2.10937,0 -3.80859,0.908204 -1.66992,0.908203 -2.63672,2.519531 -0.9375,1.582031 -0.9375,3.662109 V 68 Z m 35.77266,0.673828 q -4.95117,0 -8.52539,-2.080078 -3.54492,-2.080078 -5.47852,-5.859375 -1.90429,-3.779297 -1.90429,-8.90625 0,-5.068359 1.875,-8.876953 1.90429,-3.808594 5.36132,-5.947266 3.48633,-2.167969 8.17383,-2.167969 2.98828,0 5.6836,0.966797 2.72461,0.966797 4.80468,2.988282 2.10938,2.021484 3.28125,5.15625 1.20118,3.105468 1.20118,7.412109 v 2.402344 h -26.77735 v -5.185547 h 22.99805 l -3.57422,1.523437 q 0,-2.753906 -0.84961,-4.833984 -0.84961,-2.109375 -2.54883,-3.28125 -1.66992,-1.171875 -4.18945,-1.171875 -2.51953,0 -4.27734,1.201172 -1.75782,1.171875 -2.69532,3.164062 -0.9082,1.962891 -0.9082,4.394532 v 3.574218 q 0,3.105469 1.05469,5.244141 1.05469,2.138672 2.95898,3.222656 1.9043,1.083985 4.42383,1.083985 1.66992,0 3.01758,-0.46875 1.37695,-0.498047 2.37305,-1.435547 0.99609,-0.966797 1.49414,-2.34375 l 7.00195,1.435547 q -0.79102,2.636718 -2.69531,4.628906 -1.9043,1.96289 -4.77539,3.076172 -2.8418,1.083984 -6.50391,1.083984 z M 228.03672,68 215.84922,35.246094 h 8.14453 l 5.97656,17.8125 q 1.05469,3.134765 1.81641,6.298828 0.76172,3.164062 1.55273,6.416015 h -1.90429 q 0.82031,-3.251953 1.55273,-6.416015 0.76172,-3.164063 1.78711,-6.298828 l 5.94727,-17.8125 h 8.08593 L 236.56211,68 Z m 31.72968,0 -9.75586,-32.753906 h 8.02735 l 3.22265,12.832031 q 0.73243,3.164062 1.61133,6.943359 0.87891,3.779297 1.66992,8.408203 H 263.575 q 0.79101,-4.511718 1.69922,-8.291015 0.9082,-3.808594 1.72851,-7.060547 l 3.31055,-12.832031 h 7.26562 l 3.22266,12.832031 q 0.79102,3.193359 1.66992,7.001953 0.9082,3.779297 1.72852,8.349609 h -0.9668 q 0.79102,-4.541015 1.61133,-8.320312 0.84961,-3.779297 1.64062,-7.03125 l 3.22266,-12.832031 h 8.08594 L 288.00859,68 h -7.70508 l -3.83789,-13.359375 q -0.58594,-2.021484 -1.14258,-4.335938 -0.55664,-2.314453 -1.08398,-4.716796 -0.52734,-2.431641 -1.05469,-4.658204 h 1.40625 q -0.52734,2.226563 -1.08398,4.658204 -0.52735,2.402343 -1.08399,4.746093 -0.52734,2.34375 -1.11328,4.306641 L 267.47148,68 Z m 42.15938,0 V 35.246094 h 7.61719 V 68 Z m 3.80859,-37.382813 q -1.8164,0 -3.13476,-1.230468 -1.28906,-1.230469 -1.28906,-2.929688 0,-1.757812 1.28906,-2.958984 1.31836,-1.230469 3.13476,-1.230469 1.84571,0 3.13477,1.230469 1.31836,1.201172 1.31836,2.929687 0,1.728516 -1.31836,2.958985 -1.28906,1.230468 -3.13477,1.230468 z m 24.90352,38.056641 q -4.77539,0 -8.29101,-2.109375 
1-3.51563,-2.138672 -5.44922,-5.917969 -1.9043,-3.808593 -1.9043,-8.847656 0,-5.097656 1.9043,-8.90625 1.93359,-3.837891 5.44922,-5.947266 3.51562,-2.109375 8.29101,-2.109375 2.72461,0 5.06836,0.703125 2.34375,0.703125 4.18946,2.050782 1.8457,1.318359 3.07617,3.222656 1.25976,1.904297 1.78711,4.306641 l -7.11914,1.49414 q -0.32227,-1.259765 -0.9375,-2.285156 -0.58594,-1.054688 -1.46485,-1.787109 -0.8789,-0.732422 -2.02148,-1.113282 -1.14258,-0.410156 -2.51953,-0.410156 -2.66602,0 -4.42383,1.435547 -1.75781,1.40625 -2.63672,3.837891 -0.87891,2.402343 -0.87891,5.478515 0,3.017578 0.87891,5.449219 0.87891,2.431641 2.63672,3.867187 1.75781,1.40625 4.42383,1.40625 1.40625,0 2.54883,-0.410156 1.17187,-0.410156 2.05078,-1.171875 0.9082,-0.761719 1.52343,-1.845703 0.61524,-1.083984 0.90821,-2.402344 l 7.11914,1.494141 q -0.52735,2.460937 -1.78711,4.394531 -1.23047,1.933594 -3.10547,3.310547 -1.8457,1.347656 -4.21875,2.080078 -2.34375,0.732422 -5.09766,0.732422 z M 357.15274,57.6875 v -9.228516 h 1.20117 l 11.80664,-13.21289 h 8.93555 l -14.47266,16.142578 h -1.58203 z M 350.18008,68 V 24.347656 h 7.61719 V 68 Z m 20.53711,0 -10.72265,-14.912109 5.15625,-5.390625 L 379.85782,68 Z" aria-label="brevwick"></path></g></svg></a><span class="items-center gap-1.5 rounded-full border border-emerald-300 bg-emerald-50 px-2.5 py-0.5 text-[11px] font-medium uppercase tracking-widest text-emerald-800 dark:border-emerald-700/60 dark:bg-emerald-950/40 dark:text-emerald-300 hidden sm:inline-flex">Early Access</span></div><div class="flex shrink-0 items-center gap-3 md:gap-6"><ul class="hidden items-center gap-6 text-sm md:flex"><li><a class="text-neutral-600 hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100" href="/integrations">Integrations</a></li><li><a class="text-neutral-600 hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100" href="/docs/sdk">SDK guides</a></li><li><a class="text-neutral-600 hover:text-neutral-900 dark:text-neutral-400 dark:hover:text-neutral-100" href="/pricing">Pricing</a></li></ul><a class="inline-flex min-h-12 items-center justify-center rounded-md bg-neutral-900 px-4 py-1.5 text-white hover:bg-neutral-700 dark:bg-neutral-100 dark:text-neutral-900 dark:hover:bg-neutral-300" href="https://app.brevwick.dev/login">Sign in</a><button type="button" aria-haspopup="dialog" aria-expanded="false" aria-controls="radix-_R_3kiutb_" data-state="closed" aria-label="Open menu" class="inline-flex h-12 w-12 items-center justify-center rounded-md border border-neutral-200 text-neutral-700 hover:bg-neutral-100 md:hidden dark:border-neutral-800 dark:text-neutral-300 dark:hover:bg-neutral-900"><svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-menu h-5 w-5" aria-hidden="true"><path d="M4 5h16"></path><path d="M4 12h16"></path><path d="M4 19h16"></path></svg></button></div></nav></header><main class="flex-1"><section aria-labelledby="sdk-index-title" class="mx-auto max-w-6xl px-6 py-24"><p class="text-xs font-medium uppercase tracking-widest text-neutral-500">Docs · SDK</p><h1 id="sdk-index-title" class="mt-3 text-4xl font-semibold tracking-tight sm:text-5xl">Install Brevwick anywhere.</h1>
1<p class="mt-4 max-w-2xl text-lg text-neutral-600 dark:text-neutral-400">Pick your framework. Each guide walks from a fresh install to a first submission in under 10 minutes — same SDK contract, framework-native ergonomics.</p><section aria-labelledby="sdk-frameworks-heading" class="mt-12"><h2 id="sdk-frameworks-heading" class="sr-only">Pick your framework</h2><div><div role="group" aria-label="Filter frameworks" class="flex flex-wrap gap-2"><button type="button" aria-pressed="true" class="rounded-full border px-3 py-1 text-sm font-medium transition-colors border-neutral-900 bg-neutral-900 text-white dark:border-neutral-100 dark:bg-neutral-100 dark:text-neutral-900">All</button><button type="button" aria-pressed="false" class="rounded-full border px-3 py-1 text-sm font-medium transition-colors border-neutral-200 text-neutral-600 hover:border-neutral-300 hover:text-neutral-900 dark:border-neutral-800 dark:text-neutral-400 dark:hover:border-neutral-700 dark:hover:text-neutral-100">React</button><button type="button" aria-pressed="false" class="rounded-full border px-3 py-1 text-sm font-medium transition-colors border-neutral-200 text-neutral-600 hover:border-neutral-300 hover:text-neutral-900 dark:border-neutral-800 dark:text-neutral-400 dark:hover:border-neutral-700 dark:hover:text-neutral-100">Mobile</button><button type="button" aria-pressed="false" class="rounded-full border px-3 py-1 text-sm font-medium transition-colors border-neutral-200 text-neutral-600 hover:border-neutral-300 hover:text-neutral-900 dark:border-neutral-800 dark:text-neutral-400 dark:hover:border-neutral-700 dark:hover:text-neutral-100">Vanilla</button><button type="button" aria-pressed="false" class="rounded-full border px-3 py-1 text-sm font-medium transition-colors border-neutral-200 text-neutral-600 hover:border-neutral-300 hover:text-neutral-900 dark:border-neutral-800 dark:text-neutral-400 dark:hover:border-neutral-700 dark:hover:text-neutral-100">Other</button></div><ul aria-label="SDK frameworks" class="mt-6 grid list-none gap-4 p-0 sm:grid-cols-2 lg:grid-cols-3"><li><a data-testid="framework-tile-nextjs" data-status="shipped" data-group="react" data-runtime="web" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/nextjs"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-nextjs" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><path d="M12 0a12 12 0 1 0 12 12A12.013 12.013 0 0 0 12 0Zm0 22.5A10.5 10.5 0 1 1 22.5 12 10.512 10.512 0 0 1 12 22.5ZM7.5 7.5h1.6l6.6 9V7.5h1.5V18h-1.6l-6.6-9V18H7.5V7.5Z"></path></svg><h3 class="text-base font-semibold tracking-tight">Next.js</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">React + the BrevwickProvider, FeedbackButton, and useFeedback hook.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->Next.js<!-- --> guide →</p></a></li><li><a data-testid="framework-tile-react-vite" data-status="shipped" data-group="react" data-runtime="web" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/react-vite"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-react-vite" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><path d="M2.5 3.5h19l-9.5 17-9.5-17ZM7 6l5 9 5-9-5 1.5L7 6Z"></path></svg><h3 class="text-base font-semibold tracking-tight">React (Vite)</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">React + the BrevwickProvider, FeedbackButton, and useFeedback hook.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->React (Vite)<!-- --> guide →</p></a></li><li><a data-testid="framework-tile-react-cra" data-status="shipped" data-group="react" data-runtime="web" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/react-cra"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-react-cra" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><circle cx="12" cy="12" r="2"></circle><g fill="none" stroke="currentColor" stroke-width="1.2"><ellipse cx="12" cy="12" rx="10" ry="4"></ellipse><ellipse cx="12" cy="12" rx="10" ry="4" transform="rotate(60 12 12)"></ellipse><ellipse cx="12" cy="12" rx="10" ry="4" transform="rotate(120 12 12)"></ellipse></g></svg><h3 class="text-base font-semibold tracking-tight">React (Create React App)</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">React + the BrevwickProvider, FeedbackButton, and useFeedback hook.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->React (Create React App)<!-- --> guide →</p></a></li><li><a data-testid="framework-tile-remix" data-status="shipped" data-group="react" data-runtime="web" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/remix"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-remix" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><path d="M3 3h9.5c2.6 0 4.5 1.3 4.5 3.7 0 1.7-.9 2.8-2.4 3.3 1.7.4 2.6 1.5 2.7 3.4l.2 3.4c.05.7.25 1.2.6 1.7H13.4c-.3-.4-.4-.9-.4-1.6l-.1-2.5c-.1-1.7-.7-2.3-2.4-2.3H7v6.4H3V3Zm4 6.6h3.6c1.6 0 2.4-.6 2.4-1.9 0-1.3-.8-1.9-2.3-1.9H7v3.8Zm10 7.4h4l-2 4-2-4Z"></path></svg><h3 class="text-base font-semibold tracking-tight">Remix</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">React + the BrevwickProvider, FeedbackButton, and useFeedback hook.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->Remix<!-- --> guide →</p></a></li><li><a data-testid="framework-tile-astro" data-status="shipped" data-group="react" data-runtime="web" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/astro"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-astro" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><path d="M9.4 1.6a1.5 1.5 0 0 1 1.4-1h2.4a1.5 1.5 0 0 1 1.4 1l5 14.5c-2 .9-4.4 1.5-7.6 1.5-3.2 0-5.6-.6-7.6-1.5L9.4 1.6Zm6.5 16.7c.4 1.4 0 3-1 3.9-1.7 1.6-4.5 1.6-6.2 0-1-1-1.4-2.5-1-3.9.7.4 1.6.7 2.6 1 1 .2 2 .3 2.8.3 1.7 0 2.7-.5 2.8-1.3Z"></path></svg><h3 class="text-base font-semibold tracking-tight">Astro</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">React + the BrevwickProvider, FeedbackButton, and useFeedback hook.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->Astro<!-- --> guide →</p></a></li><li><a data-testid="framework-tile-vanilla" data-status="shipped" data-group="vanilla" data-runtime="web" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/vanilla"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-vanilla" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><rect x="2" y="2" width="20" height="20" rx="2"></rect><path fill="white" d="M11 17.4c0 1.7-1 2.8-2.7 2.8-1.5 0-2.4-.7-3-1.6l1.5-.9c.4.6.7 1.1 1.4 1.1.7 0 1.1-.3 1.1-1.3v-6.7H11v6.6Zm5.6 2.8c-1.6 0-2.6-.7-3.2-1.8l1.5-.9c.4.7.9 1.2 1.8 1.2.8 0 1.3-.4 1.3-.9 0-.7-.5-.9-1.4-1.3l-.5-.2c-1.4-.6-2.4-1.4-2.4-3 0-1.5 1.1-2.6 2.9-2.6 1.3 0 2.2.4 2.8 1.6l-1.5 1c-.3-.6-.7-.9-1.3-.9-.6 0-1 .4-1 .9 0 .6.4.9 1.3 1.3l.5.2c1.7.7 2.7 1.4 2.7 3 0 1.8-1.4 2.7-3.4 2.7Z"></path></svg><h3 class="text-base font-semibold tracking-tight">Vanilla JS</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">Framework-agnostic core SDK — drop in via npm or a single &lt;script&gt; tag.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->Vanilla JS<!-- --> guide →</p></a></li><li><a data-testid="framework-tile-vue" data-status="shipped" data-group="vue" data-runtime="web" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/vue"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-vue" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><path d="M2 3h4.5L12 12.5 17.5 3H22L12 21 2 3Zm5.7 0H10l2 3.5L14 3h2.3L12 10 7.7 3Z"></path></svg><h3 class="text-base font-semibold tracking-tight">Vue</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">Vue plugin, FeedbackButton component, and useFeedback composable.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->Vue<!-- --> guide →</p></a></li><li><a data-testid="framework-tile-svelte" data-status="shipped" data-group="svelte" data-runtime="web" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/svelte"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-svelte" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><path d="M20.7 4.3c-2-2.9-6-3.8-9-2L6.5 5.6A6 6 0 0 0 3.7 9.5a6.3 6.3 0 0 0 .6 4 5.7 5.7 0 0 0-.9 2.1 6.4 6.4 0 0 0 1.1 4.8c2 2.9 6 3.8 9 2l5.2-3.3a6 6 0 0 0 2.7-3.9 6.3 6.3 0 0 0-.6-4 5.7 5.7 0 0 0 .9-2.1 6.4 6.4 0 0 0-1.1-4.8ZM10.6 19.5c-1.7.5-3.4-.2-4.5-1.6a3.9 3.9 0 0 1-.6-2.9 4 4 0 0 1 .1-.5l.1-.4.4.3a7.3 7.3 0 0 0 2.2 1.1l.3.1-.1.3v.4c-.1.5 0 1 .3 1.4.4.5 1 .8 1.6.6a1.6 1.6 0 0 0 .5-.2l5.2-3.3a1.5 1.5 0 0 0 .7-1 1.6 1.6 0 0 0-.3-1.2 1.7 1.7 0 0 0-1.7-.6 1.6 1.6 0 0 0-.5.2L13 11a5 5 0 0 1-1.4.6c-1.7.5-3.4-.2-4.5-1.6a3.9 3.9 0 0 1-.6-2.9c.2-1 .8-1.9 1.6-2.4l5.2-3.3c.5-.2 1-.4 1.5-.5 1.7-.5 3.4.2 4.5 1.6a3.9 3.9 0 0 1 .6 2.9 4 4 0 0 1-.1.5l-.1.4-.4-.3a7.3 7.3 0 0 0-2.2-1.1l-.3-.1.1-.3v-.4c.1-.5 0-1-.3-1.4-.4-.5-1-.8-1.6-.6a1.6 1.6 0 0 0-.5.2L9.3 7.5a1.5 1.5 0 0 0-.7 1 1.6 1.6 0 0 0 .3 1.2 1.7 1.7 0 0 0 1.7.6 1.6 1.6 0 0 0 .5-.2L11 10a5 5 0 0 1 1.4-.6c1.7-.5 3.4.2 4.5 1.6a3.9 3.9 0 0 1 .6 2.9c-.2 1-.8 1.9-1.6 2.4l-5.2 3.3c-.5.2-1 .4-1.5.5Z"></path></svg><h3 class="text-base font-semibold tracking-tight">Svelte</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">Svelte context, FeedbackButton, and getFeedback helper.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->Svelte<!-- --> guide →</p></a></li><li><a data-testid="framework-tile-solid" data-status="shipped" data-group="solid" data-runtime="web" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/solid"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-solid" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><path d="M2 8c1-3 4-5 8-5s5 1 7 3l1 2c-2-1-4-1-7-1-5 0-8 1-9 1Zm0 4c0-2 3-3 7-3 4.5 0 6 2 9 3 2 1 4 1 4 1l-1 2c-1 0-3 0-5-1-3-1-4-2-7-2-3 0-5 0-7 0Zm1 5c1 1 3 2 6 2 3 0 5-1 8-2 2-1 4-1 5-1l-1 2c-2 2-5 3-9 3-3 0-6-1-9-4Z"></path></svg><h3 class="text-base font-semibold tracking-tight">SolidJS</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">SolidJS provider, FeedbackButton, and useFeedback signal.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->SolidJS<!-- --> guide →</p></a></li><li><a data-testid="framework-tile-angular" data-status="shipped" data-group="angular" data-runtime="web" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/angular"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-angular" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><path d="M12 2 2.5 5.3l1.5 12.5L12 22l8-4.2 1.5-12.5L12 2Zm0 2.6 6.4 14.3h-1.6l-1.3-3.1H8.5L7.2 19H5.6L12 4.6Zm0 3.6L9.5 14.4h5L12 8.2Z"></path></svg><h3 class="text-base font-semibold tracking-tight">Angular</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">Angular provideBrevwick, BrevwickService, and bw-feedback-button.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->Angular<!-- --> guide →</p></a></li><li><a data-testid="framework-tile-react-native" data-status="shipped" data-group="react" data-runtime="native" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/react-native"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-react-native" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><rect x="6" y="2" width="12" height="20" rx="2.5"></rect><rect x="7.5" y="4" width="9" height="14" rx="0.5" fill="white"></rect><circle cx="12" cy="20" r="0.7" fill="white"></circle><g fill="currentColor"><circle cx="12" cy="11" r="1"></circle><g fill="none" stroke="currentColor" stroke-width="0.6" transform="translate(12 11)"><ellipse cx="0" cy="0" rx="3.6" ry="1.5"></ellipse><ellipse cx="0" cy="0" rx="3.6" ry="1.5" transform="rotate(60)"></ellipse><ellipse cx="0" cy="0" rx="3.6" ry="1.5" transform="rotate(120)"></ellipse></g></g></svg><h3 class="text-base font-semibold tracking-tight">React Native</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">React + the BrevwickProvider, FeedbackButton, and useFeedback hook.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->React Native<!-- --> guide →</p></a></li><li><a data-testid="framework-tile-flutter" data-status="shipped" data-group="flutter" data-runtime="native" class="group flex h-full flex-col rounded-lg border border-neutral-200 bg-white p-5 transition-colors hover:border-neutral-300 hover:bg-neutral-50 dark:border-neutral-800 dark:bg-neutral-950 dark:hover:border-neutral-700 dark:hover:bg-neutral-900" href="/docs/sdk/flutter"><div class="flex items-start justify-between gap-2"><div class="flex items-center gap-3"><svg viewBox="0 0 24 24" fill="currentColor" xmlns="http://www.w3.org/2000/svg" aria-hidden="true" data-testid="framework-mark-flutter" class="h-7 w-7 flex-none text-neutral-900 dark:text-neutral-100"><path d="M14.3 2 3 13.3l3.5 3.5L21 2.3 14.3 2Zm0 11-4.6 4.6L14.3 22H21l-6.7-7L21 8.3l-6.7 4.7Z"></path></svg><h3 class="text-base font-semibold tracking-tight">Flutter</h3></div><div class="inline-flex items-center rounded-full border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 border-transparent bg-emerald-50 text-emerald-700 dark:bg-emerald-500/15 dark:text-emerald-300">Live</div></div>
1<p class="mt-3 flex-1 text-sm text-neutral-600 dark:text-neutral-400">Drop-in feedback widget for iOS, Android, and Flutter web — bootstrap, overlay, Dio + route rings.</p><p class="mt-3 text-sm font-medium text-neutral-900 group-hover:underline dark:text-neutral-100">Read the <!-- -->Flutter<!-- --> guide →</p></a></li></ul></div></section></section><!--$--><!--/$--></main><footer class="border-t border-neutral-200/60 dark:border-neutral-800"><div class="mx-auto flex max-w-6xl flex-col gap-4 px-6 py-8 text-sm text-neutral-600 dark:text-neutral-400 sm:flex-row sm:items-center sm:justify-between"><p class="flex items-center gap-2"><svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100" role="img" aria-label="Brevwick" aria-hidden="true" class="h-4 w-4"><title>Brevwick</title><path fill="currentColor" d="M36 14 H46 V42 A22 22 0 0 1 46 86 H36 Q32 86 32 82 V18 Q32 14 36 14 Z"></path></svg><span>© <!-- -->2026<!-- --> Brevwick. All rights reserved.</span></p><ul class="flex flex-wrap items-center gap-x-6 gap-y-2"><li><a class="hover:text-neutral-900 dark:hover:text-neutral-100" href="/contact">Contact</a></li><li><a class="hover:text-neutral-900 dark:hover:text-neutral-100" href="/legal/privacy">Privacy</a></li><li><a class="hover:text-neutral-900 dark:hover:text-neutral-100" href="/legal/terms">Terms</a></li><li><a href="https://github.com/tatlacas-com" target="_blank" rel="noopener noreferrer" class="hover:text-neutral-900 dark:hover:text-neutral-100">GitHub</a></li></ul></div></footer></div><section aria-label="Notifications alt+T" tabindex="-1" aria-live="polite" aria-relevant="additions text" aria-atomic="false"></section>
1<script src="/_next/static/chunks/126g587n359k8.js" id="_R_" async=""></script>
1<script>(self.__next_f=self.__next_f||[]).push([0])</script>
1<script>self.__next_f.push([1,"1:\"$Sreact.fragment\"\n2:I[885329,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\"],\"ThemeProvider\"]\n3:I[936735,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\"],\"Providers\"]\n4:I[327631,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\"],\"default\"]\n5:I[405267,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\"],\"default\"]\n6:I[316939,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\",\"/_next/static/chunks/0a.j3agnimgvp.js\"],\"MarketingNav\"]\n7:I[675997,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\",\"/_next/static/chunks/0a.j3agnimgvp.js\"],\"\"]\nf:I[892168,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\"],\"default\",1]\n:HL[\"/_next/static/chunks/0fy78gub0byw0.css\",\"style\"]\n:HL[\"/_next/static/chunks/170996v~vthco.css\",\"style\"]\n:HL[\"/_next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n"])</script>
1<script>self.__next_f.push([1,"0:{\"P\":null,\"c\":[\"\",\"docs\",\"sdk\"],\"q\":\"\",\"i\":false,\"f\":[[[\"\",{\"children\":[\"(marketing)\",{\"children\":[\"docs\",{\"children\":[\"sdk\",{\"children\":[\"__PAGE__\",{}]}]}]}]},\"$undefined\",\"$undefined\",16],[[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0fy78gub0byw0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/170996v~vthco.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/170ff8ut0o9t2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-1\",{\"src\":\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-2\",{\"src\":\"/_next/static/chunks/0qibc5u18kg02.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-3\",{\"src\":\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-4\",{\"src\":\"/_next/static/chunks/12-q9g-1to.xh.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-5\",{\"src\":\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-6\",{\"src\":\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-7\",{\"src\":\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-8\",{\"src\":\"/_next/static/chunks/08h7ugvkz96sz.js\",\"async\":true,\"nonce\":\"$undefined\"}],[\"$\",\"script\",\"script-9\",{\"src\":\"/_next/static/chunks/0~k5p0iy~7rnb.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"body\",null,{\"className\":\"inter_c15e96cb-module__0bjUvq__variable\",\"suppressHydrationWarning\":true,\"children\":[\"$\",\"$L2\",null,{\"attribute\":\"class\",\"defaultTheme\":\"system\",\"enableSystem\":true,\"disableTransitionOnChange\":true,\"children\":[\"$\",\"$L3\",null,{\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"div\",null,{\"className\":\"flex min-h-screen flex-col\",\"children\":[[\"$\",\"$L6\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1\",\"children\":[\"$\",\"section\",null,{\"className\":\"mx-auto flex max-w-3xl flex-col items-start gap-6 px-6 py-24\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs font-medium uppercase tracking-widest text-neutral-500\",\"children\":\"404\"}],[\"$\",\"h1\",null,{\"className\":\"text-4xl font-semibold tracking-tight sm:text-5xl\",\"children\":\"Page not found.\"}],[\"$\",\"p\",null,{\"className\":\"max-w-xl text-lg text-neutral-600 dar
1k:text-neutral-400\",\"children\":\"The page you are looking for has moved, been renamed, or never existed. Head back to the home page or read the docs.\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-3\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"rounded-md bg-neutral-900 px-5 py-2.5 text-sm font-medium text-white hover:bg-neutral-700 dark:bg-neutral-100 dark:text-neutral-900 dark:hover:bg-neutral-300\",\"children\":\"Back to home\"}],[\"$\",\"$L7\",null,{\"href\":\"/docs/sdk\",\"className\":\"rounded-md border border-neutral-300 px-5 py-2.5 text-sm font-medium hover:bg-neutral-100 dark:border-neutral-700 dark:hover:bg-neutral-900\",\"children\":\"Read the docs\"}]]}]]}]}],[\"$\",\"footer\",null,{\"className\":\"border-t border-neutral-200/60 dark:border-neutral-800\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto flex max-w-6xl flex-col gap-4 px-6 py-8 text-sm text-neutral-600 dark:text-neutral-400 sm:flex-row sm:items-center sm:justify-between\",\"children\":[[\"$\",\"p\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\",\"role\":\"img\",\"aria-label\":\"Brevwick\",\"aria-hidden\":\"true\",\"className\":\"h-4 w-4\",\"children\":[[\"$\",\"title\",null,{\"children\":\"Brevwick\"}],[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"M36 14 H46 V42 A22 22 0 0 1 46 86 H36 Q32 86 32 82 V18 Q32 14 36 14 Z\"}]]}],[\"$\",\"span\",null,{\"children\":[\"© \",2026,\" Brevwick. All rights reserved.\"]}]]}],[\"$\",\"ul\",null,{\"className\":\"flex flex-wrap items-center gap-x-6 gap-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/contact\",\"className\":\"hover:text-neutral-900 dark:hover:text-neutral-100\",\"children\":\"Contact\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/legal/privacy\",\"className\":\"hover:text-neutral-900 dark:hover:text-neutral-100\",\"children\":\"Privacy\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/legal/terms\",\"className\":\"hover:text-neutral-900 dark:hover:text-neutral-100\",\"children\":\"Terms\"}]}],\"$L8\"]}]]}]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}]}]}]}]]}],{\"children\":[\"$L9\",{\"children\":[\"$La\",{\"children\":[\"$Lb\",{\"children\":[\"$Lc\",{},null,false,null]},null,false,\"$@d\"]},null,false,\"$@d\"]},null,false,null]},null,false,null],\"$Le\",false]],\"m\":\"$undefined\",\"G\":[\"$f\",[\"$L10\",\"$L11\"]],\"S\":true,\"h\":null,\"s\":\"$undefined\",\"l\":\"$undefined\",\"p\":\"$undefined\",\"d\":\"$undefined\",\"b\":\"81f4u3uLTVJ7LSnU8EXvI\"}\n"])</script>
1<script>self.__next_f.push([1,"12:I[779054,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\",\"/_next/static/chunks/0a.j3agnimgvp.js\"],\"\"]\n13:I[162229,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\",\"/_next/static/chunks/0a.j3agnimgvp.js\",\"/_next/static/chunks/12vkk7okt9f3d.js\"],\"default\"]\n14:I[637418,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\",\"/_next/static/chunks/0a.j3agnimgvp.js\",\"/_next/static/chunks/07e~ma52xubbw.js\"],\"FrameworkGrid\"]\n18:I[543886,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\"],\"ViewportBoundary\"]\n1a:I[543886,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\"],\"MetadataBoundary\"]\n1b:\"$Sreact.suspense\"\n8:[\"$\",\"li\",null,{\"children\":[\"$\",\"a\",null,{\"href\":\"https://github.com/tatlacas-com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"hover:text-neutral-900 dark:hover:text-neutral-100\",\"children\":\"GitHub\"}]}]\n"])</script>
1<script>self.__next_f.push([1,"9:[\"$\",\"$1\",\"c\",{\"children\":[[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/0a.j3agnimgvp.js\",\"async\":true,\"nonce\":\"$undefined\"}]],[\"$\",\"div\",null,{\"className\":\"flex min-h-screen flex-col\",\"children\":[[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"Organization\\\",\\\"name\\\":\\\"Brevwick\\\",\\\"url\\\":\\\"https://brevwick.dev\\\",\\\"logo\\\":\\\"https://brevwick.dev/apple-touch-icon.png\\\",\\\"sameAs\\\":[\\\"https://github.com/tatlacas-com\\\",\\\"https://www.npmjs.com/package/@tatlacas/brevwick-sdk\\\",\\\"https://www.npmjs.com/package/@tatlacas/brevwick-react\\\",\\\"https://www.npmjs.com/package/@tatlacas/brevwick-vue\\\",\\\"https://www.npmjs.com/package/@tatlacas/brevwick-svelte\\\",\\\"https://www.npmjs.com/package/@tatlacas/brevwick-solid\\\",\\\"https://www.npmjs.com/package/@tatlacas/brevwick-angular\\\",\\\"https://www.npmjs.com/package/@tatlacas/brevwick-react-native\\\",\\\"https://pub.dev/packages/brevwick\\\"]}\"}}],[\"$\",\"script\",null,{\"type\":\"application/ld+json\",\"dangerouslySetInnerHTML\":{\"__html\":\"{\\\"@context\\\":\\\"https://schema.org\\\",\\\"@type\\\":\\\"WebSite\\\",\\\"name\\\":\\\"Brevwick\\\",\\\"url\\\":\\\"https://brevwick.dev\\\"}\"}}],[\"$\",\"$L12\",null,{\"defer\":true,\"data-domain\":\"brevwick.dev\",\"src\":\"https://plausible.io/js/script.js\",\"strategy\":\"afterInteractive\"}],[\"$\",\"$L6\",null,{}],[\"$\",\"main\",null,{\"className\":\"flex-1\",\"children\":[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$13\",\"errorStyles\":[],\"errorScripts\":[[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/12vkk7okt9f3d.js\",\"async\":true}]],\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"section\",null,{\"className\":\"mx-auto flex max-w-3xl flex-col items-start gap-6 px-6 py-24\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs font-medium uppercase tracking-widest text-neutral-500\",\"children\":\"404\"}],[\"$\",\"h1\",null,{\"className\":\"text-4xl font-semibold tracking-tight sm:text-5xl\",\"children\":\"Page not found.\"}],[\"$\",\"p\",null,{\"className\":\"max-w-xl text-lg text-neutral-600 dar
1k:text-neutral-400\",\"children\":\"The page you are looking for has moved, been renamed, or never existed. Head back to the home page or read the docs.\"}],[\"$\",\"div\",null,{\"className\":\"flex flex-wrap gap-3\",\"children\":[[\"$\",\"$L7\",null,{\"href\":\"/\",\"className\":\"rounded-md bg-neutral-900 px-5 py-2.5 text-sm font-medium text-white hover:bg-neutral-700 dark:bg-neutral-100 dark:text-neutral-900 dark:hover:bg-neutral-300\",\"children\":\"Back to home\"}],[\"$\",\"$L7\",null,{\"href\":\"/docs/sdk\",\"className\":\"rounded-md border border-neutral-300 px-5 py-2.5 text-sm font-medium hover:bg-neutral-100 dark:border-neutral-700 dark:hover:bg-neutral-900\",\"children\":\"Read the docs\"}]]}]]}],[]],\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]}],[\"$\",\"footer\",null,{\"className\":\"border-t border-neutral-200/60 dark:border-neutral-800\",\"children\":[\"$\",\"div\",null,{\"className\":\"mx-auto flex max-w-6xl flex-col gap-4 px-6 py-8 text-sm text-neutral-600 dark:text-neutral-400 sm:flex-row sm:items-center sm:justify-between\",\"children\":[[\"$\",\"p\",null,{\"className\":\"flex items-center gap-2\",\"children\":[[\"$\",\"svg\",null,{\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 100 100\",\"role\":\"img\",\"aria-label\":\"Brevwick\",\"aria-hidden\":\"true\",\"className\":\"h-4 w-4\",\"children\":[[\"$\",\"title\",null,{\"children\":\"Brevwick\"}],[\"$\",\"path\",null,{\"fill\":\"currentColor\",\"d\":\"M36 14 H46 V42 A22 22 0 0 1 46 86 H36 Q32 86 32 82 V18 Q32 14 36 14 Z\"}]]}],[\"$\",\"span\",null,{\"children\":[\"© \",2026,\" Brevwick. All rights reserved.\"]}]]}],[\"$\",\"ul\",null,{\"className\":\"flex flex-wrap items-center gap-x-6 gap-y-2\",\"children\":[[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/contact\",\"className\":\"hover:text-neutral-900 dark:hover:text-neutral-100\",\"children\":\"Contact\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/legal/privacy\",\"className\":\"hover:text-neutral-900 dark:hover:text-neutral-100\",\"children\":\"Privacy\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"$L7\",null,{\"href\":\"/legal/terms\",\"className\":\"hover:text-neutral-900 dark:hover:text-neutral-100\",\"children\":\"Terms\"}]}],[\"$\",\"li\",null,{\"children\":[\"$\",\"a\",null,{\"href\":\"https://github.com/tatlacas-com\",\"target\":\"_blank\",\"rel\":\"noopener noreferrer\",\"className\":\"hover:text-neutral-900 dark:hover:text-neutral-100\",\"children\":\"GitHub\"}]}]]}]]}]}]]}]]}]\n"])</script>
1<script>self.__next_f.push([1,"a:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\nb:[\"$\",\"$1\",\"c\",{\"children\":[null,[\"$\",\"$L4\",null,{\"parallelRouterKey\":\"children\",\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$L5\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"forbidden\":\"$undefined\",\"unauthorized\":\"$undefined\"}]]}]\n"])</script>
1<script>self.__next_f.push([1,"c:[\"$\",\"$1\",\"c\",{\"children\":[[\"$\",\"section\",null,{\"aria-labelledby\":\"sdk-index-title\",\"className\":\"mx-auto max-w-6xl px-6 py-24\",\"children\":[[\"$\",\"p\",null,{\"className\":\"text-xs font-medium uppercase tracking-widest text-neutral-500\",\"children\":\"Docs · SDK\"}],[\"$\",\"h1\",null,{\"id\":\"sdk-index-title\",\"className\":\"mt-3 text-4xl font-semibold tracking-tight sm:text-5xl\",\"children\":\"Install Brevwick anywhere.\"}],[\"$\",\"p\",null,{\"className\":\"mt-4 max-w-2xl text-lg text-neutral-600 dark:text-neutral-400\",\"children\":\"Pick your framework. Each guide walks from a fresh install to a first submission in under 10 minutes — same SDK contract, framework-native ergonomics.\"}],[\"$\",\"section\",null,{\"aria-labelledby\":\"sdk-frameworks-heading\",\"className\":\"mt-12\",\"children\":[[\"$\",\"h2\",null,{\"id\":\"sdk-frameworks-heading\",\"className\":\"sr-only\",\"children\":\"Pick your framework\"}],[\"$\",\"$L14\",null,{\"entries\":[{\"id\":\"nextjs\",\"label\":\"Next.js\",\"group\":\"react\",\"status\":\"shipped\",\"runtime\":\"web\",\"packages\":[\"@tatlacas/brevwick-react\",\"@tatlacas/brevwick-sdk\",\"modern-screenshot\"],\"installCommand\":\"npm install @tatlacas/brevwick-react @tatlacas/brevwick-sdk modern-screenshot\",\"envVars\":[{\"name\":\"NEXT_PUBLIC_BREVWICK_PROJECT_KEY\",\"value\":\"{{PROJECT_KEY}}\",\"description\":\"Public project key. Inlined at build time by next build — wire it through Dockerfile ARG/ENV + workflow build-args + GH secret.\"}],\"snippetTemplates\":[{\"id\":\"providers\",\"filename\":\"app/providers.tsx\",\"language\":\"tsx\",\"template\":\"'use client';\\n\\nimport { BrevwickProvider, FeedbackButton } from '@tatlacas/brevwick-react';\\n\\nconst config = {\\n  projectKey: process.env.NEXT_PUBLIC_BREVWICK_PROJECT_KEY ?? '{{PROJECT_KEY}}',\\n};\\n\\nexport function Providers({ children }: { children: React.ReactNode }) {\\n  return (\\n    \u003cBrevwickProvider config={config}\u003e\\n      {children}\\n      \u003cFeedbackButton position=\\\"bottom-right\\\" /\u003e\\n    \u003c/BrevwickProvider\u003e\\n  );\\n}\"},{\"id\":\"layout\",\"filename\":\"app/layout.tsx\",\"language\":\"tsx\",\"template\":\"import { Providers } from './providers';\\n\\nexport default function RootLayout({\\n  children,\\n}: {\\n  children: React.ReactNode;\\n}) {\\n  return (\\n    \u003chtml lang=\\\"en\\\"\u003e\\n      \u003cbody\u003e\\n        \u003cProviders\u003e{children}\u003c/Providers\u003e\\n      \u003c/body\u003e\\n    \u003c/html\u003e\\n  );\\n}\"}],\"verifySteps\":[\"Run `next dev` and open the app in a browser.\",\"Click the floating feedback button in the bottom-right corner.\",\"Submit a test issue from the dialog.\",\"Confirm the issue lands in /app/issues in the Brevwick dashboard.\"],\"docsUrl\":\"/docs/sdk/nextjs\"},{\"id\":\"react-vite\",\"label\":\"React (Vite)\",\"group\":\"react\",\"status\":\"shipped\",\"runtime\":\"web\",\"packages\":[\"@tatlacas/brevwick-react\",\"@tatlacas/brevwick-sdk\",\"modern-screenshot\"],\"installCommand\":\"npm install @tatlacas/brevwick-react @tatlacas/brevwick-sdk modern-screenshot\",\"envVars\":[{\"name\":\"VITE_BREVWICK_PROJECT_KEY\",\"value\":\"{{PROJECT_KEY}}\",\"description\":\"Public project key. Vite reads VITE_* vars from `.env*` and exposes them as `import.meta.env.*` at build time.\"}],\"snippetTemplates\":[{\"id\":\"main\",\"filename\":\"src/main.tsx\",\"language\":\"tsx\",\"template\":\"import { StrictMode } from 'react';\\nimport { createRoot } from 'react-dom/client';\\nimport { BrevwickProvider, FeedbackButton } from '@tatlacas/brevwick-react';\\nimport App from './App';\\n\\nconst config = {\\n  projectKey: import.meta.env.VITE_BREVWICK_PROJECT_KEY ?? '{{PROJECT_KEY}}',\\n};\\n\\ncreateRoot(document.getElementById('root')!).render(\\n  \u003cStrictMode\u003e\\n    \u003cBrevwickProvider config={config}\u003e\\n      \u003cApp /\u003e\\n      \u003cFeedbackButton position=\\\"bottom-right\\\" /\u003e\\n    \u003c/BrevwickProvider\u003e\\n  \u003c/StrictMode\u003e,\\n);\"}],\"verifySteps\":[\"Run `vite` and open http://localhost:5173.\",\"Click the floating feedback button.\",\"Submit a test issue.\",\"Confirm the issue lands in /app/issues.\"],\"docsUrl\":\"/docs/sdk/react-vite\"},{\"id\":\"react-cra\",\"label\":\"React (Create React App)\",\"group\":\"react\",\"status\":\"shipped\",\"runtime\":\"web\",\"packages\":[\"@tatlacas/brevwick-react\",\"@tatlacas/brevwick-sdk\",\"modern-screenshot\"],\"installCommand\":\"npm install @tatlacas/brevwick-react @tatlacas/brevwick-sdk modern-screenshot\",\"envVars\":[{\"name\":\"REACT_APP_BREVWICK_PROJECT_KEY\",\"value\":\"{{PROJECT_KEY}}
1\",\"description\":\"Public project key. CRA only inlines `REACT_APP_*` env vars from `.env*` files at build time.\"}],\"snippetTemplates\":[{\"id\":\"index\",\"filename\":\"src/index.tsx\",\"language\":\"tsx\",\"template\":\"import React from 'react';\\nimport { createRoot } from 'react-dom/client';\\nimport { BrevwickProvider, FeedbackButton } from '@tatlacas/brevwick-react';\\nimport App from './App';\\n\\nconst config = {\\n  projectKey: process.env.REACT_APP_BREVWICK_PROJECT_KEY ?? '{{PROJECT_KEY}}',\\n};\\n\\nconst container = document.getElementById('root');\\nif (container) {\\n  createRoot(container).render(\\n    \u003cReact.StrictMode\u003e\\n      \u003cBrevwickProvider config={config}\u003e\\n        \u003cApp /\u003e\\n        \u003cFeedbackButton position=\\\"bottom-right\\\" /\u003e\\n      \u003c/BrevwickProvider\u003e\\n    \u003c/React.StrictMode\u003e,\\n  );\\n}\"}],\"verifySteps\":[\"Run `npm start` and open http://localhost:3000.\",\"Click the floating feedback button.\",\"Submit a test issue.\",\"Confirm the issue lands in /app/issues.\"],\"docsUrl\":\"/docs/sdk/react-cra\"},{\"id\":\"remix\",\"label\":\"Remix\",\"group\":\"react\",\"status\":\"shipped\",\"runtime\":\"web\",\"packages\":[\"@tatlacas/brevwick-react\",\"@tatlacas/brevwick-sdk\",\"modern-screenshot\"],\"installCommand\":\"npm install @tatlacas/brevwick-react @tatlacas/brevwick-sdk modern-screenshot\",\"envVars\":[{\"name\":\"BREVWICK_PROJECT_KEY\",\"value\":\"{{PROJECT_KEY}}\",\"description\":\"Public project key. Surface to the client via Remix `loader` / `useRouteLoaderData` — never read process.env in client code.\"}],\"snippetTemplates\":[{\"id\":\"root\",\"filename\":\"app/root.tsx\",\"language\":\"tsx\",\"template\":\"import { Links, Meta, Outlet, Scripts, ScrollRestoration } from '@remix-run/react';\\nimport { BrevwickProvider, FeedbackButton } from '@tatlacas/brevwick-react';\\n\\nconst config = { projectKey: '{{PROJECT_KEY}}' };\\n\\nexport default function App() {\\n  return (\\n    \u003chtml lang=\\\"en\\\"\u003e\\n      \u003chead\u003e\\n        \u003cMeta /\u003e\\n        \u003cLinks /\u003e\\n      \u003c/head\u003e\\n      \u003cbody\u003e\\n        \u003cBrevwickProvider config={config}\u003e\\n          \u003cOutlet /\u003e\\n          \u003cFeedbackButton position=\\\"bottom-right\\\" /\u003e\\n        \u003c/BrevwickProvider\u003e\\n        \u003cScrollRestoration /\u003e\\n        \u003cScripts /\u003e\\n      \u003c/body\u003e\\n    \u003c/html\u003e\\n  );\\n}\"}],\"verifySteps\":[\"Run `remix dev` and open the app.\",\"Click the floating feedback button.\",\"Submit a test issue.\",\"Confirm the issue lands in /app/issues.\"],\"docsUrl\":\"/docs/sdk/remix\"},{\"id\":\"astro\",\"label\":\"Astro\",\"group\":\"react\",\"status\":\"shipped\",\"runtime\":\"web\",\"packages\":[\"@tatlacas/brevwick-react\",\"@tatlacas/brevwick-sdk\",\"modern-screenshot\",\"@astrojs/react\"],\"installCommand\":\"npm install @tatlacas/brevwick-react @tatlacas/brevwick-sdk modern-screenshot @astrojs/react\",\"envVars\":[{\"name\":\"PUBLIC_BREVWICK_PROJECT_KEY\",\"value\":\"{{PROJECT_KEY}}\",\"description\":\"Public project key. `PUBLIC_*` Astro env vars are exposed to client islands via import.meta.env.\"}],\"snippetTemplates\":[{\"id\":\"island\",\"filename\":\"src/components/BrevwickIsland.tsx\",\"language\":\"tsx\",\"template\":\"import { BrevwickProvider, FeedbackButton } from '@tatlacas/brevwick-react';\\n\\nconst config = {\\n  projectKey:\\n    import.meta.env.PUBLIC_BREVWICK_PROJECT_KEY ?? '{{PROJECT_KEY}}',\\n};\\n\\nexport function BrevwickIsland() {\\n  return (\\n    \u003cBrevwickProvider config={config}\u003e\\n      \u003cFeedbackButton position=\\\"bottom-right\\\" /\u003e\\n    \u003c/BrevwickProvider\u003e\\n  );\\n}\"},{\"id\":\"layout\",\"filename\":\"src/layouts/Layout.astro\",\"language\":\"html\",\"template\":\"---\\nimport { BrevwickIsland } from '../components/BrevwickIsland';\\n---\\n\u003chtml lang=\\\"en\\\"\u003e\\n  \u003cbody\u003e\\n    \u003cslot /\u003e\\n    \u003cBrevwickIsland client:load /\u003e\\n  \u003c/body\u003e\\n\u003c/html\u003e\"}],\"verifySteps\":[\"Run `astro dev` and open http://localhost:4321.\",\"Click the floating feedback button.\",\"Submit a test issue.\",\"Confirm the issue lands in /app/issues.\"],\"docsUrl\":\"/docs/sdk/astro\"},{\"id\":\"vanilla\",\"label\":\"Vanilla JS\",\"group\":\"vanilla\",\"status\":\"shipped\",\"runtime\":\"web\",\"packages\":[\"@tatlacas/brevwick-sdk\"],\"installCommand\":\"npm install @tatlacas/brevwick-sdk\",\"snippetTemplates\":[{\"id\":\"module\",\"filename\":\"src/brevwick.ts\",\"language\":\"ts\",\"template\":\"import { createBrevwick } from '@tatlacas/brevwick-sdk';\\n\\nconst bw = createBrevwick({\\n  projectKey: '{{PROJECT_KEY}}',\\n});\\n\\nbw.install();\\n\\ndocument.querySelector('#feedback-button')?.addEventListener('click', async () =\u003e {\\n  const result = await bw.submit({\\n    description: 'Triggered from a custom control',\\n  });\\n  if (!result.ok) {\\n    console.error(result.error.code, result.error.message);\\n  }\\n});\"},{\"id\":\"cdn\",\"filename\":\"index.html\",\"language\":\"html\",\"template\":\"\u003cscript type=\\\"module\\\"\u003e\\n  import { createBrevwick } from 'https://esm.sh/@tatlacas/brevwick-sdk';\\n\\n  const bw = createBrevwick({ projectKey: '{{PROJECT_KEY}}' });\\n  bw.install();\\n\u003c/script\u003e\"}],\"verifySteps\":[\"Open the app in a browser.\",\"Trigger the custom feedback handler.\",\"Confirm the issue lands in /app/issues.\"],\"docsUrl\":\"/docs/sdk/vanilla\"},{\"id\":\"vue\",\"label\":\"Vue\",\"group\":\"vue\",\"status\":\"shipped\",\"runtime\":\"web\",\"packages\":[\"@tatlacas/brevwick-vue\",\"@tatlacas/brevwick-sdk\"],\"installCommand\":\"npm install @tatlacas/brevwick-vue @tatlacas/brevwick-sdk\",\"snippetTemplates\":[{\"id\":\"main\",\"filename\":\"src/main.ts\",\"language\":\"ts\",\"template\":\"import { createApp } from 'vue';\\nimport { BrevwickPlugin } from '@tatlacas/brevwick-vue';\\nimport App from './App.vue';\\n\\ncreateApp(App)\\n  .use(BrevwickPlugin, { projectKey: '{{PROJECT_KEY}}' })\\n  .mount('#app');\"},{\"id\":\"app\",\"filename\":\"src/App.vue\",\"language\":\"vue\",\"template\":\"\u003cscript setup lang=\\\"ts\\\"\u003e\\nimport { FeedbackButton } from '@tatlacas/brevwick-vue';\\n\u003c/script\u003e\\n\\n\u003ctemplate\u003e\\n  \u003cmain\u003e\\n    \u003c!-- your app --\u003e\\n    \u003cFeedbackButton position=\\\"bottom-right\\\" /\u003e\\n  \u003c/main\u003e\\n\u003c/template\u003e\"}],\"verifySteps\":[\"Run `vite` and open the app.\",\"Click the floating feedback button.\",\"Submit a test issue.\",\"Confirm the issue lands in /app/issues.\"],\"docsUrl\":\"/docs/sdk/vue\"},{\"id\":\"svelte\",\"label\":\"Svelte\",\"group\":\"svelte\",\"status\":\"shipped\",\"runtime\":\"web\",\"packages\":[\"@tatlacas/brevwick-svelte\",\"@tatlacas/brevwick-sdk\"],\"installCommand\":\"npm install @tatlacas/brevwick-svelte @tatlacas/brevwick-sdk\",\"snippetTemplates\":[{\"id\":\"layout\",\"filename\":\"src/routes/+layout.svelte\",\"language\":\"svelte\",\"template\":\"\u003cscript lang=\\\"ts\\\"\u003e\\n  import { setBrevwickContext } from '@tatlacas/brevwick-svelte';\\n  setBrevwickContext({ projectKey: '{{PROJECT_KEY}}' });\\n\u003c/script\u003e\\n\\n\u003cslot /\u003e\"},{\"id\":\"page\",\"filename\":\"src/routes/+page.svelte\",\"language\":\"svelte\",\"template\":\"\u003cscript lang=\\\"ts\\\"\u003e\\n  import { FeedbackButton } from '@tatlacas/brevwick-svelte';\\n\u003c/script\u003e\\n\\n\u003cmain\u003e\\n  \u003c!-- your app --\u003e\\n  \u003cFeedbackButton position=\\\"bottom-right\\\" /\u003e\\n\u003c/main\u003e\"}],\"verifySteps\":[\"Run `vite dev` and open the app.\",\"Click the floating feedback button.\",\"Submit a test issue.\",\"Confirm the issue lands in /app/issues.\"],\"docsUrl\":\"/docs/sdk/svelte\"},{\"id\":\"solid\",\"label\":\"SolidJS\",\"group\":\"solid\",\"status\":\"shipped\",\"runtime\":\"web\",\"packages\":[\"@tatlacas/brevwick-solid\",\"@tatlacas/brevwick-sdk\"],\"installCommand\":\"npm install @tatlacas/brevwick-solid @tatlacas/brevwick-sdk\",\"snippetTemplates\":[{\"id\":\"app\",\"filename\":\"src/App.tsx\",\"language\":\"tsx\",\"template\":\"import { BrevwickProvider, FeedbackButton } from '@tatlacas/brevwick-solid';\\n\\nconst config = { projectKey: '{{PROJECT_KEY}}' };\\n\\nexport default function App() {\\n  return (\\n    \u003cBrevwickProvider config={config}\u003e\\n      {/* your app */}\\n      \u003cFeedbackButton position=\\\"bottom-right\\\" /\u003e\\n    \u003c/BrevwickProvider\u003e\\n  );\\n}\"},{\"id\":\"custom-trigger\",\"filename\":\"src/components/ReportLink.tsx\",\"language\":\"tsx\",\"template\":\"import { useFeedback } from '@tatlacas/brevwick-solid';\\n\\nexport function ReportLink() {\\n  const { submit, status } = useFeedback();\\n\\n  return (\\n    \u003cbutton\\n      type=\\\"button\\\"\\n      disabled={status() === 'submitting'}\\n      onClick={() =\u003e submit({ description: 'Triggered from a custom control' })}\\n    \u003e\\n      {status() === 'submitting' ? 'Sending…' : 'Send feedback'}\\n    \u003c/button\u003e\\n  );\\n}\"}],\"verifySteps\":[\"Run `vite` and open the app.\",\"Click the floating feedback button.\",\"Submit a test issue.\",\"Confirm the issue lands in /app/issues.\"],\"docsUrl\":\"/docs/sdk/solid\"},{\"id\":\"angular\",\"label\":\"Angular\",\"group\":\"angular\",\"status\":\"shipped\",\"runtime\":\"web\",\"packages\":[\"@tatlacas/brevwick-angular\",\"@tatlacas/brevwick-sdk\"],\"installCommand\":\"npm install @tatlacas/brevwick-angular @tatlacas/brevwick-sdk\",\"snippetTemplates\":[{\"id\":\"main\",\"filename\":\"src/main.ts\",\"language\":\"ts\",\"template\":\"import { bootstrapApplication } from '@angular/platform-browser';\\nimport { provideBrevwick } from '@tatlacas/brevwick-angular';\\nimport { AppComponent } from './app/app.component';\\n\\nbootstrapApplication(AppComponent, {\\n  providers: [\\n    provideBrevwick({ projectKey: '{{PROJECT_KEY}}' }),\\n  ],\\n});\"},{\"id\":\"component\",\"filename\":\"src/app/app.component.ts\",\"language\":\"ts\",\"template\":\"import { Component } from '@angular/core';\\nimport { BrevwickFeedbackButtonComponent } from '@tatlacas/brevwick-angular';\\n\\n@Component({\\n  selector: 'app-root',\\n  standalone: true,\\n  imports: [BrevwickFeedbackButtonComponent],\\n  template: `\\n    \u003cmain\u003e\u003c!-- your app --\u003e\u003c/main\u003e\\n    \u003cbw-feedback-button position=\\\"bottom-right\\\"\u003e\u003c/bw-feedback-button\u003e\\n  `,\\n})\\nexport class AppComponent {}\"}],\"verifySteps\":[\"Run `ng serve` and open http://localhost:4200.\",\"Click the floating feedback button.\",\"Submit a test issue.\",\"Confirm the issue lands in /app/issues.\"],\"docsUrl\":\"/docs/sdk/angular\"},{\"id\":\"react-native\",\"label\":\"React Native\",\"group\":\"react\",\"status\":\"shipped\",\"runtime\":\"native\",\"packages\":[\"@tatlacas/brevwick-react-native\",\"@tatlacas/brevwick-sdk\"],\"installCommand\":\"# Expo (recommended)\\nnpx exp
1o install @tatlacas/brevwick-react-native @tatlacas/brevwick-sdk react-native-view-shot\\n\\n# Bare React Native (also run `cd ios \u0026\u0026 pod install` on iOS)\\nnpm install @tatlacas/brevwick-react-native @tatlacas/brevwick-sdk react-native-view-shot\",\"envVars\":[{\"name\":\"EXPO_PUBLIC_BREVWICK_PROJECT_KEY\",\"value\":\"{{PROJECT_KEY}}\",\"description\":\"Public project key. Expo inlines `EXPO_PUBLIC_*` into the JS bundle at build time. For bare RN, use react-native-config (or your preferred env tool) and read it the same way.\"}],\"snippetTemplates\":[{\"id\":\"app\",\"filename\":\"App.tsx\",\"language\":\"tsx\",\"template\":\"import {\\n  NavigationContainer,\\n  createNavigationContainerRef,\\n} from '@react-navigation/native';\\nimport {\\n  BrevwickProvider,\\n  FeedbackButton,\\n} from '@tatlacas/brevwick-react-native';\\nimport { RootStack } from './src/navigation';\\n\\nconst navigationRef = createNavigationContainerRef();\\n\\nconst config = {\\n  projectKey:\\n    process.env.EXPO_PUBLIC_BREVWICK_PROJECT_KEY ?? '{{PROJECT_KEY}}',\\n};\\n\\nexport default function App() {\\n  return (\\n    \u003cBrevwickProvider config={config} navigationRef={navigationRef}\u003e\\n      \u003cNavigationContainer ref={navigationRef}\u003e\\n        \u003cRootStack /\u003e\\n      \u003c/NavigationContainer\u003e\\n      \u003cFeedbackButton position=\\\"bottom-right\\\" /\u003e\\n    \u003c/BrevwickProvider\u003e\\n  );\\n}\"},{\"id\":\"custom-trigger\",\"filename\":\"src/screens/HelpScreen.tsx\",\"language\":\"tsx\",\"template\":\"import { Button, View } from 'react-native';\\nimport { useFeedback } from '@tatlacas/brevwick-react-native';\\n\\nexport function HelpScreen() {\\n  const { open, status } = useFeedback();\\n\\n  return (\\n    \u003cView\u003e\\n      \u003cButton\\n        title={status === 'submitting' ? 'Sending…' : 'Send feedback'}\\n        disabled={status === 'submitting'}\\n        onPress={() =\u003e open()}\\n      /\u003e\\n    \u003c/View\u003e\\n  );\\n}\"}],\"verifySteps\":[\"Run `npx expo start` (or `npx react-native run-ios` / `run-android` for bare RN) on a simulator or device.\",\"Tap the floating feedback button in the bottom-right corner.\",\"Submit a test issue from the modal — including the auto-captured screenshot.\",\"Confirm the issue lands in /app/issues in the Brevwick dashboard with the active route name in the metadata.\"],\"docsUrl\":\"/docs/sdk/react-native\"},{\"id\":\"flutter\",\"label\":\"Flutter\",\"group\":\"flutter\",\"status\":\"shipped\",\"runtime\":\"native\",\"packages\":[\"brevwick\"],\"installCommand\":\"flutter pub add brevwick\",\"snippetTemplates\":[{\"id\":\"bootstrap\",\"filename\":\"lib/main.dart\",\"language\":\"dart\",\"template\":\"import 'package:brevwick/brevwick.dart';\\nimport 'package:flutter/material.dart';\\n\\nFuture\u003cvoid\u003e main() async {\\n  WidgetsFlutterBinding.ensureInitialized();\\n\\n  await Brevwick.init(const BrevwickConfig(\\n    projectKey: '{{PROJECT_KEY}}',\\n    environment: BrevwickEnvironment.prod,\\n  ));\\n\\n  runApp(const MyApp());\\n}\"},{\"id\":\"overlay\",\"filename\":\"lib/app.dart\",\"language\":\"dart\",\"template\":\"class MyApp extends StatelessWidget {\\n  const MyApp({super.key});\\n\\n  @override\\n  Widget build(BuildContext context) {\\n    return MaterialApp(\\n      navigatorObservers: [Brevwick.instance.routeObserver()],\\n      home: BrevwickOverlay(child: HomePage()),\\n    );\\n  }\\n}\"}],\"verifySteps\":[\"Build the app, tap the floating action button, and submit a test issue.\",\"Confirm the issue lands in /app/issues — including the route, device, and breadcrumb rings the SDK stamps on every submission.\"],\"docsUrl\":\"/docs/sdk/flutter\"}]}]]}]]}],[\"$L15\"],\"$L16\"]}]\n"])</script>
1<script>self.__next_f.push([1,"17:[]\nd:\"$W17\"\ne:[\"$\",\"$1\",\"h\",{\"children\":[null,[\"$\",\"$L18\",null,{\"children\":\"$L19\"}],[\"$\",\"div\",null,{\"hidden\":true,\"children\":[\"$\",\"$L1a\",null,{\"children\":[\"$\",\"$1b\",null,{\"name\":\"Next.Metadata\",\"children\":\"$L1c\"}]}]}],[\"$\",\"meta\",null,{\"name\":\"next-size-adjust\",\"content\":\"\"}]]}]\n10:[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/0fy78gub0byw0.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n11:[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/chunks/170996v~vthco.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\",\"nonce\":\"$undefined\"}]\n"])</script>
1<script>self.__next_f.push([1,"1d:I[543886,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\"],\"OutletBoundary\"]\n15:[\"$\",\"script\",\"script-0\",{\"src\":\"/_next/static/chunks/07e~ma52xubbw.js\",\"async\":true,\"nonce\":\"$undefined\"}]\n16:[\"$\",\"$L1d\",null,{\"children\":[\"$\",\"$1b\",null,{\"name\":\"Next.MetadataOutlet\",\"children\":\"$@1e\"}]}]\n"])</script>
1<script>self.__next_f.push([1,"19:[[\"$\",\"meta\",\"0\",{\"charSet\":\"utf-8\"}],[\"$\",\"meta\",\"1\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}]]\n"])</script>
1<script>self.__next_f.push([1,"1f:I[941453,[\"/_next/static/chunks/170ff8ut0o9t2.js\",\"/_next/static/chunks/0zmhuz4hpxz8e.js\",\"/_next/static/chunks/0qibc5u18kg02.js\",\"/_next/static/chunks/0kjwgkln7eo2p.js\",\"/_next/static/chunks/12-q9g-1to.xh.js\",\"/_next/static/chunks/0.d~t.uvcm7-2.js\",\"/_next/static/chunks/0qwfog_u8ze1u.js\",\"/_next/static/chunks/0~0uvsk6s2bcs.js\",\"/_next/static/chunks/08h7ugvkz96sz.js\",\"/_next/static/chunks/0~k5p0iy~7rnb.js\"],\"IconMark\"]\n"])</script>
1<script>self.__next_f.push([1,"1c:[[\"$\",\"title\",\"0\",{\"children\":\"SDK install guides — Brevwick\"}],[\"$\",\"meta\",\"1\",{\"name\":\"description\",\"content\":\"Install Brevwick in Next.js, React, Remix, Astro, React Native, Flutter, Vue, Svelte, SolidJS, Angular, or vanilla JS.\"}],[\"$\",\"meta\",\"2\",{\"name\":\"application-name\",\"content\":\"Brevwick\"}],[\"$\",\"meta\",\"3\",{\"property\":\"og:title\",\"content\":\"Brevwick SDK install guides\"}],[\"$\",\"meta\",\"4\",{\"property\":\"og:description\",\"content\":\"Install Brevwick in Next.js, React, Remix, Astro, React Native, Flutter, Vue, Svelte, SolidJS, Angular, or vanilla JS.\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:url\",\"content\":\"https://brevwick.dev/docs/sdk\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:site_name\",\"content\":\"Brevwick\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:image\",\"content\":\"https://brevwick.dev/docs/sdk/opengraph-image-ltsqog?29994aefd24aeb1c\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:alt\",\"content\":\"Brevwick SDK install guides\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"13\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"14\",{\"name\":\"twitter:title\",\"content\":\"Brevwick SDK install guides\"}],[\"$\",\"meta\",\"15\",{\"name\":\"twitter:description\",\"content\":\"Install Brevwick in Next.js, React, Remix, Astro, React Native, Flutter, Vue, Svelte, SolidJS, Angular, or vanilla JS.\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:image\",\"content\":\"https://brevwick.dev/docs/sdk/opengraph-image-ltsqog?29994aefd24aeb1c\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:image:alt\",\"content\":\"Brevwick SDK install guides\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:image:type\",\"content\":\"image/png\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"21\",{\"rel\":\"icon\",\"href\":\"/favicon.svg\"}],[\"$\",\"link\",\"22\",{\"rel\":\"apple-touch-icon\",\"href\":\"/apple-touch-icon.png\"}],[\"$\",\"$L1f\",\"23\",{}]]\n"])</script>
1<script>self.__next_f.push([1,"1e:null\n"])</script>
1<script type="module" src="https://static.cloudflareinsights.com/beacon.min.js/v31edd6df95cf4e85bb4c19e7a9bdbcba1788362987495" integrity="sha512-iIg7k2xntmwu6/uSb5tpc/hySgZc4eoL31yB29W6tJFo2akwjPWcEqnCEdJvGexCL0KEQwVYv5BlowfhVz26hg==" data-cf-beacon='{"version":"2024.11.0","token":"b4bd47ba07fe48d59315413dcf31417d","r":1,"spa":2}' crossorigin="anonymous"></script>
1
2</body></html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.