If you are not sure if the website you would like to visit is secure, you can verify it here. Enter the website address of the page and see parts of its content and the thumbnail images on this site. None (if any) dangerous scripts on the referenced page will be executed. Additionally, if the selected site contains subpages, you can verify it (review) in batches containing 5 pages.
favicon.ico: clerk.com/docs/js-frontend/getting-started/quickstart - Markdown.

site address: clerk.com/docs/js-frontend/getting-started/quickstart redirected to: clerk.com/docs/js-frontend/getting-started/quickstart

site title: Markdown

Our opinion (on Monday 13 July 2026 0:29:46 UTC):

GREEN status (no comments) - no comments
After content analysis of this website we propose the following hashtags:



Meta tags:
description=Add authentication and user management to your JavaScript app with Clerk.;

Headings (most frequently used words):

clerk, your, to, javascript, create, app, add, components, the, quickstart, before, you, start, example, repository, new, install, js, set, api, keys, initialize, run, project, first, user, sdk, using, script, tag, listen, for, load, event, allow, users, sign, in, or, out, next, steps, more, explore, feedback, prebuilt, build, custom, flows, class, reference, customization, localization,

Text of the page (most frequently used words):
clerk (92), the (62), #script (40), your (37), javascript (28), and (26), app (20), load (18), user (16), npm (15), add (14), env (14), sdk (13), file (13), you (12), new (12), document (12), const (12), div (12), following (11), key (11), html (11), from (10), src (10), publishable (10), management (9), create (9), publishablekey (9), vite (9), install (9), copy (8), use (8), api (8), sign (8), getelementbyid (8), react (7), authentication (7), for (7), started (7), run (7), yarn (7), pnpm (7), markdown (6), next (6), are (6), components (6), using (6), window (6), await (6), type (6), dist (6), browser (6), https (6), data (6), anonymous (6), crossorigin (6), with (6), bundle (6), bun (6), main (6), billing (5), that (5), how (5), index (5), options (5), initialize (5), tag (5), dashboard (5), domain (5), meta (5), vite_clerk_publishable_key (5), import (5), getting (5), this (4), explore (4), learn (4), prebuilt (4), signindiv (4), innerhtml (4), userbuttondiv (4), button (4), __internal_clerkuictor (4), clerkui (4), async (4), text (4), your_frontend_api_url (4), defer (4), tags (4), method (4), should (4), frontend (4), dev (4), head (4), like (4), error (4), reject (4), resolve (4), clerkdomain (4), core (4), resources (3), expo (3), have (3), content (3), access (3), before (3), manage (3), build (3), more (3), steps (3), guides (3), your_publishable_key (3), dropdown (3), menu (3), account (3), they (3), out (3), example (3), them (3), select (3), page (3), keys (3), other (3), project (3), loads (3), set (3), choose (3), package (3), quickstart (3), start (3), support (2), 2026 (2), manager (2), not (2), legal (2), terms (2), about (2), documentation (2), all (2), sdks (2), cli (2), b2b (2), github (2), feedback (2), was (2), helpful (2), waitlist (2), control (2), features (2), through (2), organizations (2), shared (2), application (2), class (2), reference (2), custom (2), flows (2), mountsignin (2), else (2), mountuserbutton (2), issignedin (2), function (2), addeventlistener (2), shows (2), signed (2), avatar (2), selecting (2), opens (2), userbutton (2), renders (2), interface (2), signing (2), signin (2), get (2), will (2), easiest (2), way (2), come (2), styled (2), box (2), customizable (2), fit (2), design (2), clerkjs (2), rest (2), event (2), calls (2), shown (2), paste (2), into (2), section (2), quick (2), navigate (2), passed (2), attributes (2), must (2), url (2), these (2), cdn (2), first (2), command (2), body (2), module (2), title (2), width (2), svg (2), icon (2), look (2), something (2), appendchild (2), failed (2), onerror (2), onload (2), true (2), createelement (2), promise (2), slice (2), split (2), atob (2), derive (2), throw (2), code (2), environment (2), variables (2), store (2), projects (2), can (2), framework (2), tauri (2), svelte (2), solidjs (2), rust (2), koa (2), hono (2), elysia (2), angular (2), vue (2), ruby (2), rails (2), sinatra (2), remix (2), python (2), php (2), nuxt (2), backend (2), java (2), ios (2), fastify (2), chrome (2), extension (2), astro (2), android (2), express (2), router (2), tanstack (2), docs (2), inc, cookie, sell, share, info, website, privacy, policy, conditions, brand, assets, contact, blog, careers, company, llm, leaderboard, students, startups, feature, requests, glossary, changelog, view, product, edit, last, updated, jul, what, did, think, lets, collect, signups, products, launch, simple, integrated, workflow, enables, subscriptions, free, trials, payments, plans, related, webhook, events, b2c, applications, accounts, let, teams, collaborate, members, roles, additional, help, grow, customize, localize, customization, localization, interfaces, entirely, scratch, most, relevant, allow, users, loaded, log, console, below, another, listens, listen, prefixed, supports, three, proxyurl, proxy, important, placed, any, authenticate, visit, homepage, http, localhost, 5173, device, initial, scale, viewport, name, href, image, xml, rel, link, utf, charset, lang, doctype, creates, instance, dynamically, imports, derives, does, final, result, resemble, recommended, values, variable, node, files, starting, flag, root, automatically, accessible, object, gives, classes, methods, make, easier, bunx, latest, don, already, commands, prompts, then, variant, vanilla, one, need, bundler, webpack, tabs, preferred, our, two, repo, repository, available, works, development, securing, customizing, portal, organization, session, ask, search, skip,


