1"use strict";(self.webpackChunkposthog_com=self.webpackChunkposthog_com||[]).push([[3493],{15906:function(e,t,o){o.r(t),o.d(t,{default:function(){return Y}});var s=o(95114),a=o(8462),n=o(40435),r=o(2212),i=o(93747),l=o(36501),c=o(33721),d=o(72753);var u=o(79440),h=o(16923);const m=(0,u.P)({viewBox:h.di,body:h.rf,meta:{slug:"puzzle",name:"Puzzle",namespace:"hoggies",figmaNodeId:"276:1868",aspectRatio:1,tags:["hog","group","puzzle","pieces","together","fit","purple","hold hands","team","pair"]}});var g=o(17332);const p=(0,u.P)({viewBox:g.di,body:g.rf,meta:{slug:"caveman",name:"Caveman",namespace:"hoggies",figmaNodeId:"276:1775",aspectRatio:1,tags:["hog","solo","group","evolution 2","caveman","club"]}});var x=o(44814);var y=o(1573);const w=(0,u.P)({viewBox:y.di,body:y.rf,meta:{slug:"final-evolution",name:"Final Evolution",namespace:"hoggies",figmaNodeId:"276:1805",aspectRatio:1,tags:["hog","solo","group","evolution 5","flying","final level"]}});var b=o(78087);const f=(0,u.P)({viewBox:b.di,body:b.rf,meta:{slug:"code-bubble",name:"Code Bubble",namespace:"hoggies",figmaNodeId:"276:1773",aspectRatio:1,tags:["hog","solo","bubble","zen","code","closed eyes","meditation"]}});var v=o(2362),j=o(71167),k=o(52914),I=o(54136),N=o(21195),P=o(57447),_=o(49271),C=o(86070);const H="my-6 mt-12 text-2xl font-bold @md/reader-content:text-3xl",S="https://res.cloudinary.com/dmukukwp6/image/upload/posthog.com/contents/images/products/data-warehouse/warehouse-hog.png",A=e=>{let{children:t}=e;return(0,C.jsx)(j.x,{type:"highlight",color:"rgba(235, 157, 42, 0.2)",strokeWidth:1,padding:2,delay:300,multiline:!0,children:(0,C.jsx)("span",{className:"font-bold text-red dark:text-yellow",children:t})})},T=()=>(0,C.jsx)(c.s,{items:l.b.children}),D=e=>{let{items:t}=e;return(0,C.jsx)("ul",{className:"mt-3 mb-0 list-none space-y-2 pl-0",children:t.map((e,t)=>{let{Icon:o,color:s,text:a}=e;return(0,C.jsxs)("li",{className:"flex items-start gap-2 text-sm text-secondary",children:[(0,C.jsx)(o,{className:"size-4 shrink-0 mt-0.5 "+s}),(0,C.jsx)("span",{children:a})]},t)})})},z={blue:"bg-blue/10 text-blue dark:bg-blue/20",red:"bg-red/10 text-red dark:bg-red/20",yellow:"bg-yellow/15 text-yellow dark:bg-yellow/20",green:"bg-green/10 text-green dark:bg-green/20"},B=e=>{let{title:t,highlightedTitle:o,titleSuffix:s,highlightColor:a="blue",children:n,image:r,imageHasChrome:l=!1,illustration:c}=e;const d=[t,o,s].filter(Boolean).join(" "),u=l?"-mx-4 -mb-4 mt-4 overflow-hidden rounded-b leading-[0] @xl:-mx-6 @xl:-mb-6":"-mx-4 -mb-4 mt-4 overflow-hidden rounded-b px-4 pt-3 leading-[0] @xl:-mx-6 @xl:-mb-6 @xl:px-6",h=l?"w-full block":"w-full block rounded-t-md shadow-[0_2px_10px_rgba(0,0,0,0.12)]",m=(0,C.jsxs)(C.Fragment,{children:[(0,C.jsxs)("h2",{className:"mt-0 mb-2 text-2xl font-bold",children:[t,o?(0,C.jsxs)(C.Fragment,{children:[" ",(0,C.jsx)("span",{className:"rounded-sm px-0.5 "+z[a],children:o}),s?" "+s:null]}):null]}),(0,C.jsx)("div",{className:"text-secondary text-[15px]",children:n})]});return c?(0,C.jsx)("div",{className:"rounded bg-primary p-4 @xl:p-6",children:(0,C.jsxs)("div",{className:"grid items-start gap-6 @md:grid-cols-[1fr_240px]",children:[(0,C.jsx)("div",{children:m}),(0,C.jsx)("div",{className:"flex justify-center self-center",children:c})]})}):(0,C.jsxs)("div",{className:"rounded bg-primary p-4 @xl:p-6",children:[m,r?(0,C.jsx)("div",{className:u,children:(0,C.jsx)(i.A,{src:r,alt:d,imgClassName:h})}):null]})},L=[{Icon:_.IconDatabase,color:"text-blue",text:"Set up CDC pipelines from Postgres, MySQL, and other sources"},{Icon:_.IconTarget,color:"text-red",text:"Define and version core metrics so every team is working from the same numbers"},{Icon:_.IconShuffle,color:"text-purple",text:"Build and manage reverse ETL syncs to keep downstream tools up to date"},{Icon:_.IconCode,color:"text-green",text:"Write transformation logic that enriches events with data from other systems"},{Icon:_.IconServer,color:"text-orange",text:"Query billions of rows without managing a cluster"},{Icon:_.IconStack,color:"text-sky-blue",text:"Flexibility to use PostHog's full context warehouse or bring your own tools"}],q=[{Icon:_.IconShuffle,color:"text-blue",text:"Sync external data sources and query them alongside your product events"},{Icon:_.IconFlask,color:"text-purple",text:"Build experiment cohorts from warehouse data without creating a custom pipeline"},{Icon:_.IconSparkles,color:"text-red",text:"Use PostHog AI to write SQL when you don't want to"}],E=[{Icon:_.IconBolt,color:"text-yellow",text:"Capture an event? It's in your analytics."},{Icon:_.IconShuffle,color:"text-purple",text:"Data from Stripe? Use it with your flags."},{Icon:_.IconMessage,color:"text-sky-blue",text:"Define a metric? Mention it in Slack."}],Q=[{title:"Data engineers",description:"Build complex models and transformations that need your expertise, not plumbing.",Icon:_.IconDatabase,iconColor:"text-blue",bullets:L},{title:"Product engineers",description:"Your data is already in PostHog. Query it, use it in experiments, and ship against it without waiting on the data team.",Icon:_.IconCode,iconColor:"text-red",bullets:q}],M=[{value:"data-you-trust",label:"Data you trust",color:"bg-blue",activeText:"text-white",progressBar:"bg-white shadow-[0_0_6px_2px_rgba(0,0,0,0.2)]",content:(0,C.jsxs)(B,{title:"Start with",highlightedTitle:"data you trust",highlightColor:"blue",image:"https://res.cloudinary.com/dmukukwp6/image/upload/c_crop,x_2,y_0,w_1180,h_665/w_1600,c_limit,q_auto,f_auto/dw_temp_528efa76a2.png",children:[(0,C.jsx)("p",{className:"m-0",children:"AI products don't fail because the model is bad. They fail because the data feeding them is incomplete, inconsistent, or stuck in a tool it can't reach."}),(0,C.jsx)("p",{className:"m-0 mt-3",children:"PostHog's context warehouse gives your AI features a foun
1dation that works: clean event data, business context from your other tools, and full data ownership."})]})},{value:"ask-posthog",label:"Ask @PostHog",color:"bg-red",activeText:"text-white",progressBar:"bg-white shadow-[0_0_6px_2px_rgba(0,0,0,0.2)]",content:(0,C.jsxs)(B,{title:"Ask @PostHog",highlightedTitle:"anything",highlightColor:"red",image:"https://res.cloudinary.com/dmukukwp6/image/upload/w_1600,c_limit,q_auto,f_auto/Post_Hog_ai_response_ed994d3859.png",children:[(0,C.jsxs)("p",{className:"m-0",children:["With all your data in one place, PostHog becomes omniscient about your business. Use"," ",(0,C.jsx)(r.A,{className:"underline font-semibold",to:"/context-warehouse/posthog-ai",children:"PostHog AI"})," ","or our"," ",(0,C.jsx)(r.A,{className:"underline font-semibold",to:"/slack",children:"Slack app"})," ","to generate SQL queries, model your data, and get insights about your users' behavior."]}),(0,C.jsx)("p",{className:"m-0 mt-3",children:"PostHog AI can be used by everyone, product teams can ask questions and get insights without relying on the data team, freeing them up to build complex data models."})]})},{value:"self-drive",label:"Self-drive",color:"bg-yellow",activeText:"text-black",progressBar:"bg-black/70 shadow-[0_0_6px_2px_rgba(255,255,255,0.4)]",content:(0,C.jsx)(B,{title:"Let PostHog",highlightedTitle:"self-drive",titleSuffix:"your development",highlightColor:"yellow",image:"https://res.cloudinary.com/dmukukwp6/image/upload/inbox_prs_cloud_f44f8ba69b.png",imageHasChrome:!0,children:(0,C.jsxs)("p",{className:"m-0",children:["What are you going to do with all those insights? PostHog understands your product. It can identify usage patterns, triage bugs, and open PRs automatically,"," ",(0,C.jsx)(r.A,{className:"underline font-semibold",to:"/products",children:"self-driving development"})," ","of your product based on what it knows your users need."]})})},{value:"better-together",label:"Better together",color:"bg-green",activeText:"text-white",progressBar:"bg-white shadow-[0_0_6px_2px_rgba(0,0,0,0.2)]",content:(0,C.jsxs)(B,{title:"Good solo,",highlightedTitle:"better together",highlightColor:"green",illustration:(0,C.jsx)(m,{size:240,title:"Two hedgehogs holding interlocking puzzle pieces",className:"w-full max-w-[240px]"}),children:[(0,C.jsx)("p",{className:"m-0",children:"The modern data stack is a bunch of tools that can barely tolerate each other. But PostHog is a system that works together."}),(0,C.jsx)(D,{items:E})]})}],O=[{Hog:p,size:26},{Hog:x.i,size:26},{Hog:w,size:34}],W=[{name:"",align:"left",width:"minmax(5rem,max-content)"}].concat((0,s.A)(["Just launched","Getting traction","Scaling up"].map((e,t)=>{const{Hog:o,size:s}=O[t];return{name:(0,C.jsxs)("span",{className:"flex items-center gap-2",children:[(0,C.jsx)("span",{className:"relative block shrink-0",style:{width:26,height:26},children:(0,C.jsx)(o,{size:s,className:"absolute left-1/2 top-1/2 max-w-none -translate-x-1/2 -translate-y-1/2"})}),e]}),align:"left",width:"minmax(10rem,1fr)"}}))),R=[{label:"Data in",cells:["Send Events from your product","Sync Stripe and your CRM","Custom sources and transformation logic"]},{label:"Storage",cells:["Data stored by PostHog","Managed Warehouse, basic queries","Managed Warehouse, advanced modeling"]},{label:"Data out",cells:["Use PostHog Product Analytics","Create Cohorts from combined data","Reverse ETL to your whole stack"]},{label:"AI",cells:["Ask PostHog MCP to set up your tools","Use PostHog AI to query your data","Get PostHog Code to self-drive your development"]}].map(e=>({key:e.label,cells:[{content:(0,C.jsx)("span",{className:"font-semibold text-primary",children:e.label})}].concat((0,s.A)(e.cells.map(e=>({content:(0,C.jsx)("span",{className:"text-secondary",children:e})}))))})),F=[{trigger:"Can I use PostHog's context warehouse with my existing warehouse?",content:(0,C.jsx)("p",{children:"Yes. You can query your existing Snowflake, BigQuery, or Redshift data inside PostHog without moving it. PostHog works alongside your current setup, or replaces parts of it, up to you."})},{trigger:"What if I'm already using Segment or Rudderstack?",content:(0,C.jsx)("p",{children:"You can migrate to PostHog's pipelines, or run them in parallel while you figure out what to move. The integrations overlap heavily, and switching is less painful than it sounds."})},{trigger:"How does pricing work?",content:(0,C.jsxs)("p",{children:["The data warehouse is free for your first 1M rows/month then from $0.000015/row (historical syncs are always free). Data pipelines are free for 10K events then from $0.0005/event, batch exports free for 1M rows then from $0.000015/row, and PostHog AI gives 500 free credits then $0.01/credit. See a full breakdown at"," ",(0,C.jsx)(r.A,{to:"/pricing",state:{newWindow:!0},children:"posthog.com/pricing"}),"."]})}
1,{trigger:"Is my data leaving PostHog's infrastructure?",content:(0,C.jsxs)("p",{children:["Your PostHog data stays in PostHog Cloud (EU or US region, your choice). When you sync external sources into the warehouse, that data is stored in PostHog's managed infrastructure. Full details in the"," ",(0,C.jsx)(r.A,{to:"/docs/privacy",state:{newWindow:!0},children:"docs"}),"."]})},{trigger:"How does this connect to the rest of PostHog?",content:(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)("p",{children:"Natively. Warehouse data can power cohorts used in experiments and flags. Pipeline data flows directly into analytics. Trino queries run on the same dataset your dashboards use. There's no separate sync to set up."}),(0,C.jsx)("div",{className:"not-prose mt-4 overflow-hidden rounded-md border border-primary bg-white p-4",children:(0,C.jsx)(i.A,{src:"https://res.cloudinary.com/dmukukwp6/image/upload/w_1600,c_limit,q_auto,f_auto/pasted_image_2026_07_28_T06_10_05_014_Z_d0cdcc0eab.png",alt:"Warehouse sources and PostHog product events feed the context warehouse â an S3 data lake partitioned per org, a DuckLake catalog, and a single-tenant Trino in a Firecracker MicroVM â which in turn serves the Postgres wire protocol, analytics and experiments, AI agents, and endpoints",className:"!block w-full",imgClassName:"!block w-full"})})]})},{trigger:"Do I need to know SQL to use the context warehouse?",content:(0,C.jsxs)("p",{children:["No. Ask questions in plain English and"," ",(0,C.jsx)(r.A,{to:"/context-warehouse/posthog-ai",state:{newWindow:!0},children:"PostHog AI"})," ","writes the SQL for you against your schema. If you do know SQL, the editor is right there and supports HogQL or standard SQL. Most product engineers start with plain English and drop into SQL when they want precise control."]})},{trigger:"Can I set this up myself, or do I need a data engineer?",content:(0,C.jsx)("p",{children:"You can do it yourself. Connecting a source is a few clicks, and your product events are already in PostHog. Data engineers are great for complex modeling and transformation logic, but you don't need to wait to hire one to sync a source, query it, or use it in a flag."})},{trigger:"How fresh is the data, can I use it in flags and experiments right away?",content:(0,C.jsx)("p",{children:"Product events are available immediately, no sync step. Synced sources like Stripe or your CRM refresh on a schedule, so there's a short delay on those. Once data is in the warehouse it can power cohorts, feature flags, and experiments natively without a separate pipeline to build to move it into the product."})},{trigger:"Can I join my external data to product events without building a pipeline?",content:(0,C.jsx)("p",{children:"Yes, sync a source like Stripe or Postgres, and you can join a revenue column to a signup event without moving data between tools or standing up your own ETL. It all lives in one warehouse."})},{trigger:"How do agents access the warehouse?",content:(0,C.jsxs)("p",{children:["Through the"," ",(0,C.jsx)(r.A,{to:"/docs/model-context-protocol",state:{newWindow:!0},children:"PostHog MCP"}),". Point an agent (PostHog's, Claude Code, Cursor, whatever you're running) at the PostHog MCP and it can query your data directly. Or take any model or SQL query and expose it as a stable API endpoint your product or an agent calls, so the warehouse becomes something agents read from, not just a place dashboards pull from."]})},{trigger:"How do I control what agents and PostHog AI can see?",content:(0,C.jsxs)("p",{children:["You set the boundaries. Access follows your"," ",(0,C.jsx)(r.A,{to:"/docs/settings/access-control",state:{newWindow:!0},children:"existing PostHog permissions"}),", and when an agent acts on your data, like opening a PR, you can review it before anything ships. Nothing self-drives past a checkpoint you haven't approved."]})}];function Y(){return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(a.Ay,{title:"Context warehouse - PostHog",description:"Every feature you ship is downstream of your data. Collect, store, transform, query using your context warehouse, and let PostHog self-drive development based on customer signals.",image:"https://res.cloudinary.com/dmukukwp6/image/upload/opengraph_3_cf73189604.png",imageType:"absolute"}),(0,C.jsx)(n.Ay,{leftSidebar:(0,C.jsx)(T,{}),title:"context-warehouse.md",hideTitle:!0,className:"overflow-x-hidden",children:(0,C.jsx)("div",{className:"relative z-10",children:(0,C.jsxs)("div",{className:"max-w-4xl @7xl:max-w-7xl mx-auto",children:[(0,C.jsx)("div",{className:"not-prose mb-8 pt-2 @lg/reader-content:pt-6 @3xl:mb-12",children:(0,C.jsxs)("div",{className:"grid items-center gap-6 @lg/reader-content:grid-cols-[1fr_280px]",children:[(0,C.jsxs)("div",{children:[(0,C.jsxs)("h1",{className:"m-0 text-3xl font-bold !leading-[1.12] tracking-tight @md/reader-content:text-4xl @3xl/reader-content:text-5xl",children:["Give your agents the ",(0,C.jsx)(A,{children:"full context"})]}),(0,C.jsxs)("p",{className:"mb-0 mt-5 max-w-lg text-base leading-relaxed text-secondary @xl/reader-content:text-[17px]",children:["Your"," ",(0,C.jsx)(r.A,{to:"/blog/what-is-a-context-warehouse",className:"underline font-semibold",children:"context warehouse"})," ","combines data storage and tooling with no pipelines to maintain, optimized for agents to use."]}),(0,C.jsx)("ul",{className:"mb-0 mt-4 list-none space-y-1.5 p-0 text-base text-secondary @xl/reader-content:text-[17px]",children:["Store product and business data","Transform, query, and model","Data-driven self-driving development"].map(e=>(0,C.jsxs)("li",{className:"relative pl-6",children:[(0,C.jsx)(_.IconCheck,{className:"absolute left-0 top-1 size-4 text-green"}),e]},e))}),(0,C.jsx)("div",{className:"mt-6",children:(0,C.jsx)(d.E0,{to:"https://app.posthog.com/data-management/sources",externalNoIcon:!0,size:"md",className:"max-w-[175px]",children:"Get started"})})]}),(0,C.jsx)("div",{className:"hidden justify-center @lg/reader-content:flex",children:(0,C.jsx)(f,{size:280,className:"w-full max-w-[280px] motion-safe:animate-[context-warehouse-hog-float_9s_ease-in-out_infinite]"})})]})}),(0,C.jsx)("h2",{className:H,children:"Built for data engineers, loved by product teams"}),(0,C.jsx)("div",{className:"not-prose overflow-hidden rounded-md border border-primary bg-primary shadow-sm",children:(0,C.jsx)("div",{className:"grid grid-cols-1 divide-y divide-primary @xl/reader-content:grid-cols-2 @xl/reader-content:divide-x @xl/reader-content:divide-y-0",children:Q.map(e=>{let{title:t,description:o,Icon:s,iconColor:a,bullets:n}=e;return(0,C.jsxs)("div",{className:"p-5 @lg/reader-content:p-6",children:[(0,C.jsxs)("p",{className:"m-0 flex items-center gap-2 text-lg font-bold text-primary",children:[(0,C.jsx)(s,{className:"size-5 shrink-0 "+a}),t]}),(0,C.jsx)("p",{className:"m-0 mt-2 text-sm text-secondary",children:o}),(0,C.jsx)(D,{items:n})]},t)})})}),(0,C.jsx)("h2",{className:H,children:"Better data in, better AI out"}),(0,C.jsx)("div",{className:"not-prose my-6",children:(0,C.jsx)(I.A,{tabs:M,slideClassName:"!min-h-0"})}),(0,C.jsx)("h2",{className:H,children:"The stack that grows with you, not one you grow out of"}),(0,C.jsx)("p",{children:"The data you need on day one looks nothing like the data you need at scale. Start with what a small team needs and add capability as you grow into it."}),(0,C.jsx)("div",{className:"not-prose my-6",children:(0,C.jsx)(k.A,{columns:W,rows:R,size:"md",rowAlignment:"top",className:"text-sm",width:"full"})}),(0,C.jsx)("p",{children:"No migration, re-instrumentation, or switching tools because you scaled out of them. If you really want to, we give you the credentials to directly access your data store to bring your own tools or export your data."}),(0,C.jsx)("h2",{id:"context-warehouse-catalog",className:H,children:"What's in your context warehouse"}),(0,C.jsx)("p",{children:"Use PostHog as the full context layer for your product, or mix and match with your own tools."}),(0,C.jsx)(P.Y,{}),(0,C.jsx)("div",{className:"not-prose relative my-6 overflow-hidden rounded-md border border-primary p-4 @md/reader-content:p-6 "+N.jF,children:(0,C.jsxs)("div",{className:"grid items-center gap-6 @lg/reader-content:grid-cols-[1fr_190px]",children:[(0,C.jsxs)("div",{children:[(0,C.jsx)("h3",{className:"mt-0 mb-3 text-2xl font-bold",children:"Get started"}),(0,C.jsx)("p",{className:"mt-0 mb-4 text-secondary",children:"Your first data source is free to connect. So is your second. By the time you've connected your third, you'll stop thinking about your stack entirely, which is the whole point."}),(0,C.jsxs)("div",{className:"flex flex-wrap items-center gap-3",children:[(0,C.jsx)(d.E0,{to:"https://app.posthog.com/data-management/sources",externalNoIcon:!0,size:"md",children:"Get Started"}),(0,C.jsxs)("p",{className:"mb-0 text-sm text-secondary",children:["Not using PostHog?"," ",(0,C.jsx)(r.A,{to:"https://app.posthog.com/signup",external:!0,className:"font-semibold text-red dark:text-yellow",children:"Sign up"})]})]})]}),(0,C.jsx)("div",{className:"hidden self-end -mb-4 @lg/reader-content:block @md/reader-content:-mb-6",children:(0,C.jsx)(i.A,{src:S,alt:"A hedgehog standing beside a data warehouse",className:"w-full !block",imgClassName:"w-full !block"})})]})}),(0,C.jsx)("h2",{className:H,children:"FAQ"}),(0,C.jsx)("div",{className:"not-prose mt-4",children:(0,C.jsx)(v.nD,{type:"multiple",triggerClassName:"!px-3 !py-2",contentClassName:"!px-3 !py-2.5 !text-base !leading-relaxed",items:F})})]})})})]})}},36501:function(e,t,o){o.d(t,{b:function(){return s}});o(63629);const s={name:"PostHog context warehouse",url:"/context-warehouse",children:[{name:"PostHog context warehouse"},{name:"Overview",url:"/context-warehouse"},{name:"Start here",url:"/context-warehouse/use-cases"},{name:"Is PostHog warehouse native?",url:"/context-warehouse/warehouse-native"},{name:"The context gap report",url:"/the-context-gap-report"},{name:"Data tools"},{name:"Managed Warehouse",url:"/context-warehouse/managed-warehouse"},{name:"PostHog AI",url:"/context-warehouse/posthog-ai"},{name:"Data sources & import (ELT)",url:"/context-warehouse/sources"},{name:"CDP",url:"/cdp"},{name:"Data modeling",url:"/context-warehouse/data-modeling"},{name:"SQL editor",url:"/context-warehouse/sql-editor"},{name:"Business intelligence (BI)",url:"/context-warehouse/business-intelligence"},{name:"Reverse ETL & export",url:"/context-warehouse/reverse-etl-export"},{name:"Integrations"},{name:"Integration library",url:"/context-warehouse/integrations-library"}]}},44814:function(e,t,o){o.d(t,{i:function(){return n}});var s=o(79440),a=o(35305);const n=(0,s.P)({viewBox:a.di,body:a.rf,meta:{slug:"996",name:"996",namespace:"hoggies",figmaNodeId:"276:1795",aspectRatio:1,tags:["hog","solo","group","evolution 4","996","coder","yellow shirt","orange hat"]}})},57447:function(e,t,o){o.d(t,{Y:function(){return h}});var s=o(19371),a=o(30758),n=o(2212),r=o(49271),i=o(86070);function l(e,t){var o=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),o.push.apply(o,s)}return o}function c(e){for(var t=1;t<arguments.length;t++){var o=null!=arguments[t]?arguments[t]:{};
1t%2?l(Object(o),!0).forEach(function(t){(0,s.A)(e,t,o[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(o)):l(Object(o)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(o,t))})}return e}const d=[{title:"Data Sources",items:[{name:"Sources & Import (ELT)",description:"Regularly sync or bulk import data into your warehouse from databases, ad platforms, SaaS tools, and more.",url:"/context-warehouse/sources",Icon:r.IconDownload,iconColor:"text-blue"},{name:"Managed Warehouse",description:"Store, query, and join your product and business data in one place without maintaining any infrastructure.",url:"/context-warehouse/managed-warehouse",Icon:r.IconDatabase,iconColor:"text-purple"},{name:"CDP",description:"Ingest, transform, and route data between PostHog and the rest of your stack in real time.",url:"/cdp",Icon:r.IconShuffle,iconColor:"text-red"},{name:"Batch Exports",description:"Send PostHog data to your existing warehouse or data lake on a schedule you control.",url:"/context-warehouse/reverse-etl-export",Icon:r.IconUpload,iconColor:"text-green"}]},{title:"Data Modeling",items:[{name:"Models",description:"Define your metrics to keep them consistent across PostHog products, update them on a schedule.",url:"/context-warehouse/data-modeling",Icon:r.IconDecisionTree,iconColor:"text-blue"},{name:"Endpoints",description:"Take any insight or SQL query and expose it as a stable API endpoint.",url:"/docs/api/endpoints",Icon:r.IconBrackets,iconColor:"text-purple"}]},{title:"Data Tools",items:[{name:"PostHog AI",description:"Ask questions about your data in plain English. Generates SQL, builds dashboards, and surfaces insights.",url:"/context-warehouse/posthog-ai",Icon:r.IconSparkles,iconColor:"text-red"},{name:"SQL Editor",description:"Write and run HogQL or standard SQL directly against your data. For when you know exactly what you want and just need to ask for it properly.",url:"/context-warehouse/sql-editor",Icon:r.IconTerminal,iconColor:"text-green"},{name:"Notebooks",description:"Combine insights, replays, flags, experiment results, and SQL into a single document. For when your analysis has a story and a dashboard isn't the right way to tell it.",url:"/docs/notebooks",Icon:r.IconNotebook,iconColor:"text-blue"},{name:"Reverse ETL",description:"Send data back to the tools that need it. Keep your CRM, support tools, and marketing platforms in sync.",url:"/context-warehouse/reverse-etl-export",Icon:r.IconShuffle,iconColor:"text-purple"},{name:"Business Intelligence",description:"Visualize your data with interactive dashboards and ad-hoc analyses right in PostHog.",url:"/context-warehouse/business-intelligence",Icon:r.IconGraph,iconColor:"text-orange"}]}],u=e=>{let{name:t,description:o,Icon:s,iconColor:a}=e;return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsxs)("p",{className:"m-0 flex items-center gap-2 text-base font-bold text-primary group-hover:underline",children:[(0,i.jsx)(s,{className:"size-5 shrink-0 "+a}),t]}),(0,i.jsx)("p",{className:"m-0 mt-1.5 text-sm text-secondary",children:o})]})},h=()=>(0,i.jsx)("div",{className:"not-prose overflow-hidden rounded-md border border-primary shadow-sm",children:d.map(e=>(0,i.jsxs)(a.Fragment,{children:[(0,i.jsx)("p",{className:"m-0 border-y border-primary bg-accent px-4 py-2 text-sm font-bold uppercase tracking-wide text-secondary first:border-t-0",children:e.title}),(0,i.jsx)("div",{className:"grid grid-cols-1 gap-px bg-border @xl/reader-content:grid-cols-2",children:e.items.map((t,o)=>(0,i.jsx)(n.A,{to:t.url,state:{newWindow:!0},wrapperClassName:o===e.items.length-1&&e.items.length%2==1?"@xl/reader-content:col-span-2":"",className:"group flex min-h-full flex-col bg-primary p-4 transition-colors duration-150 hover:bg-accent",children:(0,i.jsx)(u,c({},t))},t.name))})]},e.title))})}}]); 2//# sourceMappingURL=component---src-pages-context-warehouse-index-tsx-f8bd0513bee75d0f92bf.js.map
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.