[{"data":1,"prerenderedAt":383},["ShallowReactive",2],{"blog-how-to/analytics-bolt-new":3},{"id":4,"title":5,"body":6,"category":357,"date":358,"dateModified":359,"description":360,"draft":361,"extension":362,"faq":363,"featured":361,"keywords":369,"meta":370,"navigation":371,"ogDescription":372,"ogTitle":359,"path":373,"readTime":374,"schemaOrg":375,"schemaType":376,"seo":377,"sitemap":378,"stem":379,"tags":380,"twitterCard":381,"__hash__":382},"blog/blog/how-to/analytics-bolt-new.md","Add Analytics to Your Bolt.new Site Without Cookies",{"type":7,"value":8,"toc":348},"minimark",[9,13,16,22,27,30,65,68,72,88,119,128,131,135,232,238,242,245,253,256,260,263,269,272,278,282,285,293,325],[10,11,12],"p",{},"Bolt.new is fast. You describe what you want, it builds a working app, and you deploy to Netlify in minutes. But your deployed site has no analytics. You are shipping blind.",[10,14,15],{},"Adding Google Analytics means dealing with cookies, consent banners, and a complex dashboard for a site that might get 50 visitors a day. Here is a simpler approach.",[17,18,19],"tldr",{},[10,20,21],{},"Add one script tag to your Bolt.new project. OperatorStack tracks page views, unique visitors, referral sources, and conversion rates without cookies. No consent banner needed. Setup takes two minutes.",[23,24,26],"h2",{"id":25},"what-you-get","What You Get",[10,28,29],{},"With one line of HTML, your Bolt.new site starts tracking:",[31,32,33,41,47,53,59],"ul",{},[34,35,36,40],"li",{},[37,38,39],"strong",{},"Page views"," per page, per day",[34,42,43,46],{},[37,44,45],{},"Unique visitors"," without cookies or fingerprinting",[34,48,49,52],{},[37,50,51],{},"Referral sources"," (direct, search, social, specific domains)",[34,54,55,58],{},[37,56,57],{},"Device and browser"," breakdown",[34,60,61,64],{},[37,62,63],{},"Conversion rates"," if you add a waitlist or form",[10,66,67],{},"All of this shows up in a clean dashboard. No GA4 learning curve.",[23,69,71],{"id":70},"setup","Setup",[73,74,76],"step",{"number":75},"1",[10,77,78,81,82,87],{},[37,79,80],{},"Create an OperatorStack project."," Sign up at ",[83,84,86],"a",{"href":85},"/","OperatorStack",", create a project, and enter your Bolt.new site's deployed URL (the Netlify URL or your custom domain).",[73,89,91,106,116],{"number":90},"2",[10,92,93,96,97,101,102,105],{},[37,94,95],{},"Add the script tag."," In your Bolt.new project, open ",[98,99,100],"code",{},"index.html"," and paste this before ",[98,103,104],{},"\u003C/head>",":",[107,108,114],"pre",{"className":109,"code":111,"language":112,"meta":113},[110],"language-html","\u003Cscript src=\"https://operatorstack.dev/os.js\" data-project=\"pk_your_key\">\u003C/script>\n","html","",[98,115,111],{"__ignoreMap":113},[10,117,118],{},"You can also prompt Bolt: \"Add this script tag to the head of my index.html\" and paste the snippet.",[73,120,122],{"number":121},"3",[10,123,124,127],{},[37,125,126],{},"Deploy."," Click deploy in Bolt.new. Your site goes to Netlify with analytics active. Visit your site, then check the OperatorStack dashboard. You should see your visit within seconds.",[10,129,130],{},"That is the entire setup. No configuration file, no environment variables, no API key rotation.",[23,132,134],{"id":133},"what-makes-this-different-from-google-analytics","What Makes This Different from Google Analytics",[136,137,138,152],"table",{},[139,140,141],"thead",{},[142,143,144,147,150],"tr",{},[145,146],"th",{},[145,148,149],{},"Google Analytics",[145,151,86],{},[153,154,155,167,177,188,199,210,221],"tbody",{},[142,156,157,161,164],{},[158,159,160],"td",{},"Uses cookies",[158,162,163],{},"Yes",[158,165,166],{},"No",[142,168,169,172,175],{},[158,170,171],{},"Needs consent banner",[158,173,174],{},"Yes (EU law)",[158,176,166],{},[142,178,179,182,185],{},[158,180,181],{},"Visitor data accuracy",[158,183,184],{},"Loses 10-30% from opt-outs",[158,186,187],{},"Tracks all visitors",[142,189,190,193,196],{},[158,191,192],{},"Script size",[158,194,195],{},"~45KB",[158,197,198],{},"~13KB",[142,200,201,204,207],{},[158,202,203],{},"Setup time",[158,205,206],{},"10-15 minutes + consent config",[158,208,209],{},"2 minutes",[142,211,212,215,218],{},[158,213,214],{},"Dashboard complexity",[158,216,217],{},"High (GA4 learning curve)",[158,219,220],{},"Simple",[142,222,223,226,229],{},[158,224,225],{},"Cost",[158,227,228],{},"Free (complexity cost)",[158,230,231],{},"Free tier",[233,234,235],"warning-box",{},[10,236,237],{},"If you target EU visitors and use Google Analytics, you are legally required to show a cookie consent banner. Studies show 10-30% of visitors bounce or decline cookies, which means your analytics undercount the traffic that matters most.",[23,239,241],{"id":240},"tracking-custom-events","Tracking Custom Events",[10,243,244],{},"Page views are automatic. If you want to track specific interactions, use the SDK:",[107,246,251],{"className":247,"code":249,"language":250,"meta":113},[248],"language-javascript","// Track a button click\ndocument.querySelector(\"#cta-button\").addEventListener(\"click\", () => {\n  OperatorStack.trackEvent(\"cta_click\");\n});\n","javascript",[98,252,249],{"__ignoreMap":113},[10,254,255],{},"Custom events appear in your analytics dashboard alongside page view data.",[23,257,259],{"id":258},"adding-a-waitlist-or-form","Adding a Waitlist or Form",[10,261,262],{},"Since the script tag is already on your page, adding a waitlist or contact form takes one more line:",[107,264,267],{"className":265,"code":266,"language":112,"meta":113},[110],"\u003C!-- Waitlist signup -->\n\u003Cdiv data-os-widget=\"waitlist\">\u003C/div>\n\n\u003C!-- Or a contact form -->\n\u003Cdiv data-os-widget=\"contact\">\u003C/div>\n",[98,268,266],{"__ignoreMap":113},[10,270,271],{},"Signups and form submissions automatically show up as contacts in your dashboard. Your analytics conversion rate updates to reflect signups divided by unique visitors. No extra tools needed.",[273,274,275],"tip-box",{},[10,276,277],{},"If you are building a landing page with Bolt.new, add both the analytics script and a waitlist widget from the start. You will have traffic data and signups from day one, all in one dashboard.",[23,279,281],{"id":280},"how-cookie-free-tracking-works","How Cookie-Free Tracking Works",[10,283,284],{},"OperatorStack creates a privacy-friendly visitor ID using a hash of the visitor's IP and user agent. This ID does not persist across days, cannot be used to track individuals across sites, and does not require consent under GDPR. You get accurate aggregate data (page views, unique visitors, sources) without storing personal data.",[10,286,287,288,292],{},"For more details, see the ",[83,289,291],{"href":290},"/blog/guides/privacy-friendly-analytics","privacy-friendly analytics guide",".",[294,295,296,303,309,319],"faq-section",{},[297,298,300],"faq-item",{"question":299},"Does this work with Bolt.new's deployment?",[10,301,302],{},"Yes. Bolt.new deploys to Netlify. The OperatorStack script tag loads from our CDN and works on any hosting provider.",[297,304,306],{"question":305},"Why not just use Google Analytics?",[10,307,308],{},"Google Analytics requires cookies, which means you need a consent banner. Consent banners reduce conversions by 10-30%. For a pre-launch page where every visitor matters, that is a steep price. OperatorStack's analytics are cookie-free and do not require any consent banner.",[297,310,312],{"question":311},"Can I track custom events, not just page views?",[10,313,314,315,318],{},"Yes. Use ",[98,316,317],{},"OperatorStack.trackEvent('event_name')"," to track custom interactions like button clicks, video plays, or scroll depth milestones.",[297,320,322],{"question":321},"What about ad blockers?",[10,323,324],{},"Some ad blockers block Google Analytics but not OperatorStack. Because OperatorStack does not use cookies or fingerprinting, it is not on most blocklists. You will see more accurate visitor counts than with GA.",[326,327,328,329],"content-related-articles",{},"\n  ",[330,331,328,335],"contentrelatedcard",{"href":332,"title":333,"description":334},"/blog/how-to/analytics-without-cookie-banners","How to Add Analytics Without Cookie Banners","Deep dive into cookie-free analytics and why they matter for landing pages.",[330,336,328,340],{"href":337,"title":338,"description":339},"/blog/how-to/waitlist-lovable-app","Add a Waitlist to Your Lovable App in 5 Minutes","Similar integration guide for Lovable-built projects.",[330,341,344],{"href":290,"title":342,"description":343},"Privacy-Friendly Analytics Guide","Everything you need to know about cookie-free analytics and what you can track.",[345,346],"cta-box",{"href":85,"label":347},"Get Started Free",{"title":113,"searchDepth":349,"depth":349,"links":350},2,[351,352,353,354,355,356],{"id":25,"depth":349,"text":26},{"id":70,"depth":349,"text":71},{"id":133,"depth":349,"text":134},{"id":240,"depth":349,"text":241},{"id":258,"depth":349,"text":259},{"id":280,"depth":349,"text":281},"how-to","2026-03-13",null,"How to add privacy-friendly, cookie-free analytics to any Bolt.new project. One script tag, no consent banner, instant traffic data.",false,"md",[364,365,366,368],{"question":299,"answer":302},{"question":305,"answer":308},{"question":311,"answer":367},"Yes. Use OperatorStack.trackEvent('event_name') to track custom interactions like button clicks, video plays, or scroll depth milestones.",{"question":321,"answer":324},"bolt.new analytics,bolt new add analytics,bolt.new google analytics alternative,analytics for bolt website,bolt.new tracking,cookie-free analytics bolt,vibe coding analytics",{},true,"Your Bolt.new site has zero analytics by default. Add cookie-free tracking in 2 minutes with one script tag. No Google Analytics, no cookie banner.","/blog/how-to/analytics-bolt-new","4 min","[object Object]","HowTo",{"title":5,"description":360},{"loc":373},"blog/how-to/analytics-bolt-new",[],"summary_large_image","EBIeAHye9cK9Usg0ifUTDnU6BTPyZ4fTb_F28bgfjFI",1781277655037]