Text of the page (random words):
javascript quickstart getting started clerk docs skip to main content docs core 3 core 3 core 2 core 1 search documentation ask ai dashboard dashboard sign up sign up next js react expo tanstack react start react router express android astro chrome extension c fastify go ios java js backend sdk javascript nuxt php python remix ruby rails sinatra vue angular elysia hono koa rust solidjs svelte tauri select your sdk next js react expo tanstack react start react router express android astro chrome extension c fastify go ios java js backend sdk javascript nuxt php python remix ruby rails sinatra vue angular elysia hono koa rust solidjs svelte tauri guides reference getting started getting started getting started authentication flows user management session management organization management billing management account portal customizing clerk securing your app ai cli development clerk dashboard how clerk works guides getting started javascript quickstart next steps more to explore available in other sdks copy as markdown markdown copy as markdown before you start clerk icon set up a clerk application example repository javascript quickstart repo to add the javascript sdk to your javascript app you have two options install the package using a package manager like npm use the script tag to load the clerkjs package from our cdn use the following tabs to choose your preferred method npm module script create a new javascript app to install clerk s javascript sdk you need to use a bundler like vite or webpack if you don t already have a javascript app run the following commands to create a new one using vite from the prompts choose the vanilla framework and then choose the javascript variant npm pnpm yarn bun npm create vite latest clerk javascript cd clerk javascript npm install pnpm create vite clerk javascript cd clerk javascript pnpm install yarn create vite clerk javascript cd clerk javascript yarn install bunx create vite clerk javascript cd clerk javascript bun install install clerk clerk js the clerk javascript sdk gives you access to a set of classes and methods to make user authentication easier run the following command to install the sdk npm pnpm yarn bun npm install clerk clerk js pnpm add clerk clerk js yarn add clerk clerk js bun add clerk clerk js set your clerk api keys it s recommended to use environment variables to store your clerk publishable key in javascript projects you can store these values in an env file and load them using your framework s env variable support in node js you can load env files by starting your app with the env file env flag for vite projects environment variables in an env file at the project root are automatically accessible through the import meta env object add your clerk publishable key to your env file in the clerk dashboard navigate to the api keys page in the quick copy section copy your clerk publishable key paste your key into your env file the final result should resemble the following env vite_clerk_publishable_key your_publishable_key initialize clerk to initialize clerk add the following code to your main js file this code does the following imports your publishable key and derives the clerk frontend api domain from it dynamically loads the ui bundle creates a new clerk instance calls the load method to initialize clerk src main js import clerk from clerk clerk js const publishablekey import meta env vite_clerk_publishable_key if publishablekey throw new error add your vite_clerk_publishable_key to the env file derive the frontend api domain from the publishable key const clerkdomain atob publishablekey split _ 2 slice 0 1 loads the clerk ui bundle await new promise resolve reject const script document createelement script script src https clerkdomain npm clerk ui 1 dist ui browser js script async true script crossorigin anonymous script onload resolve script onerror reject new error failed to load clerk ui bundle document head appendchild script const clerk new clerk publishablekey await clerk load ui clerkui window __internal_clerkuictor add clerk components to your app clerk s prebuilt components are the easiest way to add authentication and user management to your app they come styled out of the box and are customizable to fit your app s design to get started add the following components to your app signin renders a user interface for signing in userbutton shows the signed in user s avatar selecting it opens a dropdown menu with account management options your main js file should look something like this src main js import clerk from clerk clerk js const publishablekey import meta env vite_clerk_publishable_key if publishablekey throw new error add your vite_clerk_publishable_key to the env file derive the frontend api domain from the publishable key const clerkdomain atob publishablekey split _ 2 slice 0 1 loads the clerk ui bundle await new promise resolve reject const script document createelement script script src https clerkdomain npm clerk ui 1 dist ui browser js script async true script crossorigin anonymous script onload resolve script onerror reject new error failed to load clerk ui bundle document head appendchild script const clerk new clerk publishablekey await clerk load ui clerkui window __internal_clerkuictor if clerk issignedin document getelementbyid app innerhtml div id user button div const userbuttondiv document getelementbyid user button clerk mountuserbutton userbuttondiv else document getelementbyid app innerhtml div id sign in div const signindiv document getelementbyid sign in clerk mountsignin signindiv and your index html file should look something like this index html doctype html html lang en head meta charset utf 8 link rel icon type image svg xml href vite svg meta name viewport content width device width initial scale 1 0 title vite app title head body div id app div script type module src src main js script body html run your project run your project with the following command npm pnpm yarn bun npm run dev pnpm run dev yarn dev bun run dev create your first user visit your app s homepage at http localhost 5173 select sign up on the page and authenticate to create your first user add the sdk using a script tag these script tags will load clerk s ui bundle and javascript sdk from the cdn and initialize them with your clerk publishable key and frontend api url they should be placed before any other script tags that use the javascript sdk important clerk options passed as script tag attributes must be prefixed with data clerk the script tag supports three attributes data clerk publishable key publishablekey data clerk proxy url proxyurl and data clerk domain domain all other options must be passed to clerk s load method in the clerk dashboard navigate to the api keys page in the quick copy section select javascript from the dropdown menu copy the script tags and paste them into your html file as shown in the following example index html rest of your html file script defer crossorigin anonymous src https your_frontend_api_url npm clerk ui 1 dist ui browser js type text javascript script script defer crossorigin anonymous data clerk publishable key your_publishable_key src https your_frontend_api_url npm clerk clerk js 6 dist clerk browser js type text javascript script listen for the load event below the script tags that initialize the sdk create another script tag that listens for the load event and calls clerk s load method to load the sdk as shown in the following example index html rest of your html file script window addeventlistener load async function await clerk load ui clerkui window __internal_clerkuictor console log clerkjs is loaded script allow users to sign in or out clerk s prebuilt components are the easiest way to add authentication and user management to your app they come styled out of the box and are customizable to fit your app s design to get started you will use signin renders a user interface for signing in userbutton shows the signed in user s avatar selecting it opens a dropdown menu with account management options index html div id app div script defer crossorigin anonymous src https your_frontend_api_url npm clerk ui 1 dist ui browser js type text javascript script script defer crossorigin anonymous data clerk publishable key your_publishable_key src https your_frontend_api_url npm clerk clerk js 6 dist clerk browser js type text javascript script script window addeventlistener load async function await clerk load ui clerkui window __internal_clerkuictor if clerk issignedin document getelementbyid app innerhtml div id user button div const userbuttondiv document getelementbyid user button clerk mountuserbutton userbuttondiv else document getelementbyid app innerhtml div id sign in div const signindiv document getelementbyid sign in clerk mountsignin signindiv script next steps explore the most relevant next steps for your sdk using the following guides prebuilt components learn how to add clerk s prebuilt authentication and user management ui to your app build custom flows learn how to build custom user interfaces entirely from scratch using the clerk api clerk class reference learn more about the clerk class and how to use it customization localization learn how to customize and localize clerk components more to explore explore additional clerk features that help you build manage and grow your application organizations organizations are shared accounts that let teams collaborate manage members and roles and control access to shared resources billing billing enables you to manage subscriptions free trials payments plans and billing related webhook events for b2c and b2b applications waitlist waitlist lets you collect signups and control access to new products or features before launch through a simple integrated workflow feedback what did you think of this content it was helpful it was not helpful i have feedback last updated on jul 10 2026 github edit on github product authentication b2b authentication billing cli sdks react next js expo view all resources documentation changelog glossary feature requests startups students llm leaderboard company about careers blog contact brand assets legal terms and conditions privacy policy website terms of use legal resources do not sell share my info cookie manager 2026 clerk inc support copy as markdown markdown copy as markdown
Thumbnail images (randomly selected): * Images may be subject to copyright.GREEN status (no comments)

Verified site has: 49 subpage(s). Do you want to verify them? Verify pages:

1-5 6-10 11-15 16-20 21-25 26-30 31-35 36-40 41-45 46-49


The site also has references to the 2 subdomain(s)

  dashboard.clerk.com  Verify   feedback.clerk.com  Verify


Top 50 hastags from of all verified websites.

Supplementary Information (add-on for SEO geeks)*- See more on header.verify-www.com

Header

HTTP/1.0 308 Permanent Redirect
Content-Type text/plain
Location htt????/clerk.com/docs/js-frontend/getting-started/quickstart
Refresh 0;url=htt????/clerk.com/docs/js-frontend/getting-started/quickstart
server Vercel
HTTP/2 200
age 162345
cache-control public, max-age=0, must-revalidate
content-encoding gzip
content-security-policy-report-only connect-src self htt????/clerk-telemetry.com htt????/*.clerk-telemetry.com htt????/api.stripe.com htt????/maps.googleapis.com htt????/img.clerk.com htt????/images.clerkstage.dev clerk.clerk.com htt????/*.ingest.us.sentry.io htt????/*.ingest.sentry.io htt????/cdn.segment.com htt????/segapi.clerk.com htt????/scdn.clerk.com htt????/www.google-analytics.com htt????/analytics.google.com htt????/region1.google-analytics.com htt????/stats.g.doubleclick.net htt????/www.google.com htt????/*.hotjar.com htt????/*.hotjar.io htt????/js.hs-analytics.net htt????/js.hs-scripts.com htt????/js.hs-banner.com htt????/js.hscollectedforms.net htt????/js.hsadspixel.net htt????/js.hubspot.com htt????/api.hubapi.com htt????/api.hubspot.com htt????/track.hubspot.com htt????/forms.hubspot.com htt????/px.ads.linkedin.com htt????/snap.licdn.com htt????/www.googletagmanager.com htt????/www.googleadservices.com htt????/googleads.g.doubleclick.net htt????/ad.doubleclick.net htt????/static.ads-twitter.com htt????/analytics.twitter.com htt????/t.co htt????/alb.reddit.com htt????/pixel-config.reddit.com htt????/us.posthog.com htt????/api.dub.co htt????/d.to htt????/code.trygravity.ai htt????/*.trygravity.ai htt????/va.vercel-scripts.com htt????/*.algolia.net htt????/*.algolianet.com htt????/insights.algolia.io htt????/proxy.scalar.com htt????/registry.scalar.com htt????/api.scalar.com htt????/*.inkeep.com htt????/dapi.clerk.com; default-src self ; font-src self htt????/fonts.scalar.com htt????/fonts.gstatic.com data:; form-action self ; frame-src self htt????/challenges.cloudflare.com htt????/*.js.stripe.com htt????/js.stripe.com htt????/hooks.stripe.com htt????/www.youtube.com htt????/www.youtube-nocookie.com htt????/player.vimeo.com htt????/vimeo.com htt????/previews.clerkstage.dev htt????/*.clerkshowcase.com htt????/profound-falcon-32.clerk.accounts.dev; img-src self htt????/img.clerk.com htt????/px.ads.linkedin.com htt????/www.googletagmanager.com htt????/googleads.g.doubleclick.net htt????/www.google.com htt????/www.google.ca htt????/www.google.co.uk htt????/www.google.co.in htt????/www.google.co.id htt????/www.google.co.ma htt????/www.google.com.ng htt????/www.google.com.bd htt????/www.google.com.ua htt????/www.google.com.my htt????/www.google.com.tw htt????/analytics.twitter.com htt????/t.co htt????/alb.reddit.com htt????/*.trygravity.ai htt????/storage.googleapis.com htt????/i.ytimg.com htt????/yt3.ggpht.com htt????/vercel.com data:; media-src self htt????/*.vimeocdn.com; report-uri htt????/o449981.ingest.us.sentry.io/api/4509032994701312/security/?sentry_key=e1b27a6d9d80cfcd90930df90189f8a9; script-src self unsafe-inline https: http: htt????/*.js.stripe.com htt????/js.stripe.com htt????/maps.googleapis.com; style-src self unsafe-inline htt????/cdn.jsdelivr.net htt????/fonts.googleapis.com; worker-src self blob:; report-to csp-endpoint
content-type text/html; charset=utf-8
date Sat, 11 Jul 2026 03:24:00 GMT
etag W/ 15wkdx0dwejrdnp
referrer-policy same-origin
reporting-endpoints csp-endpoint= htt????/o449981.ingest.us.sentry.io/api/4509032994701312/security/?sentry_key=e1b27a6d9d80cfcd90930df90189f8a9
server Vercel
set-cookie __signed_in=false; Path=/
set-cookie consent-required=1; Path=/; Secure; SameSite=lax
strict-transport-security max-age=63072000
vary rsc, next-router-state-tree, next-router-prefetch, next-router-segment-prefetch
x-clerk-auth-reason session-token-and-uat-missing
x-clerk-auth-status signed-out
x-content-type-options nosniff
x-download-options noopen
x-frame-options deny
x-matched-path /docs/[precomputeCode]/[[...slugSegments]]
x-nextjs-prerender 1
x-nextjs-stale-time 300
x-powered-by Next.js
x-vercel-cache HIT
x-vercel-id cdg1::iad1::wvvbl-1783902586035-22ebf0205ef6
x-xss-protection 1

Meta Tags

title="Markdown"
charset="utf-8"
name="viewport" content="width=device-width, initial-scale=1"
name="next-size-adjust" content=""
name="description" content="Add authentication and user management to your JavaScript app with Clerk."
name="algolia:rank" content="0"
name="algolia:available-sdks" content="nextjs,react,js-frontend,chrome-extension,expo,android,ios,expressjs,fastify,react-router,tanstack-react-start,go,astro,nuxt,vue,ruby"
name="algolia:canonical" content="/docs/:sdk:/getting-started/quickstart"
property="og:title" content="JavaScript Quickstart - Getting started | Clerk Docs"
property="og:description" content="Add authentication and user management to your JavaScript app with Clerk."
property="og:url" content="htt????/clerk.com/docs/js-frontend/getting-started/quickstart"
property="og:site_name" content="Clerk"
property="og:image" content="htt????/clerk.com/og-image?params=%7B%22title%22%3A%22JavaScript+Quickstart%22%2C%22description%22%3A%22Add+authentication+and+user+management+to+your+JavaScript+app+with+Clerk.%22%2C%22breadcrumbs%22%3A%5B%22Getting+started%22%5D%7D&token=466251a7ec121a1a1ed4c5d8c94e649a3a9758194592937c173a968f5125edc2"
property="og:image:type" content="image/png"
property="og:image:width" content="1200"
property="og:image:height" content="630"
property="og:type" content="website"
name="twitter:card" content="summary_large_image"
name="twitter:site" content="@clerk"
name="twitter:title" content="JavaScript Quickstart - Getting started | Clerk Docs"
name="twitter:description" content="Add authentication and user management to your JavaScript app with Clerk."
name="twitter:image" content="htt????/clerk.com/og-image?params=%7B%22title%22%3A%22JavaScript+Quickstart%22%2C%22description%22%3A%22Add+authentication+and+user+management+to+your+JavaScript+app+with+Clerk.%22%2C%22breadcrumbs%22%3A%5B%22Getting+started%22%5D%7D&token=466251a7ec121a1a1ed4c5d8c94e649a3a9758194592937c173a968f5125edc2"
name="twitter:image:type" content="image/png"
name="twitter:image:width" content="1200"
name="twitter:image:height" content="630"
name="sentry-trace" content="7812335c6f134582aad4fd7bc360080d-82d2eaef17cd6ee7-0"
name="baggage" content="sentry-environment=vercel-production,sentry-release=93008f0d163490cf6d03391149eabca0556478db,sentry-public_key=e1b27a6d9d80cfcd90930df90189f8a9,sentry-trace_id=7812335c6f134582aad4fd7bc360080d,sentry-org_id=449981,sentry-sampled=false,sentry-sample_rand=0.6771424733705378,sentry-sample_rate=0.001"

Load Info

page size154446
load time (s)0.440172
redirect count1
speed download351013
server IP 76.76.21.21
* all occurrences of the string "http://" have been changed to "htt???/"