{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/9O2c3tqZhpyXlm8kBuJb/UhIZCZ9gUSdAW597RQUk/tuRG1jt7F-2.js"],
  "sourcesContent": ["import{jsx as e,jsxs as t}from\"react/jsx-runtime\";import{ComponentPresetsConsumer as n,Link as a}from\"framer\";import{motion as r}from\"framer-motion\";import*as o from\"react\";import s from\"https://framerusercontent.com/modules/pVk4QsoHxASnVtUBp6jr/HTBsNkEMAb7TUGaO3DBy/CodeBlock.js\";export const richText=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/e(\"h3\",{children:\"computational notebooks - aaaaaa\"}),/*#__PURE__*/t(\"p\",{children:['You have probably heard about computational notebooks, or just \"notebooks\" \u2014 it\\'s ',/*#__PURE__*/e(a,{href:\"https://www.youtube.com/watch?v=PEgk2v6KntY\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"cleaner\"})}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"Maybe you're like me. You were hardstuck Gold 3 in \",/*#__PURE__*/e(a,{href:\"https://leagueoflegends.fandom.com/wiki/Season_Four\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Season Four\"})}),\", cutting Russian Literature class, your parents get mad, they send you to a \",/*#__PURE__*/e(a,{href:\"https://materialistic-roof.surge.sh/\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"boarding school\"})}),\" in the UK. It's fine.\"]}),/*#__PURE__*/e(\"p\",{children:'After two years of being a good chap you get your braces off, get an A* in Geography GCSE where you have to write a 300-word \"essay\" on how a local car park was renovated \u2014 it is now time to decide what you want to do for the rest of your life.'}),/*#__PURE__*/e(\"p\",{children:'So you search: \"university degrees salary\". Lawyer \u2014 no, doctor \u2014 leave it to the pros... wait a second, I didn\\'t spend all that time hardstuck in G3 for nothing! You pick computer science and luckily you kinda like it.'}),/*#__PURE__*/e(\"p\",{children:\"And you don't even know yet that the best is yet to come! When you don't have to maintain a list of places that sell beer (ordered by price) in your head, you free up energy for actual useful things! Like PEP8, concurrency vs parallelism, locking, and all the other fantastic stuff that nobody knows what the hell it is.\"}),/*#__PURE__*/t(\"p\",{children:[\"Before that though, there is an ML module taught by Dr. Carl Henrik Ek, which was brilliant. Despite being hungover you get to learn about the chad version of ML that is \",/*#__PURE__*/e(a,{href:\"https://en.wikipedia.org/wiki/Statistical_model\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"statistical modelling\"})}),\" and you have to do a lab in... you guessed it, a Jupyter Notebook.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"history\"}),/*#__PURE__*/t(\"p\",{children:[\"Jupyter is not the first notebook but it is \",/*#__PURE__*/e(\"strong\",{children:\"the\"}),\" notebook. Fernando Perez (scientist and the creator of IPython that became the Jupyter Project) once shared this \",/*#__PURE__*/e(a,{href:\"https://web.archive.org/web/20120213203754/http://blog.fperez.org/2012/01/ipython-notebook-historical.html\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"cool history\"})}),\" before redirecting the link to something else. But you can't keep away from \",/*#__PURE__*/e(\"em\",{children:\"me\"}),\", Fernando.\"]}),/*#__PURE__*/e(\"p\",{children:\"In that history it becomes clear that a computational notebook as envisioned by Jupyter was geared primarily at scientists, not the myriad other use cases like education, data science, data engineering, and prototyping that it came to be useful for.\"}),/*#__PURE__*/t(\"p\",{children:[\"Notebooks in general are not built for small to mid-size data team user groups; they are educational tools and tools for doing science. There may be an underserved point in the \",/*#__PURE__*/e(a,{href:\"https://pg.ucsd.edu/publications/computational-notebooks-design-space_VLHCC-2020.pdf\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"design space\"})}),\" as smarter people than me have highlighted.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Products like \",/*#__PURE__*/e(a,{href:\"https://hex.tech/blog/notebooks-modern-data-stack/\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Hex\"})}),\" enjoy dunking on the common issues: scale, state, and sharing.\"]}),/*#__PURE__*/t(\"p\",{children:[\"The \",/*#__PURE__*/e(\"strong\",{children:\"scale\"}),\" problem boils down to \\\"I can't \",/*#__PURE__*/e(\"code\",{children:\"SELECT *\"}),\" from my BigQuery table because it will blow up my RAM\\\". I am not sure about this one, but I don't know anything.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"State\"}),\" is about traditional notebooks allowing \",/*#__PURE__*/e(\"strong\",{children:\"out-of-order execution\"}),\" of cells. Perez mentions this in his history as more of a feature than a bug. From what I can tell, this execution model pleases as many people as it frustrates.\"]}),/*#__PURE__*/t(\"p\",{children:[\"And \",/*#__PURE__*/e(\"strong\",{children:\"sharing\"}),\", where Hex conflates versioning and presenting to stakeholders. Assuming you use \",/*#__PURE__*/e(\"code\",{children:\"git\"}),\", versioning notebooks is not straightforward \u2014 the serialization format is whatever \",/*#__PURE__*/e(\"code\",{children:\"nbconvert\"}),\" spits out and Jupyter serializes the outputs by default so your \",/*#__PURE__*/e(\"code\",{children:\"git\"}),\" diffs can quickly get weird.\"]}),/*#__PURE__*/t(\"p\",{children:[\"But then again, nobody out there in the real world even knows what \",/*#__PURE__*/e(\"code\",{children:\"git\"}),\" is; they're still emailing each other \",/*#__PURE__*/e(\"code\",{children:\"Presentation_copy_copy_123_final_copy.pptx\"}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"Some notebook products deploy as apps you can share with stakeholders. It feels like it all depends on the serialization format and the standard library. \",/*#__PURE__*/e(a,{href:\"https://marimo.io/\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Marimo\"})}),\" notebooks are just files that run in either \",/*#__PURE__*/e(\"strong\",{children:\"edit\"}),\" or \",/*#__PURE__*/e(\"strong\",{children:\"run\"}),\" mode, \",/*#__PURE__*/e(a,{href:\"https://github.com/mkery/Verdant\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Verdant\"})}),\" notebooks version every keystroke in every cell. World's your oyster.\"]}),/*#__PURE__*/t(\"p\",{children:[\"If you imagine a multi-dimensional valley of all possible \",/*#__PURE__*/e(a,{href:\"https://en.wikipedia.org/wiki/Literate_programming\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"literate programming\"})}),\" implementations, Jupyter, Hex, Verdant and others are hills in that valley. Or they are little houses on the slopes of the same hill \u2014 I dunno, I don't go outside.\"]}),/*#__PURE__*/t(\"p\",{children:[\"You can tell the implementations over the last few years attempt to climb the hill. Not so long ago, an asteroid crashed into the side of the hill and it has the letters A and I written in big red letters (in \",/*#__PURE__*/e(a,{href:\"https://fonts.google.com/specimen/Inter\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Inter\"})}),\") on its side.\"]}),/*#__PURE__*/e(\"p\",{children:\"To keep with the asteroid metaphor, parts of this have landed in numerous other valleys and will doubtless impact the ongoing climbs or even catapult the climber to a wonderful new hill (or valley!) to explore. You may not agree, but I don't care \u2014 this is my blog.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"worse is better\"}),/*#__PURE__*/t(\"p\",{children:[\"Richard P. Gabriel once ~shitposted~ mused that \",/*#__PURE__*/e(a,{href:\"https://www.dreamsongs.com/WorseIsBetter.html\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:'\"worse is better\"'})}),\" talking about AI (back in the day version). The jury is still out on whether the principle holds.\"]}),/*#__PURE__*/e(\"p\",{children:'TLDR: \"Worse is Better\" argues that simple, pragmatic C-style design wins over elegant Lisp-style perfection because good-enough software that ships beats perfect software that doesn\\'t.'}),/*#__PURE__*/t(\"p\",{children:[\"In mid-2015 after Java overtook C with its more restrictive (the right thing) API, since then two other languages \u2014 one developed \",/*#__PURE__*/e(a,{href:\"https://www.youtube.com/watch?v=GxouWy-ZE80\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"in 10 days\"})}),\" (well, the first prototype anyway; the real version took until 1996) and another named after a comedy troupe but everyone thinks it's a reptile \u2014 have risen to prominence. This might have more to do with software distribution than with language design.\"]}),/*#__PURE__*/e(\"p\",{children:'JavaScript needed a megacorp to step in and write a gradual type system that works like a compiler to make the code stop constantly breaking. This birthed a generation of type gymnasts who spun the typing plates until the Querio repo started taking 1 minute to \"compile\". MS are now re-writing their TypeScript compiler in Go, promising 10x speedups by mid-2025. Where are they???'}),/*#__PURE__*/e(\"p\",{children:\"Python is widely adopted (and my second-favourite language), but it has this thing called GIL, who is not in fact your grumpy neighbour from downstairs but a grumpy design choice making parallel execution of Python impossible for CPU-bound tasks because only one thread can execute Python bytecode at a time \u2014 a mutex that's been the bane of performance for people smarter than me for decades. Until they fixed it recently.\"}),/*#__PURE__*/e(\"p\",{children:'It is clear to this reporter that worse is better in the short term but the inertia flows towards better is better. It is not uncommon for the \"better\" version to exist in parallel (TypeScript) only to then start climbing towards a new local optimum \u2014 sometimes even requiring a complete rewrite in a different language entirely.'}),/*#__PURE__*/e(\"p\",{children:\"Ah yes you wanted to talk about notebooks? Fine...\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"what's good about notebooks\"}),/*#__PURE__*/t(\"p\",{children:[\"You have your code and your docs and stuff all in the same place \u2014 it's really nice to see everyone being friendly like that and potentially taps into \",/*#__PURE__*/e(a,{href:\"https://www.paulgraham.com/think.html\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[\"noreferrer\"],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{rel:\"noreferrer\",children:\"other benefits\"})}),\" that writing may have on the clarity of thought and ultimately the usefulness of the science that the thought generates.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"what's bad about notebooks\"}),/*#__PURE__*/t(\"p\",{children:[\"This \",/*#__PURE__*/e(a,{href:\"https://arxiv.org/pdf/2210.06893\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"study\"})}),\" highlights the most common errors in Jupyter notebooks:\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Kernel crashes\"}),\" \u2014 user has to restart, potentially re-running expensive queries because the data lives in the kernel process.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Environment and Settings\"}),\" \u2014 user cannot use a notebook due to environment issues (imho this is downstream from Python in general until \",/*#__PURE__*/e(a,{href:\"https://docs.astral.sh/uv/\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"recently\"})}),\").\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Conversion and portability\"}),\" \u2014 user cannot share a notebook with people because the conversion code broke.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Connection bugs\"}),\" \u2014 users often want to pull data from external data sources and their connection configuration is not portable across environments, usually due to infrastructure constraints on the target hardware (firewalls, etc.).\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Cell Defects\"}),\" \u2014 cell outputs do not look or act as expected.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Processing\"}),\" \u2014 getting \",/*#__PURE__*/e(\"code\",{children:\"MemoryError\"}),\", etc. as alluded to \",/*#__PURE__*/e(a,{href:\"https://www.notion.so/dl-3-computational-notebooks-aaaa-17f8aa6eede880fbb6bcfaa20ee39356?pvs=21\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"above\"})}),\".\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Implementation\"}),\" \u2014 someone wrote buggy code and/or they are not sure how to do what they are trying to do with the tools they have access to.\"]})})]}),/*#__PURE__*/t(\"p\",{children:[\"By far the most common classes of bugs are \",/*#__PURE__*/e(\"code\",{children:\"Environment and Settings\"}),\" (StackOverflow \u2014 43.2% | GitHub \u2014 35.6%) and \",/*#__PURE__*/e(\"code\",{children:\"Implementation\"}),\" (StackOverflow \u2014 22% | GitHub \u2014 44.2%).\"]}),/*#__PURE__*/t(\"p\",{children:[\"For me as a \",/*#__PURE__*/e(\"em\",{children:\"certified software engineer\"}),\", a lot of the above amounts to skill issues. But as we \",/*#__PURE__*/e(a,{href:\"https://www.notion.so/dl-3-computational-notebooks-aaaa-17f8aa6eede880fbb6bcfaa20ee39356?pvs=21\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"discussed\"})}),\", the critical user mass rightly expects the notebook to handle these issues for them.\"]}),/*#__PURE__*/t(\"p\",{children:[\"The paper adds an interesting dimension to each issue class \u2014 the average annual growth. \",/*#__PURE__*/e(\"code\",{children:\"Environment and Settings\"}),\" and \",/*#__PURE__*/e(\"code\",{children:\"Implementation\"}),\" lead the charge as expected at respectively 38% and 48% annual growth rate on average.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Interestingly, the \",/*#__PURE__*/e(\"code\",{children:\"Conversion and portability\"}),\" and \",/*#__PURE__*/e(\"code\",{children:\"Cell Defect\"}),\" issues grow at a higher rate than average, suggesting that users are trying to share their notebooks more often than before and are running into issues.\"]}),/*#__PURE__*/e(\"p\",{children:\"The paper recommends some features for future notebook implementations:\"}),/*#__PURE__*/e(\"figure\",{className:\"framer-table-wrapper\",children:/*#__PURE__*/e(\"table\",{children:/*#__PURE__*/t(\"tbody\",{children:[/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"th\",{children:/*#__PURE__*/e(\"p\",{children:\"Feature\"})}),/*#__PURE__*/e(\"th\",{children:/*#__PURE__*/e(\"p\",{children:\"Description\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Indentation corrector\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"For Python indentation is important. Jupyter allows indentations to be the developer's responsibility while writing. The indentation corrector identifies and corrects wrong indentations at development time.\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Syntax highlighting\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Function that inspects the code indicating syntax errors, structure errors, etc.\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Data Preview\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Functionality to preview and explore the raw dataset before starting analysis and modeling, a better alternative than the notebook cell visualization\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Graphic Interaction\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Functionality to manually interact with the graphs generated during data analysis\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Multi-Languages Per Cell\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Possibility to use other programming languages in the same notebook\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Version control\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Notebook change manager\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Text Editor\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"More advanced code editing features\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Development Framework\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Framework that provides a base architecture adapted for the notebook\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Real Time Collaboration\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Functionality to support people working together at the same time, even if they are in different places.\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Variable Manager\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Viewer of the variables defined in the notebook and the values assigned in each cell\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Connection Between Notebooks\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"Functionality for the user to visualize his set of notebooks and make calls to notebooks and cells external to the current notebook.\"})})]})]})})}),/*#__PURE__*/e(\"p\",{children:\"Nothing new there...\"}),/*#__PURE__*/t(\"p\",{children:[\"The paper harks at a familiar tension around notebooks. The tension comes from the fact that many \",/*#__PURE__*/e(\"em\",{children:\"actual\"}),\" Jupyter users do not come from the background the tool expects. Because of Jupyter's widespread adoption, other products can be reluctant to address these issues because they often target the same user group.\"]}),/*#__PURE__*/e(\"p\",{children:\"If it hasn't become clear already.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"jupyter is complicated\"}),/*#__PURE__*/t(\"p\",{children:[\"Even at a glance, \",/*#__PURE__*/e(a,{href:\"https://www.romaglushko.com/blog/jupyter-kernel-architecture/#jupyter-client-and-gateway\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"5 socket connections per kernel\"})}),\" (read: per-notebook) is a lot of complexity to manage if I just want to run some code in isolated environments and get access to the outputs. But then there is the \",/*#__PURE__*/e(a,{href:\"https://jupyter-kernel-gateway.readthedocs.io/en/latest/uses.html\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"jupyter-kernel-gateway\"})}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"There is a decade-old \",/*#__PURE__*/e(\"code\",{children:\"shell\"}),\" channel that defines an execution pipeline that boils down to an \",/*#__PURE__*/e(\"code\",{children:\"exec\"}),\" in a \",/*#__PURE__*/e(\"code\",{children:\"UserNamespace\"}),\" in a Python process behind the ZMQ (or gateway) broker. It also supports magic strings and debugging, but that's not important right now.\"]}),/*#__PURE__*/e(\"p\",{children:\"The age of this architecture should imply the baggage and direct us to look at other approaches to process isolation that have become possible in the last decade.\"}),/*#__PURE__*/t(\"p\",{children:['So I thought: \"screw this, I\\'ll build my own \u2014 I am a genius anyway\". So I ',/*#__PURE__*/e(\"code\",{children:\"git clone\"}),\"d every OSS notebook product under the sun. Read the first one... Claude Coded the first one... stepped through the first one in the debugger... I kind of understand the first one now. It has been a week. I will share when I know more.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"notebooks at Querio\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"250\",src:\"https://framerusercontent.com/images/wJHJU1wAB5WffyflSNAaHNDq4.png\",srcSet:\"https://framerusercontent.com/images/wJHJU1wAB5WffyflSNAaHNDq4.png?scale-down-to=512 512w,https://framerusercontent.com/images/wJHJU1wAB5WffyflSNAaHNDq4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/wJHJU1wAB5WffyflSNAaHNDq4.png 1600w\",style:{aspectRatio:\"1600 / 500\"},width:\"800\"}),/*#__PURE__*/e(\"p\",{children:\"Here at Querio we are nothing if not knowledgeable about everything. We see that teams in and around our ICP reach for one notebook or another for their ETL, dashboards and insight generation. We also want to serve the other side of that equation \u2014 the internal customers of the respective data teams that commission the ETLs, dashboards and insights. This is what Querio offers.\"}),/*#__PURE__*/e(\"p\",{children:\"Our agent uses a notebook under the hood as the interface between our customer's data; it runs queries and generates insights.\"}),/*#__PURE__*/t(\"p\",{children:[\"Every insight you see in Querio can today be traced back to a cell in a Jupyter notebook. This is really nice and exciting for us because we can \",/*#__PURE__*/e(\"em\",{children:\"open up\"}),\" the notebooks to the other side of the stakeholder/data-team boundary and be left with, well, a notebook with a (very high altitude) LLM integration.\"]}),/*#__PURE__*/e(\"p\",{children:\"So we were gonna do that until we realised our current wrapper around the Jupyter kernel is ripping at the seams under some of our customers' workloads. This is what motivated the analysis \u2014 the first artifact of which you are reading.\"}),/*#__PURE__*/e(\"p\",{children:\"We need some more time, but we might have something cool to share soon. Well, at least I hope I think it's cool when we think of it.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"future of notebooks\"}),/*#__PURE__*/e(\"p\",{children:\"Going back to all the different dimensions of notebooks as a product. At Querio we think there is a future where none of this malarkey matters at all. All everyone wants is answers to their questions, underpinned by rigorous analysis that makes the answers trustworthy (assuming you trust the science behind the analysis).\"}),/*#__PURE__*/e(\"p\",{children:\"The stochastic token-mulchers are getting pretty close. Given some context, you can get answers to common questions, but sometimes a person of science must step in and help untangle the tokenistic bonanza to get to the right answer, or even do some good-old data exploration (science) to ask the token-mulcher better questions.\"}),/*#__PURE__*/e(\"p\",{children:\"The natural place for the data analyst and Shoggoth the token-mulcher to meet may be a computational notebook. Or it may be something else entirely.\"})]});export const richText1=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"If you haven\u2019t read Part 1, go do that first. I\u2019ll wait.\"}),/*#__PURE__*/e(\"p\",{children:\"For those who did (and even those who didn\u2019t), here\u2019s a quick refresh. We discussed how the pendulum swings in tech, leading to pretty crazy products. We saw how the LLM pendulum swung us all towards the same chat interface, and how our users started showing us it was time to swing back. Now let\u2019s talk about what we actually did about it.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Good UX principles\"}),/*#__PURE__*/e(\"p\",{children:\"UX principles don\u2019t swing that much, they\u2019re relatively stable, but in the frenzy of some new tech, we tend to forget them. What I\u2019m about to drop aren't revolutionary insights\u2014they're basic UX principles that somehow got forgotten in the AI rush. Think of them as the steady foundation that keeps you grounded when the next shiny thing tries to sweep you away.\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Start with the job to be done.\"}),\" People might try what you have, but they certainly don't pay you just because your product has AI, they pay you because you get a job done.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Make the output the hero, not the process.\"}),\" When someone wants an answer, they care about the result, not the 27 steps it took to get there. Everything else should fade into the background until they need it.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Iteration should build, not restart.\"}),' Real work is iterative. When someone says \"this is great, but can you make it blue instead?\", they don\\'t want to start over\u2014they want to build on what they already have.']}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Give users control and transparency.\"}),\" People need to understand what's happening and feel like they can steer the ship. Black box magic might impress in demos, but it creates anxiety in real work.\"]}),/*#__PURE__*/e(\"p\",{children:\"These aren't just nice-to-haves\u2014they're what separate tools people actually use from tools that get abandoned after the novelty wears off. Now let me show you how we applied them.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"How we un-AI'd Querio\"}),/*#__PURE__*/t(\"h4\",{children:[\"The \",/*#__PURE__*/e(\"em\",{children:\"n\"}),\" (f*****g) charts problem\"]}),/*#__PURE__*/e(\"p\",{children:'Let me paint you a picture of the old Querio experience. Sarah, a marketing manager, asks our AI: \"Show me campaign performance by channel for Q3.\" Great! She gets a beautiful chart showing Facebook ads crushing it, Google struggling, and email holding steady.'}),/*#__PURE__*/e(\"p\",{children:'But then Sarah notices the chart is using our default blue color scheme, and she needs different colors per channel. So she types: \"Can you make those bars blue for facebook, red for google and gray for email instead?\"'}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"285\",src:\"https://framerusercontent.com/images/jYYteeQNld5h3QFfRipiOTRUMJY.png\",srcSet:\"https://framerusercontent.com/images/jYYteeQNld5h3QFfRipiOTRUMJY.png?scale-down-to=512 512w,https://framerusercontent.com/images/jYYteeQNld5h3QFfRipiOTRUMJY.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/jYYteeQNld5h3QFfRipiOTRUMJY.png 1600w\",style:{aspectRatio:\"1600 / 570\"},width:\"800\"}),/*#__PURE__*/t(\"p\",{children:[\"What happens next? Our AI agent regenerates the \",/*#__PURE__*/e(\"em\",{children:\"entire analysis\"}),\" with newly colored bars. Now Sarah has two charts in her chat: one blue, one mixed. Same data, same insights, just different colors.\"]}),/*#__PURE__*/e(\"p\",{children:\"She wants to adjust the title? Three charts. Change the date range slightly? Four charts. By the time she's done tweaking things for her presentation, she's got a graveyard of 15 nearly-identical charts cluttering her conversation, and she's lost track of which one was the \\\"final\\\" version.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"250\",src:\"https://framerusercontent.com/images/7Jn4nn6zpiCGxnmKEeXHcHKWuuE.png\",srcSet:\"https://framerusercontent.com/images/7Jn4nn6zpiCGxnmKEeXHcHKWuuE.png?scale-down-to=512 512w,https://framerusercontent.com/images/7Jn4nn6zpiCGxnmKEeXHcHKWuuE.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/7Jn4nn6zpiCGxnmKEeXHcHKWuuE.png 1600w\",style:{aspectRatio:\"1600 / 500\"},width:\"800\"}),/*#__PURE__*/e(\"p\",{children:\"This is LLM UX at its worst\u2014treating every interaction like a fresh conversation instead of iterative work on a single output. It's like having a designer who throws away the entire mockup and starts over every time you ask them to change a font.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"One output and three actions\"}),/*#__PURE__*/e(\"p\",{children:\"We realized the problem wasn't AI itself\u2014it was forcing every interaction through that particular UX, a linear chat interface. So we redesigned the entire experience around what people actually wanted to do after getting a data output.\"}),/*#__PURE__*/t(\"p\",{children:[\"When you prompt Querio, you most likely want a chart or a table (\",/*#__PURE__*/e(\"em\",{children:\"jobs to be done\"}),\"). We stream how our AI agent is generating the response (\",/*#__PURE__*/e(\"em\",{children:\"give users control and transparency\"}),\"), but once we get it, it's front and center (\",/*#__PURE__*/e(\"em\",{children:\"make the output the hero\"}),\"). We then focus on what you'll most likely do next and have a curated experience around each.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"153\",src:\"https://framerusercontent.com/images/bXzRd4boUMAGfmQfxbN0iJqPjck.png\",srcSet:\"https://framerusercontent.com/images/bXzRd4boUMAGfmQfxbN0iJqPjck.png?scale-down-to=512 512w,https://framerusercontent.com/images/bXzRd4boUMAGfmQfxbN0iJqPjck.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/bXzRd4boUMAGfmQfxbN0iJqPjck.png 1600w\",style:{aspectRatio:\"1600 / 306\"},width:\"800\"}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"1. Edit this output\"}),\" - This takes you to a dedicated editing interface (\",/*#__PURE__*/e(\"em\",{children:\"iteration should build, not restart\"}),\"). The chart stays front and center while editing controls appear around it\u2014color pickers, dropdown menus, inline text editing. Simple changes happen instantly. Fundamental changes give you different versions of the same output to choose from\u2014not a pile of separate charts.\"]}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"2. Ask a follow-up\"}),\" - This keeps your current output visible while exploring related questions (\",/*#__PURE__*/e(\"em\",{children:\"make the output the hero\"}),'). \"Now show me the same data broken down by region\" appears alongside your original chart for easy comparison. You\\'re building on what you discovered, and each follow-up gives you the same three options.']}),/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"3. New topic\"}),\" - This opens a fresh tab with a clean slate (\",/*#__PURE__*/e(\"em\",{children:\"respect cognitive load\"}),\"). When someone switches from campaign performance to user retention metrics, they get a mental reset. The model gets better attention, the context stays focused, and Sarah doesn't lose her previous work in an endless scroll.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"The AI we did keep\"}),/*#__PURE__*/e(\"p\",{children:\"Here's the thing\u2014we didn't throw the baby out with the bathwater. The AI is still doing the heavy lifting of turning \\\"show me campaign performance\\\" into actual SQL queries, Python analysis, and beautiful visualizations. That part was never the problem.\"}),/*#__PURE__*/e(\"p\",{children:\"What we kept:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"AI agents at the core of how we write code\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Prompts as an entry point\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Automatic chart generation and styling\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Smart suggestions for follow-up questions\"})})]}),/*#__PURE__*/e(\"p\",{children:\"What we ditched:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"The linear chat itself as the means of AI communicating back\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Regenerating entire outputs for simple changes\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Forcing every interaction to start with a prompt\"})})]}),/*#__PURE__*/e(\"p\",{children:\"The result feels like magic when you need it to, and like a proper tool when you need control.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Swinging back to balance\"}),/*#__PURE__*/e(\"p\",{children:\"The pendulum always swings back, but the trick is recognizing when it's time to course-correct before you hit the wall. Our users told us through their behavior that the chat-everything approach wasn't working. They were abandoning sessions, getting frustrated with simple changes, and generally not getting the value they came for.\"}),/*#__PURE__*/e(\"p\",{children:\"The ChatGPT pendulum swung us all toward the same interface because it was the obvious thing to do. Chat worked for ChatGPT, so it must work for everything, right? But ChatGPT is designed for open-ended conversation. Data work is designed for focused, iterative analysis. Different jobs, different tools.\"}),/*#__PURE__*/e(\"p\",{children:\"This isn't about being anti-AI or anti-innovation. It's about being pro-user and pro-getting-shit-done. The pendulum taught us that the most powerful technology in the world is useless if it's wrapped in the wrong interface.\"}),/*#__PURE__*/e(\"p\",{children:\"The next time a new tech wave hits\u2014and it will\u2014remember the pendulum. Get excited, experiment, push boundaries. But keep an eye on your users and the fundamentals. The magic isn't in the technology itself; it's in how thoughtfully you apply it to real human problems, to real jobs to be done.\"}),/*#__PURE__*/e(\"p\",{children:\"And maybe, just maybe, you won't end up with two fucking charts when all someone wanted was a different color.\"})]});export const richText2=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/e(\"h3\",{children:\"Board Upgrade\"}),/*#__PURE__*/e(\"p\",{children:\"We rebuilt boards from the ground up\u2014drag freely, resize anything, and organize your insights exactly how you want\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"770\",src:\"https://framerusercontent.com/images/5TW1yidjJ2BUk9OM9cifyI3RnFo.png\",srcSet:\"https://framerusercontent.com/images/5TW1yidjJ2BUk9OM9cifyI3RnFo.png?scale-down-to=512 512w,https://framerusercontent.com/images/5TW1yidjJ2BUk9OM9cifyI3RnFo.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/5TW1yidjJ2BUk9OM9cifyI3RnFo.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/5TW1yidjJ2BUk9OM9cifyI3RnFo.png 2760w\",style:{aspectRatio:\"2760 / 1540\"},width:\"1380\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"Free-Form Layout\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"375\",src:\"https://framerusercontent.com/images/xpbpLyLqeNKRsFFGbW8vY2az4.png\",srcSet:\"https://framerusercontent.com/images/xpbpLyLqeNKRsFFGbW8vY2az4.png?scale-down-to=512 512w,https://framerusercontent.com/images/xpbpLyLqeNKRsFFGbW8vY2az4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/xpbpLyLqeNKRsFFGbW8vY2az4.png 1200w\",style:{aspectRatio:\"1200 / 750\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:\"Drag and drop elements exactly where you need them\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"Size Your Way\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"375\",src:\"https://framerusercontent.com/images/qTQLdFqrgOne8RAuThyseOc1Y.png\",srcSet:\"https://framerusercontent.com/images/qTQLdFqrgOne8RAuThyseOc1Y.png?scale-down-to=512 512w,https://framerusercontent.com/images/qTQLdFqrgOne8RAuThyseOc1Y.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/qTQLdFqrgOne8RAuThyseOc1Y.png 1200w\",style:{aspectRatio:\"1200 / 750\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:\"Resize elements to match your needs\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"Quick Add\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"375\",src:\"https://framerusercontent.com/images/477vVBW18zj21M6f6lwIw1lGhWw.png\",srcSet:\"https://framerusercontent.com/images/477vVBW18zj21M6f6lwIw1lGhWw.png?scale-down-to=512 512w,https://framerusercontent.com/images/477vVBW18zj21M6f6lwIw1lGhWw.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/477vVBW18zj21M6f6lwIw1lGhWw.png 1200w\",style:{aspectRatio:\"1200 / 750\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:\"Find and add multiple elements in second\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"Sync Control\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"375\",src:\"https://framerusercontent.com/images/6uiZtNR32CHchq1BDNcxLVwrc.png\",srcSet:\"https://framerusercontent.com/images/6uiZtNR32CHchq1BDNcxLVwrc.png?scale-down-to=512 512w,https://framerusercontent.com/images/6uiZtNR32CHchq1BDNcxLVwrc.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/6uiZtNR32CHchq1BDNcxLVwrc.png 1200w\",style:{aspectRatio:\"1200 / 750\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:\"Update data on your schedule\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Small yet exciting\"}),/*#__PURE__*/e(\"p\",{children:\"Here\u2019s some other things we wanted to highlight that are not as big as boards but we thought you\u2019d like to hear about.\"}),/*#__PURE__*/e(\"h4\",{children:\"Stable Charts\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"375\",src:\"https://framerusercontent.com/images/JzLgNdENgDX6nKX996WtJmOl7I.png\",srcSet:\"https://framerusercontent.com/images/JzLgNdENgDX6nKX996WtJmOl7I.png?scale-down-to=512 512w,https://framerusercontent.com/images/JzLgNdENgDX6nKX996WtJmOl7I.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JzLgNdENgDX6nKX996WtJmOl7I.png 1200w\",style:{aspectRatio:\"1200 / 750\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:\"Completely rebuilt charting for a more stable, more reliable data visualization\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"Custom  Access\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"375\",src:\"https://framerusercontent.com/images/Srik8RJMZvJMSTJLuQrTowXC07s.png\",srcSet:\"https://framerusercontent.com/images/Srik8RJMZvJMSTJLuQrTowXC07s.png?scale-down-to=512 512w,https://framerusercontent.com/images/Srik8RJMZvJMSTJLuQrTowXC07s.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/Srik8RJMZvJMSTJLuQrTowXC07s.png 1200w\",style:{aspectRatio:\"1200 / 750\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:\"Choose exactly which tables and columns to show in the explore page\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"Saved Tab Speed Boost\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"375\",src:\"https://framerusercontent.com/images/ZTM6fsC6ClnVUCBdjduHWwCJcl8.png\",srcSet:\"https://framerusercontent.com/images/ZTM6fsC6ClnVUCBdjduHWwCJcl8.png?scale-down-to=512 512w,https://framerusercontent.com/images/ZTM6fsC6ClnVUCBdjduHWwCJcl8.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/ZTM6fsC6ClnVUCBdjduHWwCJcl8.png 1200w\",style:{aspectRatio:\"1200 / 750\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:\"You\u2019ve been saving so much stuff our implementation couldn\u2019t handle it, so we improved it\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"Meet Claude 4\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"375\",src:\"https://framerusercontent.com/images/rqQ6GcpdoH0s3dxFYgknpwuGbQ.png\",srcSet:\"https://framerusercontent.com/images/rqQ6GcpdoH0s3dxFYgknpwuGbQ.png?scale-down-to=512 512w,https://framerusercontent.com/images/rqQ6GcpdoH0s3dxFYgknpwuGbQ.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/rqQ6GcpdoH0s3dxFYgknpwuGbQ.png 1200w\",style:{aspectRatio:\"1200 / 750\"},width:\"600\"}),/*#__PURE__*/e(\"p\",{children:\"Leveraging the most capable AI model yet\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Next up\"}),/*#__PURE__*/e(\"p\",{children:\"Your feedback in action - here's what we're building...\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"552\",src:\"https://framerusercontent.com/images/NgMy9IbSRYqpXxVhRjEHy6zFlxI.png\",srcSet:\"https://framerusercontent.com/images/NgMy9IbSRYqpXxVhRjEHy6zFlxI.png?scale-down-to=512 512w,https://framerusercontent.com/images/NgMy9IbSRYqpXxVhRjEHy6zFlxI.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/NgMy9IbSRYqpXxVhRjEHy6zFlxI.png 2008w\",style:{aspectRatio:\"2008 / 1104\"},width:\"1004\"})]});export const richText3=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:'Probability is a strange beast. Our intuition often tells us one thing, but the numbers quietly smirk and say, \"Actually...\"'}),/*#__PURE__*/e(\"p\",{children:\"Let\u2019s start with something fun: goats.\"}),/*#__PURE__*/e(\"h2\",{children:\"The Monty Hall Problem\"}),/*#__PURE__*/e(\"p\",{children:\"Imagine you're on a game show. In front of you are three doors. Behind one of them is a shiny new car. Behind the other two? Goats.\"}),/*#__PURE__*/e(\"p\",{children:\"You pick a door \u2014 say, Door 1.\"}),/*#__PURE__*/t(\"p\",{children:[\"The host, Monty Hall, who \",/*#__PURE__*/e(\"em\",{children:\"knows\"}),\" what\u2019s behind each door, opens another door \u2014 say, Door 3 \u2014 to reveal a goat. Then he turns to you and says, \u201CDo you want to switch your choice to Door 2?\u201D\"]}),/*#__PURE__*/e(\"p\",{children:\"Most people think it doesn't matter \u2014 50/50, right?\"}),/*#__PURE__*/t(\"p\",{children:[\"Wrong. If you switch, your chances jump from \",/*#__PURE__*/e(\"strong\",{children:\"1/3 to 2/3\"}),\". Why? Because Monty is giving you information. He always opens a goat door, so your initial 1/3 chance of picking the car is still locked in \u2014 and the remaining 2/3 probability gets lumped into the other unopened door. \"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h2\",{children:\"Deal or No Deal: Big Monty Energy\"}),/*#__PURE__*/t(\"p\",{children:[\"Now imagine the same idea, but with \",/*#__PURE__*/e(\"strong\",{children:\"26 briefcases\"}),\", like in \",/*#__PURE__*/e(\"em\",{children:\"Deal or No Deal\"}),\". One of them has \\xa3250,000. The rest have far less.\"]}),/*#__PURE__*/t(\"p\",{children:[\"You pick Case 7. The host then opens \",/*#__PURE__*/e(\"strong\",{children:\"24\"}),\" of the remaining 25 cases \u2014 all empty or low-value. You're left with just your original case and Case 14.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"343\",src:\"https://framerusercontent.com/images/ZJnViIgAjwqqCmOa18xAJVVME.png\",srcSet:\"https://framerusercontent.com/images/ZJnViIgAjwqqCmOa18xAJVVME.png?scale-down-to=512 512w,https://framerusercontent.com/images/ZJnViIgAjwqqCmOa18xAJVVME.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/ZJnViIgAjwqqCmOa18xAJVVME.png 1600w\",style:{aspectRatio:\"1600 / 686\"},width:\"800\"}),/*#__PURE__*/e(\"p\",{children:\"Should you switch?\"}),/*#__PURE__*/e(\"p\",{children:\"Absolutely.\"}),/*#__PURE__*/t(\"p\",{children:[\"You had a \",/*#__PURE__*/e(\"strong\",{children:\"1/26 chance\"}),\" of picking the jackpot at the start \u2014 so there's a \",/*#__PURE__*/e(\"strong\",{children:\"25/26 chance\"}),\" that it's in one of the other cases. The host just whittled those 25 down to one \u2014 essentially concentrating that 25/26 probability into a single briefcase.\"]}),/*#__PURE__*/e(\"p\",{children:\"Again, switching is the smart move.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h2\",{children:\"Medical Statistics: When 97% Accuracy Isn\u2019t Good Enough\"}),/*#__PURE__*/e(\"p\",{children:\"Let\u2019s switch gears to something a little darker \u2014 but equally fascinating.\"}),/*#__PURE__*/t(\"p\",{children:[\"Say there's a rare, fatal disease that affects \",/*#__PURE__*/e(\"strong\",{children:\"1 in a million\"}),\" people.\"]}),/*#__PURE__*/t(\"p\",{children:[\"There's a test for it that's \",/*#__PURE__*/e(\"strong\",{children:\"97% accurate\"}),\". Sounds reassuring, right?\"]}),/*#__PURE__*/e(\"p\",{children:\"Now imagine you get tested \u2014 and it comes back positive.\"}),/*#__PURE__*/t(\"p\",{children:[\"That sounds \",/*#__PURE__*/e(\"strong\",{children:\"fucking terrifying\"}),\". But what does the math say?\"]}),/*#__PURE__*/e(\"h3\",{children:\"Let\u2019s break it down:\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:\"Out of 1,000,000 people:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"1 person\"}),\" actually has the disease.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"The test has a \",/*#__PURE__*/e(\"strong\",{children:\"3% false positive rate\"}),\".\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"So, \",/*#__PURE__*/e(\"strong\",{children:\"3% of 1,000,000 = 30,000 people\"}),\" will test positive even though they\u2019re \",/*#__PURE__*/e(\"em\",{children:\"fine\"}),\".\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"That means we now have \",/*#__PURE__*/e(\"strong\",{children:\"30,001 people\"}),\" who test positive \u2014 but only \",/*#__PURE__*/e(\"strong\",{children:\"1 of them is truly sick\"}),\".\"]})})]})]})}),/*#__PURE__*/t(\"p\",{children:[\"So if you test positive at random, your actual chance of having the disease is \",/*#__PURE__*/e(\"strong\",{children:\"1 in 30,001\"}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"That\u2019s \",/*#__PURE__*/e(\"em\",{children:\"incredibly\"}),\" low.\"]}),/*#__PURE__*/t(\"p\",{children:[\"This is called the \",/*#__PURE__*/e(\"strong\",{children:\"base rate fallacy\"}),\" \u2014 ignoring how rare something is when you're presented with dramatic new info. In medicine, this happens \",/*#__PURE__*/e(\"em\",{children:\"a lot\"}),\".\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h2\",{children:\"Final Thoughts\"}),/*#__PURE__*/e(\"p\",{children:\"Probability messes with your brain because it\u2019s often at odds with your instincts.\"}),/*#__PURE__*/e(\"p\",{children:\"Whether it\u2019s choosing goats, opening briefcases, or facing a terrifying diagnosis, the truth is buried in the numbers \u2014 not in what \u201Cfeels\u201D right.\"}),/*#__PURE__*/e(\"p\",{children:\"Stay sceptical. Do the maths. And always switch doors.\"}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/t(\"h4\",{children:[\"\uD83E\uDDEA Try it yourself: \",/*#__PURE__*/e(\"em\",{children:\"Monty Hall Simulato\"}),\"r\"]})]});export const richText4=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"My favorite thing to do at Querio is to design a new feature - everything from the initial concept to adding the final shadows. In the end, after a long session of tweaks, I\u2019m happy with my designs and move them to \u201CDone.\u201D\"}),/*#__PURE__*/e(\"p\",{children:\"But not so fast. This is when the worst part begins: a developer steps in and actually has to code it. More often than not, i\u2019m faced with the reality that my designs don\u2019t look the same in production as they do in Figma. Frustrating? Oh, absolutely. But what can you do when the developer doesn\u2019t have enough time to change the five shadows on a button? And, let\u2019s be honest, probably doesn\u2019t want to. It\u2019s tough to convince a young startup that a slightly different button color is critical to the user experience - because, well, it\u2019s not.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"So the process usually looks like this:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"I design stuff\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Developer codes it\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Me hearing \u201Cwell i cut some corners\u2026\u201D\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Me trying to defend my \u201Ccorners\u201D because nobody likes ugly apps.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Decent, compromised version is released\"})})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Not bad, but still very... almost.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"306\",src:\"https://framerusercontent.com/images/WTZf71RdB5FFnKjjhdDQkH1oNI.png\",srcSet:\"https://framerusercontent.com/images/WTZf71RdB5FFnKjjhdDQkH1oNI.png?scale-down-to=512 512w,https://framerusercontent.com/images/WTZf71RdB5FFnKjjhdDQkH1oNI.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/WTZf71RdB5FFnKjjhdDQkH1oNI.png 1600w\",style:{aspectRatio:\"1600 / 612\"},width:\"800\"}),/*#__PURE__*/t(\"p\",{children:[\"It\u2019s not \",/*#__PURE__*/e(\"em\",{children:\"bad\"}),\". It\u2019s just not \",/*#__PURE__*/e(\"em\",{children:\"right\"}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"The border radius is wrong. The hover doesn\u2019t animate like you imagined. The font is \u201Cclose enough.\u201D The icon is obviously different.\"}),/*#__PURE__*/e(\"p\",{children:\"Close enough to pass. But not close enough to feel proud.\"}),/*#__PURE__*/e(\"p\",{children:\"Sometimes I scroll through the app, switching between Figma and the live version, like a crime scene investigator spotting all the tiny visual discrepancies.\"}),/*#__PURE__*/e(\"p\",{children:\"Am I dramatic? Maybe.\"}),/*#__PURE__*/t(\"p\",{children:[\"But here\u2019s the thing - design is not decoration. It\u2019s not just \u201Cnice-to-have.\u201D Good design brings clarity, confidence, and trust. That \u201Ctiny\u201D padding issue? It \",/*#__PURE__*/e(\"em\",{children:\"feels\"}),\" off. Even if users can\u2019t say why.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Yet, in a fast-moving startup, perfection is a luxury. You can\u2019t argue for hours about border-radius when the dev team is rushing to push features. You learn to pick your battles. You learn to \",/*#__PURE__*/e(\"em\",{children:\"let go\"}),\". And weirdly, that\u2019s also part of growing as a designer.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"So how do you survive it?\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"Instead of giving away a design and just wait for it to be coded, you regularly communicate with developers so even if they need to cut some corners, you choose \",/*#__PURE__*/e(\"em\",{children:\"how\"}),\" those corners would be cut.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"You compromise on the pixels, but never on the principles.\"})})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"The bigger picture\"}),/*#__PURE__*/t(\"p\",{children:[\"Over time, you realize that great product design isn\u2019t about getting every pixel perfect - it\u2019s about creating something that works beautifully \",/*#__PURE__*/e(\"em\",{children:\"in the real world\"}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"You still notice the 2px misalignments. But you also learn to focus your energy where it counts most - the parts of the design that truly shape how users feel and interact.\"}),/*#__PURE__*/e(\"p\",{children:\"So no, design isn\u2019t in Figma. It\u2019s in conversations. In decisions. In compromises.\"}),/*#__PURE__*/e(\"p\",{children:\"It\u2019s in the shipped product, imperfect and alive.\"})]});export const richText5=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/e(\"h3\",{children:\"About Pipp\"}),/*#__PURE__*/e(\"figure\",{className:\"framer-table-wrapper\",children:/*#__PURE__*/e(\"table\",{children:/*#__PURE__*/t(\"tbody\",{children:[/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"th\",{children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Size\"})})}),/*#__PURE__*/e(\"th\",{children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Industry\"})})}),/*#__PURE__*/e(\"th\",{children:/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Data stack\"})})}),/*#__PURE__*/e(\"th\",{children:/*#__PURE__*/e(\"p\",{children:\"Use Querio since\"})})]}),/*#__PURE__*/t(\"tr\",{children:[/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"50-300 employees\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"E-Commerce\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"RedShift, Querio, Postgres\"})}),/*#__PURE__*/e(\"td\",{children:/*#__PURE__*/e(\"p\",{children:\"May 2024\"})})]})]})})}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Problem\"}),/*#__PURE__*/e(\"p\",{children:\"Pipp is a complex product with a lot of unique areas. They are both a consumer SaaS and e-commerce platform and require understanding of their financial, logistics, e-commerce, and user behavior. Due to their rapid scaling, they had significant issues\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Getting insights into their data to make their daily decisions\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Creating top-line reports to keep track of what matters\"})})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Solution\"}),/*#__PURE__*/e(\"p\",{children:\"With Querio, instead of 40 people pinging the engineering team constantly, and giving up on getting a data point quick enough for new decisions, Pipp uses Querio to ask their daily operational questions and keep visibility on what matters. The many business functions directly ask Querio\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Results\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Data team cut down new reporting time from 3 weeks to 30 minutes\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Dozens of non-technical employees now ask data questions to Querio directly\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"All business functions do top-line reporting in Querio\"})})]}),/*#__PURE__*/t(\"blockquote\",{children:[/*#__PURE__*/e(\"p\",{children:\"I\u2019ve been really surprised with how well Querio works. The team is a lot more self-sufficient, more than I assumed they could be, and our engineering team has a much closer relationship to the business. Querio changed how we work with our data and each other!\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"44\",src:\"https://framerusercontent.com/images/Pjou0rVF5X1e1T5zCXv5drK2CJE.png\",style:{aspectRatio:\"434 / 88\"},width:\"217\"})]})]});export const richText6=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"For this week\u2019s blog, I want to focus on a few questions I think a lot of people in the data world take for granted: What the heck is a database, why can\u2019t you just use excel, and what the heck is SQL anyway?\"}),/*#__PURE__*/e(\"p\",{children:\"If you work in data, you probably understand this really well. We definitely do at Querio. Most people though do not, and they really don\u2019t need to anyway. If you don\u2019t know this already, Querio is the best way for teams to work with data, regardless of their technical level. This means we make sense if you can write queries in your sleep and obsess over load times, or if the most you\u2019ve worked with data is formatting an excel sheet to a nice color.\"}),/*#__PURE__*/e(\"p\",{children:\"One thing I love doing with friends, my parents, or customers, is giving them a first principle explanation of what all these things are. In typical Querio fashion, this article will get more technical as you keep reading so that there is something for everyone! We\u2019re going to frame this in a really cliche fashion: running a lemonade stand. To get started, \"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"What is a database?\"})}),/*#__PURE__*/e(\"p\",{children:\"Every business collects data, it\u2019s important. The most basic thing you\u2019d want to know running your lemonade stand is how much did you make? To do this, you need to keep track of every sale or transaction. Let\u2019s say you put this on piece of paper. Everytime you sold something, you write down how much money you made.\"}),/*#__PURE__*/e(\"p\",{children:\"Amazing! At the end of the day, you sit there and add up all the money you made. Then as you\u2019re counting, someone comes up and wants lemonade! The only problem is you\u2019re out of lemons. So you ask them to come by tomorrow.\"}),/*#__PURE__*/e(\"p\",{children:\"The next day, you go to the grocery store, and you wonder how many lemons you sold? You have no idea. You buy more than you need, and you decide to now keep track of how many cups you\u2019re selling so you know how much lemons to buy the next day.\"}),/*#__PURE__*/e(\"p\",{children:\"You had an amazing day of sales. You celebrate and go out to dinner, ready to recharge for the next day. You go back to the store, and realized you spent so much money at dinner you can\u2019t buy as many lemons as yesterday since you\u2019re out of cash. Now you\u2019re going to keep track of how much you spend on cups, lemons, and napkins to also know how much money you need.\"}),/*#__PURE__*/e(\"p\",{children:\"I\u2019ll stop with this story for now, but the point is there is a lot of data you naturally keep track of to run a business, and this usually only increases as you find more things you want to do well. This is what a database is, it\u2019s a store of all the data you are collecting and instead of paper it is digital. It is really great for storing information we need. In databases, data is stored in tables, each with rows (individual transactions) and columns (specific details). For example, a table might have columns like \u201CName,\u201D \u201Camount,\u201D \u201Ccups sold,\u201D and \u201CPurchase History,\u201D\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"So what about excel?\"})}),/*#__PURE__*/e(\"p\",{children:\"In the modern day, we put this information in an excel sheet! For now, you can imagine excel is a type of database with extra nice stuff. You can create some columns, keep track of things, and pretty easily do things like add them up and make nice looking summaries of your business. Excel is all you need!\"}),/*#__PURE__*/e(\"p\",{children:\"What if instead of lemonade, you\u2019re now something ridiculous like Amazon, and now you\u2019re selling millions of things an hour. Obviously, it\u2019s unrealistic to have someone actually fill out every transaction. Imagine everytime someone bought something on Amazon someone had to go into excel and write their name, address, what they bought, how much etc. Instead of this, we have software automatically fill this out.\"}),/*#__PURE__*/e(\"p\",{children:\"Well, fun fact but excel has a limit of around 1,000,000 rows. That means if you are Amazon, you need a new excel sheet (or a new piece of paper) every 30 seconds. So now excel really doesn\u2019t work anymore. We have to use a proper database because they are designed for large amounts of data. We store things in a database, and it can handle billions of rows of all the transactions we\u2019re doing.\"}),/*#__PURE__*/e(\"p\",{children:\"But also Excel is something you can see. You can scroll through it, you can highlight columns, and do all of that fun stuff. What about a database though? What does it look like! Well as it turns out you can\u2019t really \u2018look\u2019 at a database by just opening it on a computer. You can\u2019t select a column or make a formula to sum everything up it just doesn\u2019t fit. So instead, we need to ask for things with SQL.\"}),/*#__PURE__*/e(\"h3\",{children:/*#__PURE__*/e(\"strong\",{children:\"How to write SQL\"})}),/*#__PURE__*/e(\"p\",{children:\"SQL, or Structued Query Language, is the standard \u2018language\u2019 for interacting with databases. We write SQL, which is a relative easy kind of code, to request things from a database. Let\u2019s say I want to get all the sales I had in April. I\u2019d have the question \u201CWhat were my sales in April?\u201D. Well the database doesn\u2019t understand it, but it can understand SQL. It would look something like this:\"}),/*#__PURE__*/e(\"div\",{className:\"framer-text-module\",style:{height:\"auto\",width:\"100%\"},children:/*#__PURE__*/e(n,{componentIdentifier:\"module:pVk4QsoHxASnVtUBp6jr/HTBsNkEMAb7TUGaO3DBy/CodeBlock.js:default\",children:t=>/*#__PURE__*/e(s,{...t,code:\"SELECT SUM(sales)\\nFROM transactions\\nWHERE MONTH(date) = April\",language:\"SQL\"})})}),/*#__PURE__*/e(\"p\",{children:\"This tells the database to give me the\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"SUM of sales\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"FROM the table called transactions\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"WHERE the month of the date column is April.\"})})]}),/*#__PURE__*/e(\"p\",{children:\"Congratulations! You can now read SQL! That wasn\u2019t so hard right?\"}),/*#__PURE__*/e(\"p\",{children:\"Obviously there is a lot more to it with things like joining different tables together, knowing what tables you need in the first place, or doing more complex functions. But, in my (and Querio\u2019s opinion) the hard part is knowing what you want and the getting the data part should be easy. This is why Querio\u2019s AI let\u2019s you ask the question \u201CWhat were my sales in April?\u201D and Querio writes the SQL for you. We handle the complexity so you can focus on running your business.\"}),/*#__PURE__*/e(\"p\",{children:\"That\u2019s not all we do of course, that data person on your team who you are sending your 15th Jira ticket to this month has much harder stuff to do, and they can write queries that even Querio will struggle with, so we have a whole list of tools that make their lives easier too.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"1495\",src:\"https://framerusercontent.com/images/8EQY7s5gvcTclma8KnFw2UjoMI.png\",srcSet:\"https://framerusercontent.com/images/8EQY7s5gvcTclma8KnFw2UjoMI.png?scale-down-to=512 512w,https://framerusercontent.com/images/8EQY7s5gvcTclma8KnFw2UjoMI.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/8EQY7s5gvcTclma8KnFw2UjoMI.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/8EQY7s5gvcTclma8KnFw2UjoMI.png?scale-down-to=4096 4096w,https://framerusercontent.com/images/8EQY7s5gvcTclma8KnFw2UjoMI.png 5360w\",style:{aspectRatio:\"5360 / 2991\"},width:\"2680\"}),/*#__PURE__*/t(\"p\",{children:[\"That\u2019s before we even open the can of worms including making reports, nice charts, python analysis, and so many other really cool stuff data can do. But i\u2019ll cover that stuff another time. If you want your team, or yourself, to do your best work and get the most of your data, then you really should check us out! You can book a demo here, or email me directly at \",/*#__PURE__*/e(a,{href:\"mailto:rami@querio.ai\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"rami@querio.ai\"})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:\"One last thing, i need to set the record straight, life DID NOT GIVE US LEMONS! We invented lemons ourselves ( lemons are a hybrid between a bitter orange and citron). So life will not give you answers directly, Querio is your lemon.\"})]});export const richText7=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"Today, I don\u2019t want to write about Querio. I want to help you get better at coding. But who am I to teach you that? If you get my resume, you will see that I don\u2019t have\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"much\"}),\"\\xa0formal experience, only 4 years, and that\u2019s nothing!! But if you see,\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"in\"}),\"\\xa0my first job, I was \u201Ctech lead\u201D. Why? Because I was coding for 2 years before getting my first job. How? Making side projects.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"The importance of side projects for growing your career\"}),/*#__PURE__*/t(\"p\",{children:[\"When I\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"started\"}),\"\\xa0my first job, I entered as an intern, and the first thing that I did was\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"show\"}),\"\\xa0every single developer all my side projects. Then, the current \u201Ctech lead\u201D, the one that was tasked\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"with teaching\"}),\"\\xa0me how to do the job,\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"stood\"}),\"\\xa0behind me and yelled, for everyone to hear, the following words: \u201CHow am I gonna teach this m\",/*#__PURE__*/e(\"em\",{children:\"f\"}),\"\\xa0if he knows more than me?\u201D, and at that time, I got the respect of the whole company. Long story short, I got promoted every single month, he left, and I assumed the position to lead 5 other developers.\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/t(\"em\",{children:[\"\u201Ctech lead\u201D is always in quotes because this wasn\u2019t the formal name of the role. In Brazil, you need to pay\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"the\"}),\"\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"government\"}),\" to\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"register\"}),\"\\xa0new roles; this was a small company, so everyone was a developer, but with different responsibilities.\"]})}),/*#__PURE__*/t(\"p\",{children:[\"After this one, I got another job at a company that was a client of the company I was working\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"for\"}),\", because they knew me and wanted to\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"create\"}),\"\\xa0a \u201Ctask force\u201D that I would lead. So, another lead job.\"]}),/*#__PURE__*/t(\"p\",{children:[\"But while I was there, I got really pumped and wanted to work more, so every single day I was waking up at 6 AM to code a side project called Piggy. I won\u2019t explain what Piggy was, \",/*#__PURE__*/e(\"strong\",{children:\"you can find it\\xa0on\\xa0my LinkedIn or Twitter,\"}),\" but this side project blew up.\\xa0It\\xa0got 70k likes on Twitter, 5k likes on LinkedIn, and this got international attention,\\xa0leading ****to\\xa0interviews with international companies (I was working exclusively\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"in\"}),\"\\xa0Brazil) and, with 2 weeks of work\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"on\"}),\"\\xa0a side project, I tripled my salary.\"]}),/*#__PURE__*/t(\"p\",{children:[\"In this new company, I wasn\u2019t the tech lead; I was a normal developer, but if you checked the contribution graph, I was the one who committed the\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"most\"}),\"\\xa0code, so I was\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"always\"}),\"\\xa0working. There, I did a side project to automate tasks from work, so I learned a lot about reverse-engineering and web scraping, but then started a new one called \u201CChatBZZ\u201D, a ChatGPT wrapper that was faster to use and could use natural language to automate\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"day-to-day\"}),\"\\xa0tasks. This made me learn a lot about\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"LLMs\"}),\"\\xa0and how\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"agents\"}),\"\\xa0work. Then, when Javier asked me to join Querio, I answered, \u201C\",/*#__PURE__*/e(\"strong\",{children:\"That\u2019s\"}),\"\\xa0literally what\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"I\u2019m\"}),\"\\xa0working on; of course, I want to join Querio\u201D, and now I\u2019m here!\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"But which side projects\"}),/*#__PURE__*/t(\"p\",{children:[\"This is a question that I receive\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"a lot\"}),\"\\xa0when I say, \u201CDO SIDE PROJECTS\u201D, and the answer is very basic: do side projects\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"in\"}),\"\\xa0the area and\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"using the\"}),\"\\xa0technology you want to work\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"with\"}),\". This way, when you get a new job\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"in\"}),\"\\xa0the area, you already know how to do it.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Piggy was a Personal Finance Management App. A finance app. It got me interviews\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"at\"}),\"\\xa03 \",/*#__PURE__*/e(\"strong\",{children:\"finance companies\"}),\", and I ended\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"up entering\"}),\"\\xa0one in Germany. When I\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"started\"}),\"\\xa0there, I already understood a lot of concepts; it was very easy to adapt (even though I had very little experience with Vue.js), and in no time, I was one of the top contributors.\"]}),/*#__PURE__*/t(\"p\",{children:[\"ChatBzz used\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"LLMs\"}),\", and Querio uses\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"LLMs\"}),\"; I don\u2019t think I need to explain much more.\"]}),/*#__PURE__*/t(\"p\",{children:[\"If you don\u2019t know an area but know a technology, ask ChatGPT\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"for\"}),\"\\xa0a project idea that\u2019s novel, solve a problem that people have daily, and implement it\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"using\"}),\"\\xa0the technology you want.\"]}),/*#__PURE__*/t(\"p\",{children:[\"But NEVER do a side project on a topic that you have no idea\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"about\"}),\". I have zero knowledge about diabetes; I\u2019m not going to do a project to help people with diabetes,\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"because\"}),\"\\xa0I won\u2019t know what\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"I\u2019m\"}),\"\\xa0doing.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Side Projects helping your Current Full Time Job\"}),/*#__PURE__*/t(\"p\",{children:[\"I talked a lot about how side projects helped me get new jobs, but how can they help\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"in\"}),\"\\xa0my current job? Querio is very experimental (every single AI company is experimental; no one truly knows what they are doing), but at the same time, it needs to be production-ready. So, I can\u2019t spend\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"a\"}),\"\\xa0week working on a complete\",/*#__PURE__*/e(\"strong\",{children:\"ly\"}),\"\\xa0new abstraction that works perfectly for a specific use case,\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"only for it to suck\"}),\"\\xa0when I try to do something a little bit different. But there\u2019s a place where I can test my ideas, validate\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"them\"}),\", see if they suck (probably they do), and if they are good, then implement\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"them in\"}),\"\\xa0Querio. And that place is\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"side projects\"}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"Currently, I\u2019m working on 3 different side projects.\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"Two\"}),\"\\xa0are a secret\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"because\"}),\"\\xa0maybe they will become paid products, and the other one is public, but if my boss discovers it, I will be fired, so I won\u2019t disclose it. But\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"in them\"}),\", I developed:\"]}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"A good way to handle\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"queues\"}),\". Querio doesn\u2019t have queues right now, but there\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"are\"}),\"\\xa0a lot of places that can benefit from queues (especially dashboard sync). Knowing this, I created a nice abstraction that works well. But it\u2019s not 100%\",/*#__PURE__*/e(\"strong\",{children:\";\"}),\"\\xa0I want to invest more time\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"in\"}),\"\\xa0this project, and when it\u2019s battle-tested, I\u2019ll implement\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"it in\"}),\"\\xa0Querio.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"A\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"better\"}),\"\\xa0way to handle\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"WebSockets\"}),\": My last blog\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"post\"}),\"\\xa0was about\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"websockets\"}),\", and there\u2019s an entire section telling why they suck and what I did to make\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"them\"}),\"\\xa0a little bit better. But it wasn\u2019t enough for me, so I went and\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"developed\"}),\"\\xa0a whole new\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"websockets\"}),\"\\xa0library that works WAY BETTER. The only reason why it\u2019s not implemented in Querio right now is because it\u2019s a big refactor and there are some missing features. But as soon as I implement those missing features, I\u2019ll create a PRD to implement this new library. This library is sexy**\u2014**not gonna lie.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"MCP: Yeah, we are probably not going to implement MCP\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"because\"}),\"\\xa0our agents are too complex for that, but I finally learned MCP**,** and in the future, if we are going to make a new agent, I can think about giving MCP a try.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"New agent ideas: All\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"three\"}),\"\\xa0side projects use\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"LLMs\"}),\"\\xa0in a different way. So, they need 3 different agent implementations. This gave me a lot of ideas\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"for\"}),\"\\xa0new agents that I\u2019m willing to implement\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"in\"}),\"\\xa0Querio.\"]})})]}),/*#__PURE__*/t(\"p\",{children:[\"That\u2019s why working on side projects can be really good. You can make a dime if they are good, and if you\\xa0\",/*#__PURE__*/e(\"strong\",{children:\"haven't finished\"}),\"\\xa0them, at least you learned something. And learning, my friends, doesn\u2019t have a price. Stay learning, do side projects, get rich.\"]})]});export const richText8=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/e(\"h3\",{children:\"devlog 2. filters post-mortem\"}),/*#__PURE__*/t(\"p\",{children:[\"This post outlines a recent project's shortcomings and what to do next based on lessons from \",/*#__PURE__*/e(a,{href:\"https://basecamp.com/shapeup\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Shape Up\"})}),\" - Basecamp's methodology for product development. I believe these principles can transform how we approach scope management at Querio and significantly improve our ability to ship meaningful work consistently.\"]}),/*#__PURE__*/e(\"p\",{children:\"Hey everyone! At the time of writing this I shipped my first big feature at Querio - server side filters. It ran too long, burnt me out and was almost a complete disaster in most other aspects. I will explain what happened and where 33.333333% of the engineering team is going from here.\"}),/*#__PURE__*/e(\"h3\",{children:\"querio server side filters\"}),/*#__PURE__*/t(\"p\",{children:[\"Server side filter means that user should be able to modify the SQL that describes how to fetch their data. I explain more of the concept in the \",/*#__PURE__*/e(a,{href:\"https://www.notion.so/querio-ai/devlog1.md\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"previous post\"})}),\", albeit slightly manically.\"]}),/*#__PURE__*/e(\"h3\",{children:\"what happened\"}),/*#__PURE__*/t(\"p\",{children:[\"I will attempt to retrace my thoughts and actions from the start of the project until the final commit was merged. This will make it easier for us to establish problematic patterns of behaviour and (hopefully) come up with some remedies. I don't know about you but the most terse storytelling format I know is \",/*#__PURE__*/e(a,{href:\"https://en.wiktionary.org/wiki/greentext\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"greentext\"})}),\", don't f with me on this.\"]}),/*#__PURE__*/e(\"div\",{className:\"framer-text-module\",style:{height:\"auto\",width:\"100%\"},children:/*#__PURE__*/e(n,{componentIdentifier:\"module:pVk4QsoHxASnVtUBp6jr/HTBsNkEMAb7TUGaO3DBy/CodeBlock.js:default\",children:t=>/*#__PURE__*/e(s,{...t,code:\">be me\\n>implement server-side filters as soon as humanly possible\\n>i give it a week \uD83D\uDE0E\\n>actually...\\n>spent a week digging around <https://github.com/tobymao/sqlglot>, until settled on approach that will work\\n>3 days to work out data-model, rewrote everything 2-3 times, settled on a dto layer\\n>1-2 days spent on no-gos like sharing db with main app and syncing over pg pub/sub with main app\\n>3-4 days on 'demo app' (that has nothing to do the actual app)\\n>confused why team looks at me weird\\n>a little over budget, but integrating this will be easy...\\n>i have never integrated into this app before\\n>integration needs slightly above average amount of boilerplate (see <https://querio.ai/blog/websockets>)\\n>pff i used to write dotnet i aint scared of boilerplate\\n>3 days later...\\n>filters appear in multiple places in the app, integrate everything again outside of websocket context\\n>use trpc queries - requests fail due to excessive header size\\n>cant communicate to server securely\\n>try to pass the session in the header - cannot decode, discover encryption keys dont match across services\\n>\\n>slowly going insane\\n>ported ui from demo app - does not look anything like our figma\\n>write styles, sticking head into rabbit-holes like selecting multiple options, supporting out-of-model condition types, error handling\\n>fix everything, push to prod\\n>self hosted customers cannot access\\n>didnt increment the minor version to trigger image re-publish\\n>\\\"it's done!\\\"\\n>get a cold, take 2 days off work\",language:\"Markdown\"})})}),/*#__PURE__*/e(\"h3\",{children:\"what went wrong and what to do next\"}),/*#__PURE__*/t(\"p\",{children:[\"The same two things that always go wrong: 1) poor shipping technique and 2) scope creep. Old me would write off (1) to \",/*#__PURE__*/e(a,{href:\"https://en.wikipedia.org/wiki/Animal_spirits_(Keynes)\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"animal spirits\"})}),\" and (2) to these pesky project managers not defining correct requirements har har har. Except at Querio we don't have a project manager...so this is \",/*#__PURE__*/e(a,{href:\"https://cdn-useast1.kapwing.com/static/templates/astronaut-meme-always-has-been-template-template-full-810332ab.webp\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"all me\"})}),\".\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})}),/*#__PURE__*/e(\"p\",{children:\"Old me is dead, here's what the new guy thinks.\"}),/*#__PURE__*/e(\"h4\",{children:\"poor shipping technique. managing scopes and being brave\"}),/*#__PURE__*/e(\"p\",{children:\"Ever since I stopped being handed tasks and started getting handed projects I had to come up with tasks by myself. Senior devs always told me that before a new project I am to:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"sit down if i am standing up\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"figure out all the stuff I have to do\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"make a todo list\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"tick items off\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"???\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Profit!\"})})]}),/*#__PURE__*/e(\"p\",{children:\"From here it went one of two ways: 1) I have done this before and I actually know what to do, or, more commonly 2) I have no idea what I'm doing but I am going to pretend that I do anyway. If I was unlucky enough to hit (2) I would almost always blow way past the project estimate, leaving a sour taste in everyone's mouth.\"}),/*#__PURE__*/t(\"p\",{children:[\"I was facing a \",/*#__PURE__*/e(\"em\",{children:\"false equivalence\"}),\" between imaginary and discovered tasks. Imaginary tasks are what we think we'll need to do based on our initial understanding, while discovered tasks emerge as we actually work on the project and gain deeper understanding of the problem space. The mistake is treating both types as equal when estimating and planning work.\"]}),/*#__PURE__*/e(\"p\",{children:\"In the case of filters I knew I would at least have to:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"establish a data model for server side filters\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"transform arbitrary where conditions into the data model\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"integrate new functionality into the app, being careful about the self-host customers\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"write styles\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"These are \",/*#__PURE__*/e(\"strong\",{children:\"imaginary\"}),\" tasks - my experience dictates that this is the kind of thing I do to ship this kind of project.\"]}),/*#__PURE__*/t(\"p\",{children:[\"As weeks went on, the to-do list grew with \",/*#__PURE__*/e(\"strong\",{children:\"discovered tasks\"}),\". I label rabbit-holes with \",/*#__PURE__*/e(\"code\",{children:\"?\"}),\" and no-gos with \",/*#__PURE__*/e(\"code\",{children:\"!\"}),\" - more on them later.\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"establish a data model for server side filters\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"handle queries that have multiple scopes (CTEs, subqueries, etc) - that is most of them\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"be upfront about the SQL dialect used\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"!share the SQL schema for customer data we are filtering\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"data model has to be flat\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"data model needs to correctly handle logical connectors\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"data model needs to be splice-able into the original SQL that fetched the data\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"transform arbitrary where conditions into the data model\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"cannot use conditions directly because of their recursive structure (given to me by SQL parser)\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"!handle SQL conditions that are not currently supported by the data model\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"?some filters support multiple options which need to be transpiled back into SQL conditions\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"integrate new functionality into the app, being careful about the self-host customers\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"bypass self-hosted customers\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"implement session persistence between these two components of the app\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"handle payload limits\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"write styles\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"?styles need to actually map over the data model\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"By the end of the project \",/*#__PURE__*/e(\"strong\",{children:\"discovered tasks\"}),\" outnumber the \",/*#__PURE__*/e(\"strong\",{children:\"imaginary\"}),\" kind 3 to 1. Reading the items you will notice dependencies between tasks. Notice also that each task can be one of two flavours. Completing some tasks results in finished work, completing others like \",/*#__PURE__*/e(\"code\",{children:\"integrate new functionality\"}),\" results in \",/*#__PURE__*/e(\"em\",{children:\"sub-tasks\"}),\" like \",/*#__PURE__*/e(\"code\",{children:\"implement session persistence\"}),\" and \",/*#__PURE__*/e(\"code\",{children:\"handle payload limits\"}),\". The list is missing dimensions.\"]}),/*#__PURE__*/e(\"p\",{children:'When I say \"dimensions,\" I mean that a flat to-do list fails to capture the hierarchical nature of work (some tasks spawn sub-tasks), the dependencies between tasks (what must be completed before other things can start), and the relative importance of each task to the core value of the feature. A one-dimensional list treats all tasks as equal, when they\\'re clearly not.'}),/*#__PURE__*/e(\"p\",{children:\"Aside from dimensions, the list above is missing structure. Structure (I have re-re-re-discovered) is important, doubly so at a startup. Here\u2019s why.\"}),/*#__PURE__*/e(\"p\",{children:\"I would join the daily standup calls, I'd usually be last because I am hammering out the 13th re-write of the data model, so I'd give my update first. With a nervous grind I'd recite: \\\"I am still working on filters\\\" to the sound of palms hitting faces and a 3000 yard stare from my CTO. \\\"You guys don't want implementation details do you? I am doing you a favour!\\\", I said. This excuse became less and less effective as my self-imposed deadline retreated further into the past.\"}),/*#__PURE__*/t(\"p\",{children:[\"Let's try to separate the final list into \",/*#__PURE__*/e(\"em\",{children:\"scopes\"}),\" along the lines of the original imaginary list. Let's work in the two kinds of tasks from above - one that finishes work and one that generates more work.\"]}),/*#__PURE__*/e(\"p\",{children:\"I'm introducing two key concepts here:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"Downhill scopes\"}),\" (v): These contain tasks that are well-understood and complete discrete chunks of work. When working on these, you gain momentum because each task you finish brings you closer to completion.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"em\",{children:\"Uphill scopes\"}),\" (^): These contain tasks that tend to generate more tasks as you work on them. These are zones of discovery and uncertainty, where the more you dig, the more you find that needs to be done.\"]})})]}),/*#__PURE__*/e(\"p\",{children:\"Understanding which scopes are uphill vs. downhill helps set expectations and structure work more effectively. If the new me was doing the project, the todo-list might have looked something like this\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:\"query-engine (v)\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"establish a data model for server side filters\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"handle queries that have multiple scopes (CTEs, subqueries, etc) - that is most of them\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"be upfront about the SQL dialect used\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"data model has to be flat\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"data model needs to correctly handle logical connectors\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"data model needs to be splice-able into the original SQL that fetched the data\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"transform arbitrary where conditions into the data model\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"cannot use conditions directly because of their recursive structure (given to me by SQL parser)\"})})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:\"integration (^)\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"!share the SQL schema for customer data we are filtering\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"!handle SQL conditions that are not currently supported by the data model\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"?some filters support multiple options which need to be transpiled back into SQL conditions\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"integrate new functionality into the app, being careful about the self-host customers\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"bypass self-hosted customers\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"implement session persistence between these two components of the app\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"handle payload limits\"})})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:\"frontend (^)\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"write styles\"})})})]})]}),/*#__PURE__*/e(\"p\",{children:\"If I picked a scope and reported as I ticked off the tasks I'd be able to gain momentum and stop dreading the daily standup.\"}),/*#__PURE__*/t(\"p\",{children:[\"But how to \",/*#__PURE__*/e(\"em\",{children:\"pick\"}),\" a scope to build first? There are three tenets. The thing to build first should be:\"]}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"core\"}),\" - thing most central to the project and most important to prove early\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"small\"}),\" - finish something meaningful in a few days and build momentum\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"novel\"}),\" - something that I haven't done before and thus am more likely to meet resistance (remain uphill the longest)\"]})})]}),/*#__PURE__*/e(\"p\",{children:\"With this, the above middle-of-the-road todo list might become:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[\"query-engine (v) - \",/*#__PURE__*/e(\"strong\",{children:\"CORE\"}),\", \",/*#__PURE__*/e(\"strong\",{children:\"SMALL\"}),\", \",/*#__PURE__*/e(\"strong\",{children:\"NOVEL\"})]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"establish a data model for server side filters\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"data model has to be flat\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"data model needs to be splice-able into the original SQL that fetched the data\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"transform arbitrary where conditions into the data model\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"cannot use conditions directly because of their recursive structure (given to me by SQL parser)\"})})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:\"complex queries (^)\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"handle queries that have multiple scopes (CTEs, subqueries, etc) - that is most of them\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"data model needs to correctly handle logical connectors\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"?some filters support multiple options which need to be transpiled back into SQL conditions\"})})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:\"error-handling (^)\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"!handle SQL conditions that are not currently supported by the data model\"})})})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:\"platform (^)\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"bypass self-hosted customers\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"implement session persistence between these two components of the app\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"handle payload limits\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"be careful about the self-host customers\"})})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:\"integration (v)\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"integrate query-engine into app\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"be upfront about the SQL dialect used\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"!share the SQL schema for customer data we are filtering\"})})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:\"frontend (^)\"}),/*#__PURE__*/e(\"ul\",{children:/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"write styles\"})})})]})]}),/*#__PURE__*/e(\"p\",{children:\"I've marked the first scope as meeting all three tenets: it's CORE (the fundamental functionality needed), SMALL (achievable in a few days), and NOVEL (something I haven't done before). Prioritising scopes this way allows us to tackle the riskiest, most valuable work first, while building confidence through quick, meaningful wins.\"}),/*#__PURE__*/e(\"p\",{children:\"Right? Wrong!\"}),/*#__PURE__*/e(\"p\",{children:\"In hindsight I know that doing the uphill work for the query-engine scope took at least a week, including the ramp-up time (time to get acquainted with the library I was using for SQL parsing). At the end of the week the core might be done but there is nothing to demo.\"}),/*#__PURE__*/e(\"p\",{children:\"I would instead take a cross-layer slice of the project and integrate everything e2e into a simple dropdown filter inside the app. Integration work would be mostly downhill is demoable and would force resolution on 80% of integration issues I ended up facing towards the very end of the project. Nice way to build momentum.\"}),/*#__PURE__*/e(\"p\",{children:\"I don't know about you, but just looking at the structure of this todo-list gives me a sense of inner peace I haven't experienced since my friend Alex wrote the Prolog coursework for us both at university. I feel like the angels are singing to me.\"}),/*#__PURE__*/e(\"p\",{children:\"Hey, but what about the rabbit-holes and no-gos?\"}),/*#__PURE__*/e(\"h4\",{children:\"i'm a creep i'm a weirdo\"}),/*#__PURE__*/t(\"p\",{children:[\"I used to think it was project manager's work to eliminate scope creep, but as uphill and downhill scopes have shown us, creeping is what scopes do. It is the natural order of things. More importantly the creeping happens \",/*#__PURE__*/e(\"strong\",{children:\"after\"}),\" the scope is considered \",/*#__PURE__*/e(\"em\",{children:\"defined\"}),\" by most project managers - it is some work's nature to produce more work.\"]}),/*#__PURE__*/t(\"p\",{children:[\"This understanding fundamentally changes how we need to approach scope management. Instead of pretending we can define everything perfectly upfront (we can't), we need to actively manage scope throughout the project lifecycle. So it must be that it is I who has to be the \",/*#__PURE__*/e(\"em\",{children:\"shield that guards the realms of men\"}),\" from scope creep and our roadmap from being turned into a shitshow.\"]}),/*#__PURE__*/e(\"blockquote\",{children:/*#__PURE__*/e(\"p\",{children:\"Every part of the product does not need to be equally prominent, equally fast and equally polished. Every use case isn't equally common, equally critical, or equally aligned with the market we are trying to sell to.\"})}),/*#__PURE__*/t(\"p\",{children:[\"Like many developers I know, I am infected with the perfectionist mind-virus. When I write code I compare what I have with the ideal - a feature that might work perfectly when all the cases are handled and all the bugs squashed. Needless to say the likelihood of that kind of feature appearing before we run out of runway approaches zero. Going forward I will \",/*#__PURE__*/e(\"strong\",{children:\"compare to baseline\"}),' - it\\'s a difference between \"never good enough\" and \"better than what we have now\".']}),/*#__PURE__*/t(\"p\",{children:[\"When we come up with things to fix, add, improve, rewrite for the 5th time or redesign \",/*#__PURE__*/e(\"strong\",{children:\"during a project\"}),\" we may ask:\"]}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"is this a must have?\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"if we ship without this what happens?\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"is this a new problem or pre-existing one that customers already live with\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"how likely is this to happen?\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"when something doesn't work well for a particular use case, how aligned is this use case with our intended audience?\"})})]}),/*#__PURE__*/e(\"p\",{children:'That is scope hammering - actively cutting back scope to fit our appetite and focus on what matters. Scope hammering doesn\\'t mean doing sloppy work - it means being strategic about what you choose to build and what you choose to defer or ignore. It means staying disciplined about focusing on what provides the most value rather than chasing every edge case or \"nice-to-have\" feature. Is it the cure for the perfectionist mind virus? Only time can tell.'}),/*#__PURE__*/e(\"h4\",{children:\"they see me creepin', they hatin'\"}),/*#__PURE__*/t(\"p\",{children:[\"If you thought I'd end this log without dunking on project management you are wroooong! I have alluded to the designs for filters being inconsistent with the experience we were designing (forms in figma were not representative of affordances we wanted to provide to the user). Moreover, I said that \",/*#__PURE__*/e(\"strong\",{children:\"I (me)\"}),\" have set the deadline. That means the rest of the team had a deadline in mind that they would prefer but were not prepared to enforce.\"]}),/*#__PURE__*/e(\"p\",{children:\"Problem is, we are prone to thinking of deadlines exactly backwards. Estimations (bad usually and especially so in murky waters) start with a feature and end with a number. You're guessing how long it would take to complete an unknown scope, whose nature is to grow as it is being discovered. The inputs and outputs are backwards.\"}),/*#__PURE__*/e(\"p\",{children:'This is where the concept of an \"appetite\" from Shape Up comes in. The number one most important input into a project\\'s scope is the time we are willing to spend on it - the appetite. Instead of asking \"how long will this take?\", we should be asking \"how much time is this worth?\" and then designing the solution to fit within that timeframe.'}),/*#__PURE__*/e(\"p\",{children:\"The appetite could be any length of time, in Querio's case it may be 1-2 weeks - no more than 4 (I'd say). Important thing is that the appetite is picked once and honoured throughout the project lifecycle. This flips the traditional approach on its head - rather than letting the scope determine the timeline, we let the timeline (appetite) constrain the scope. This creates a healthier, more predictable development process.\"}),/*#__PURE__*/e(\"p\",{children:'The harsh deadline forces scope hammering. It also incentivizes finding rabbit-holes and no-goes during the design phase - what Shape Up calls \"shaping\" the problem, before time is committed to it.'}),/*#__PURE__*/e(\"p\",{children:\"Shaping is the critical work that happens before a project is committed to. It's about:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Defining the problem clearly\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Setting boundaries on the solution\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Identifying risks and rabbit-holes upfront\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"Creating enough structure for the team to build upon without over-specifying every detail\"})})]}),/*#__PURE__*/e(\"p\",{children:\"A well-shaped project outlines the rabbit-holes to avoid (and suggests how to handle them) and no-go zones to not bother with (do not try to connect filters to the database to share the user schema). The result is a project with clear boundaries. Good fences make good neighbours and clear boundaries make great relationships. This applies to both the relationship between team members working on a project and the relationship between our team and the goals/timeline we've committed to.\"})]});export const richText9=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/t(\"p\",{children:[\"Our founding designer, Mariia, wrote a great blog post recently called \",/*#__PURE__*/e(a,{href:\"https://querio.ai/blog/maybe-not\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"Maybe not?\"})}),\" She wrote a set of things we did to un-AI Querio and it serves as the inspiration for much of what I am about to write. There\u2019s going to be a lot to say, so this blog is part one of a two part series.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"The swing of the pendulum\"}),/*#__PURE__*/e(\"p\",{children:\"There\u2019s this thing I call the \u201Cswing of the pendulum\u201D. It\u2019s not trademarked or anything, it\u2019s just my way of explaining how humanity tends to go very far in one direction when we get excited about something. And in the process of going so far, we forget about the lessons that got us there in the first place. Eventually, after hitting some wall, we realize we need to course-correct.\"}),/*#__PURE__*/e(\"p\",{children:\"You see this pendulum everywhere once you start looking for it. Think about it: we get collectively obsessed with a new way of doing things, sprint full speed ahead, and then swing back toward a more balanced reality. Not all the way back to where we started, but somewhere in the middle where the exciting new thing and the proven old ways can play nicely together.\"}),/*#__PURE__*/e(\"p\",{children:\"What I find fascinating isn't just that the pendulum swings, but how predictable the pattern is and yet how surprised we always seem when it happens. Every industry, every tech wave, same story. I'll give you some examples, and you'll see where I'm heading and why it's so related to what Mariia wrote about un-AI-ing our product.\"}),/*#__PURE__*/e(\"p\",{children:'The dot-com pendulum led Marc Cuban to become a billionaire, then the fundamentals of economics came crashing back, reminding us that companies actually need revenue. Twenty years later, the zirpies gave us another pendulum swing of \"growth at all cost\" unicorns, until the 2022 correction reminded us yet again that unit economics matter.'}),/*#__PURE__*/e(\"p\",{children:\"For us football nerds, Spain's 2008-2012 tiki-taka pendulum swung so far that by 2014-2018, Spain was just passing the ball like a headless chicken with no purpose. Now we've found balance again with a game where Lamine\u2019s flair can co-exist with Rodri's control.\"}),/*#__PURE__*/e(\"p\",{children:'What about the \"app for everything\u201D pendulum which gave birth to the Zippo app. I, like many, briefly rocked it on my iPod, but eventually we realized that maybe not everything was going to become a mobile app and that real Zippos are still the best way to light a J.'}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"377\",src:\"https://framerusercontent.com/images/RQ6CD2qVCut9kfA3sKCZnndWtSM.png\",srcSet:\"https://framerusercontent.com/images/RQ6CD2qVCut9kfA3sKCZnndWtSM.png?scale-down-to=512 512w,https://framerusercontent.com/images/RQ6CD2qVCut9kfA3sKCZnndWtSM.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/RQ6CD2qVCut9kfA3sKCZnndWtSM.png 1600w\",style:{aspectRatio:\"1600 / 754\"},width:\"800\"}),/*#__PURE__*/e(\"p\",{children:\"Each time, the pendulum swings too far before finding equilibrium. Which brings me to AI or better put, LLMs.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"The LLM pendulum\"}),/*#__PURE__*/e(\"h4\",{children:\"Early days\"}),/*#__PURE__*/e(\"p\",{children:\"I don\u2019t know about y\u2019all, but it felt like ChatGPT came out of nowhere. Well, kind of. Looking back, I notice that the pendulum was gradually starting to swing, but I didn\u2019t fully realize when I first saw it. I got to experience the emptiness of the beginning, the wild frenzy of the swing, and play my part on the way back to equilibrium. For once, I\u2019ve had a seat\u2014albeit a nose-bleed one\u2014to the pendulum's entire arc.\"}),/*#__PURE__*/e(\"p\",{children:\"Back in 2018 while studying at UT Austin, my friend (now co-founder) Rami had early access to IBM Watson\u2019s natural language AI as he was building Lina (I\u2019ll let him blog about that later). I had no idea what this was, to be honest, but he seemed pretty excited, so we spent some time playing with it.\"}),/*#__PURE__*/e(\"p\",{children:\"This was our college days, so we loved playing the guitar and using real Zippos, but as non-English majors we were quite shit with words. So it made perfect sense to get this novel thing to fill-in the gap and write lyrics for us. We made a barebones app that would take in some songs you wanted as inspiration, fetch the lyrics and pass them as context, along with a description of what you wanted the song to be about. Out came the lyrics.\"}),/*#__PURE__*/e(\"p\",{children:\"It was magical, but we had very limited credits, it frankly wasn't very good, and it died a slow death as a random cool toy we forgot about. Little did I know this was just my first sighting of a gentle push of a pendulum that would soon swing with much greater force.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"ChatGPT wrapping\"}),/*#__PURE__*/t(\"p\",{children:[\"When ChatGPT launched, it instantly took me back to Rami\u2019s college room. I was heavily impressed by how much better it had gotten during those years. Having already felt a similar magic before, it got me super excited about the possibilities. It turns out, this time it wasn\u2019t just me who got excited\u2014\",/*#__PURE__*/e(\"em\",{children:\"everyone\"}),\" was. And with that collective excitement, the pendulum had gained enough restoring force to blow past the equilibrium point.\"]}),/*#__PURE__*/t(\"p\",{children:[\"Every product roadmap suddenly included an LLM feature and the pressure got so massive that even Apple, king sloth, announced AI so early that \",/*#__PURE__*/e(a,{href:\"https://www.businessinsider.com/apple-faces-ai-lawsuit-2025-3\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"they\u2019re now getting sued for it\"})}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"Now, there was a lot of talk about \",/*#__PURE__*/e(\"em\",{children:\"ChatGPT wrappers\"}),\" during that time, but they referred to the infra powering the engineering behind a product. Just passing prompts to OpenAI's API and returning results. As much as \",/*#__PURE__*/e(a,{href:\"https://www.trcp.org/2011/01/18/it-is-not-the-critic-who-counts/\",motionChild:!0,nodeId:\"tuRG1jt7F\",openInNewTab:!1,preserveParams:!1,relValues:[],scopeId:\"contentManagement\",smoothScroll:!1,children:/*#__PURE__*/e(r.a,{children:\"the critics\"})}),\" want to disagree, there was genuine innovation behind the scenes wrapping those LLM calls. Infra, orchestrations, context, pruning, memory, tools\u2014 all carefully engineered systems our team will shed light on in future blogs.\"]}),/*#__PURE__*/e(\"p\",{children:\"Let's be real though: everything is a wrapper of something else, that\u2019s how humans build. Cars are just fancy wheel wrappers. Books are alphabet wrappers. Software is a wrapper of wrappers down until you reach a bit. If you zoom out far enough, all of our accomplishments as a civilization are just wrappers of wrappers of ideas. The \\\"just a wrapper\\\" critique wasn't the gotcha people thought it was\u2014it's literally how progress works and the critics will critique.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h4\",{children:\"UX\"}),/*#__PURE__*/t(\"p\",{children:[\"That\u2019s not what I am here to talk to you about. I want to talk about something a bit more subtle: the \",/*#__PURE__*/e(\"em\",{children:\"user experience\"}),\" we built around that hidden infrastructure. The pendulum didn\u2019t just swing toward AI\u2014it swung specifically toward the same interface.\"]}),/*#__PURE__*/t(\"p\",{children:[\"We all built the same damn UX: a chat. Text in, text out? \",/*#__PURE__*/e(\"em\",{children:\"It must look like WhatsApp and operate like a linear chat\"}),\". This was the pendulum swinging us so fast, that we forgot all our design principles. Chats are great for certain tasks\u2014 communication between humans as well as exploratory conversations and broad assistance with LLMs. But that was evidently not the right UX for the vast majority of applications of LLMs.\"]}),/*#__PURE__*/e(\"p\",{children:\"At Querio, we rode, or got carried by, this pendulum like everyone else. We built a chat. Then something interesting happened: our users started showing us through their behaviors that the pendulum needed to swing back. They wanted the AI pizzazz, absolutely\u2014but they also wanted structure, guidance, and to be able to click around to change something instead of having to text their way to success. You know, basic UX design.\"}),/*#__PURE__*/e(\"p\",{children:\"This is where Mariia's un-AI-ing of a product comes into play. We realized we needed to find that middle ground where AI's capabilities enhanced rather than replaced the interfaces and experiences users already understood. We needed to swing the pendulum back toward balance.\"}),/*#__PURE__*/e(\"p\",{children:\"In Part 2 of this series, I'll dive deeper into exactly what we did with one of our core products to find this balance\u2014how we kept the magic while stripping away the chat that was getting in our users' way. The pendulum never stops swinging, but knowing where it is in its arc can give you a major advantage.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"1495\",src:\"https://framerusercontent.com/images/5fxBrcJwYStMTJZxQswquqMM1w.png\",srcSet:\"https://framerusercontent.com/images/5fxBrcJwYStMTJZxQswquqMM1w.png?scale-down-to=512 512w,https://framerusercontent.com/images/5fxBrcJwYStMTJZxQswquqMM1w.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/5fxBrcJwYStMTJZxQswquqMM1w.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/5fxBrcJwYStMTJZxQswquqMM1w.png?scale-down-to=4096 4096w,https://framerusercontent.com/images/5fxBrcJwYStMTJZxQswquqMM1w.png 5360w\",style:{aspectRatio:\"5360 / 2991\"},width:\"2680\"})]});export const richText10=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/e(\"p\",{children:\"I recently came across a podcast from NNG called \u201CDesigning AI Experiences,\u201D featuring Caleb Sponheim. At one point, they asked him what he\u2019d put on a billboard if every designer saw it driving to work in the morning.\"}),/*#__PURE__*/t(\"p\",{children:[\"His answer? \",/*#__PURE__*/e(\"strong\",{children:\"\u201CMaybe not?\u201D\"})]}),/*#__PURE__*/e(\"p\",{children:\"The man is clearly done with chatbots popping up in every app.\"}),/*#__PURE__*/e(\"blockquote\",{children:/*#__PURE__*/e(\"p\",{children:\"\u201CAI is not a silver bullet to solving any problem.\u201D  - Caleb says.\"})}),/*#__PURE__*/t(\"p\",{children:[\"And he\u2019s absolutely right. There are better ways to meet your users\u2019 needs. At least \",/*#__PURE__*/e(\"em\",{children:\"maybe not\"}),\" with yet another chatbot.\"]}),/*#__PURE__*/e(\"p\",{children:\"That\u2019s exactly what we realized at Querio.\"}),/*#__PURE__*/e(\"p\",{children:\"We started as an AI chatbot for data. It was cool at first\u2014fast responses, natural language, all that stuff. But over time, we realized: this is just one piece of the puzzle. People working with data need way more than a chat bubble to make real decisions.\"}),/*#__PURE__*/t(\"p\",{children:[\"And let\u2019s be clear\u2014we\u2019re not anti-AI. When used thoughtfully, it can be \",/*#__PURE__*/e(\"em\",{children:\"chef\u2019s kiss\"}),\": faster workflows, amazing insights, saving people\u2019s time. But here\u2019s the thing:\"]}),/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Too many products are adding AI just because they can\u2014not because they should.\"})}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"When AI Took Over Querio \uD83D\uDE2C\"}),/*#__PURE__*/t(\"p\",{children:[\"Like a lot of teams, we got a little too excited. We went all in on AI: chatbot, instant answers, AI chart builder, AI summary, AI everything\u2014you name it. It sounded impressive. It even \",/*#__PURE__*/e(\"em\",{children:\"looked\"}),\" impressive.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"392\",src:\"https://framerusercontent.com/images/QI5vUUVj51GO1uQKeJFe5RFw.png\",srcSet:\"https://framerusercontent.com/images/QI5vUUVj51GO1uQKeJFe5RFw.png?scale-down-to=512 512w,https://framerusercontent.com/images/QI5vUUVj51GO1uQKeJFe5RFw.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/QI5vUUVj51GO1uQKeJFe5RFw.png 1600w\",style:{aspectRatio:\"1600 / 784\"},width:\"800\"}),/*#__PURE__*/e(\"p\",{children:\"But then\u2026 reality hit.\"}),/*#__PURE__*/e(\"p\",{children:\"Users were confused. Some were low-key overwhelmed. Others didn\u2019t trust the results because they couldn\u2019t see where the info was coming from.\"}),/*#__PURE__*/t(\"p\",{children:[\"We had to face it: AI wasn\u2019t making things better. It was just making things \",/*#__PURE__*/e(\"em\",{children:\"noisier\"}),\".\"]}),/*#__PURE__*/t(\"p\",{children:[\"So we\u2026\uD83E\uDD41\u2026 started to \",/*#__PURE__*/e(\"strong\",{children:\"un-AI\"}),\" our product.\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"What Does It Mean to Un-AI a Product?\"}),/*#__PURE__*/e(\"p\",{children:\"It means taking a breath and asking:\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"392\",src:\"https://framerusercontent.com/images/Ol6Tu14JABVB1tgUslgOJVifOmE.png\",srcSet:\"https://framerusercontent.com/images/Ol6Tu14JABVB1tgUslgOJVifOmE.png?scale-down-to=512 512w,https://framerusercontent.com/images/Ol6Tu14JABVB1tgUslgOJVifOmE.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/Ol6Tu14JABVB1tgUslgOJVifOmE.png 1600w\",style:{aspectRatio:\"1600 / 784\"},width:\"800\"}),/*#__PURE__*/t(\"p\",{children:[\"We realized AI should \",/*#__PURE__*/e(\"strong\",{children:\"support\"}),\" the experience\u2014not be the main character.\"]}),/*#__PURE__*/e(\"p\",{children:\"So we made some changes:\"}),/*#__PURE__*/t(\"ul\",{children:[/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/t(\"p\",{children:[\"We put aside the chatbot and focused on \",/*#__PURE__*/e(\"em\",{children:\"showing\"}),\" and \",/*#__PURE__*/e(\"em\",{children:\"editing\"}),\" the output.\"]})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"We started showing more of the logic behind the scenes, with editable steps.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"We added a Knowledge Base where users define their own context and data rules.\"})}),/*#__PURE__*/e(\"li\",{\"data-preset-tag\":\"p\",children:/*#__PURE__*/e(\"p\",{children:\"We added Notebook with SQL and Python where users could write it all by hand or have Querio do the lift\"})})]}),/*#__PURE__*/t(\"p\",{children:[\"Bottom line? We put the power back in our users' hands! But still keeping AI as an \",/*#__PURE__*/e(\"strong\",{children:\"option\"}),\".\"]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"The Un-AI Checklist\"}),/*#__PURE__*/e(\"p\",{children:\"Next time when designing an AI feature ask yourself:\"}),/*#__PURE__*/t(\"ol\",{children:[/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Is AI solving a \"}),/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"real\"})}),/*#__PURE__*/e(\"strong\",{children:\" user problem?\"})]}),/*#__PURE__*/t(\"p\",{children:[\"Or are we just adding it because it sounds cool?\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Can users \"}),/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"understand and control\"})}),/*#__PURE__*/e(\"strong\",{children:\" what the AI is doing?\"})]}),/*#__PURE__*/t(\"p\",{children:[\"No mystery boxes. Give people visibility and control.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/t(\"p\",{children:[/*#__PURE__*/e(\"strong\",{children:\"Is the AI making things \"}),/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"faster\"})}),/*#__PURE__*/e(\"strong\",{children:\", or just \"}),/*#__PURE__*/e(\"em\",{children:/*#__PURE__*/e(\"strong\",{children:\"fancier\"})}),/*#__PURE__*/e(\"strong\",{children:\"?\"})]}),/*#__PURE__*/t(\"p\",{children:[\"A feature that looks cool but slows you down? Immediate red flag \uD83D\uDEA9.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Is this feature helping users do what they want to do?\"})}),/*#__PURE__*/t(\"p\",{children:[\"Let users lead, AI follows.\",/*#__PURE__*/e(\"br\",{}),/*#__PURE__*/e(\"br\",{className:\"trailing-break\"})]})]}),/*#__PURE__*/t(\"li\",{\"data-preset-tag\":\"p\",children:[/*#__PURE__*/e(\"p\",{children:/*#__PURE__*/e(\"strong\",{children:\"Are users getting trust issues from AI?\"})}),/*#__PURE__*/e(\"p\",{children:\"Transparency always wins.\"})]})]}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Finally\"}),/*#__PURE__*/t(\"p\",{children:[\"We\u2019re not saying AI is bad. We\u2019re saying \",/*#__PURE__*/e(\"em\",{children:\"maybe not\"}),\"\u2014not for every interaction, not in every corner of your product.\"]})]});export const richText11=/*#__PURE__*/t(o.Fragment,{children:[/*#__PURE__*/e(\"h3\",{children:\"Today we\u2019re thrilled to introduce our biggest product launch to date: Explore. An entirely new way to work with data.\"}),/*#__PURE__*/e(\"p\",{children:\"For decades, interacting with data has been broken. Someone asks a data team a question, they write a query, that query asks the database, and the chain is reversed to you. We\u2019ve spent years building on top of this; data innovations the last 20 years have focused on making it easier to write queries, style the responses, and reduce time spent in each step. It was never assumed you can change how things are done.\"}),/*#__PURE__*/e(\"p\",{children:\"Then AI coding and text-to-sql arrived; a promised technology to end this terrible chain. You no longer have to be two degrees of separation from your data, or spend time writing repetitive SQL. Now, you text this chatbot, like you would a teammate in slack.\"}),/*#__PURE__*/e(\"p\",{children:\"In fact, when we launched Querio, we also thought this was the best way. It feels familiar, but is it actually the best way? You are still technically asking someone else over slack, that person is just an AI agent now. Why are we still \u201Casking\u201D? Why are we not creating?\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Explore: Reimagining how you work with your data.\"}),/*#__PURE__*/e(\"p\",{children:\"We decided to change how you interact with your data and created Explore - an open canvas that focuses on the answers you need, not the questions you're asking. Whether you're a great operator or a data guru, Explore is the best place for you to do your work. Let's dig into how Explore does that:\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"1495\",src:\"https://framerusercontent.com/images/bfs6kTa6juw43bTYliNZp3BoeTk.png\",srcSet:\"https://framerusercontent.com/images/bfs6kTa6juw43bTYliNZp3BoeTk.png?scale-down-to=512 512w,https://framerusercontent.com/images/bfs6kTa6juw43bTYliNZp3BoeTk.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/bfs6kTa6juw43bTYliNZp3BoeTk.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/bfs6kTa6juw43bTYliNZp3BoeTk.png?scale-down-to=4096 4096w,https://framerusercontent.com/images/bfs6kTa6juw43bTYliNZp3BoeTk.png 5360w\",style:{aspectRatio:\"5360 / 2991\"},width:\"2680\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Get Beautiful Answers Instantly\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"475\",src:\"https://framerusercontent.com/images/y2gEZpWeJrCbH55o7D5EQjgMdxs.gif\",srcSet:\"https://framerusercontent.com/images/y2gEZpWeJrCbH55o7D5EQjgMdxs.gif?scale-down-to=512 512w,https://framerusercontent.com/images/y2gEZpWeJrCbH55o7D5EQjgMdxs.gif?scale-down-to=1024 1024w,https://framerusercontent.com/images/y2gEZpWeJrCbH55o7D5EQjgMdxs.gif 1600w\",style:{aspectRatio:\"1600 / 950\"},width:\"800\"}),/*#__PURE__*/e(\"p\",{children:\"No waiting for a chat reply or breaking your flow. Prompt in plain English\u2014Querio handles the rest. Clear visual outputs and data, instantly. \"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Iterate Freely with Full Transparency\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"602\",src:\"https://framerusercontent.com/images/R6BkKWJmfpRbvDyaoLuypEAZDM.gif\",srcSet:\"https://framerusercontent.com/images/R6BkKWJmfpRbvDyaoLuypEAZDM.gif?scale-down-to=512 512w,https://framerusercontent.com/images/R6BkKWJmfpRbvDyaoLuypEAZDM.gif?scale-down-to=1024 1024w,https://framerusercontent.com/images/R6BkKWJmfpRbvDyaoLuypEAZDM.gif 1600w\",style:{aspectRatio:\"1600 / 1204\"},width:\"800\"}),/*#__PURE__*/e(\"p\",{children:\"Mid-thought changes? No problem. Edit your prompts mid-flight and watch Querio update your answers in real time. You can even peek behind the scenes to see the SQL and Python that power your insights. (Don't worry, you can also edit them directly). \"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Drill Down and Understand Deeply\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"602\",src:\"https://framerusercontent.com/images/xZxfpxeEhMGAxBaBbzj8CZ96Y.gif\",srcSet:\"https://framerusercontent.com/images/xZxfpxeEhMGAxBaBbzj8CZ96Y.gif?scale-down-to=512 512w,https://framerusercontent.com/images/xZxfpxeEhMGAxBaBbzj8CZ96Y.gif?scale-down-to=1024 1024w,https://framerusercontent.com/images/xZxfpxeEhMGAxBaBbzj8CZ96Y.gif 1600w\",style:{aspectRatio:\"1600 / 1204\"},width:\"800\"}),/*#__PURE__*/e(\"p\",{children:\"Want to dig deeper? Drill into any detail, expand your questions, and see how the agent reasons through each step. Go down as many rabbit holes as you need. Exploring your data should feel intuitive.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Save to Dashboards, Stay on Track\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"540\",src:\"https://framerusercontent.com/images/WAVL1BQpUOiSM4r1XinSHEI.gif\",srcSet:\"https://framerusercontent.com/images/WAVL1BQpUOiSM4r1XinSHEI.gif?scale-down-to=512 512w,https://framerusercontent.com/images/WAVL1BQpUOiSM4r1XinSHEI.gif?scale-down-to=1024 1024w,https://framerusercontent.com/images/WAVL1BQpUOiSM4r1XinSHEI.gif 1434w\",style:{aspectRatio:\"1434 / 1080\"},width:\"717\"}),/*#__PURE__*/e(\"p\",{children:\"With one click, pin anything to a dashboard to keep an eye on what matters most. From question to report in a few minutes. Turn any answer into a saved insight.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"Code as BI in our native Notebook\"}),/*#__PURE__*/e(\"p\",{children:\"Behind Explore is a flexible notebook with a powerful new agent engine\u2014designed to bring better reasoning, higher accuracy, and faster performance. More on that soon.\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"1496\",src:\"https://framerusercontent.com/images/J9Ervi1YxEVYI5zhU18YnRX7Q.png\",srcSet:\"https://framerusercontent.com/images/J9Ervi1YxEVYI5zhU18YnRX7Q.png?scale-down-to=512 512w,https://framerusercontent.com/images/J9Ervi1YxEVYI5zhU18YnRX7Q.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/J9Ervi1YxEVYI5zhU18YnRX7Q.png?scale-down-to=2048 2048w,https://framerusercontent.com/images/J9Ervi1YxEVYI5zhU18YnRX7Q.png?scale-down-to=4096 4096w,https://framerusercontent.com/images/J9Ervi1YxEVYI5zhU18YnRX7Q.png 5360w\",style:{aspectRatio:\"5360 / 2992\"},width:\"2680\"}),/*#__PURE__*/e(\"img\",{alt:\"\",className:\"framer-image\",height:\"24\",src:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png\",srcSet:\"https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=512 512w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png?scale-down-to=1024 1024w,https://framerusercontent.com/images/JxmrIX5B4OpZnxyjlYDTW1yOdS4.png 1400w\",style:{aspectRatio:\"1400 / 48\"},width:\"700\"}),/*#__PURE__*/e(\"h3\",{children:\"And much more\"}),/*#__PURE__*/e(\"p\",{children:\"We\u2019ve also added a few special things for the little details we know you care about:Querio now feels more like a creative space and less like a chatbot. That\u2019s the way data exploration should be.\"})]});\nexport const __FramerMetadata__ = {\"exports\":{\"richText8\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText9\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText7\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText2\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText6\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText4\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText5\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText3\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText11\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText1\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"richText10\":{\"type\":\"variable\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}"],
  "mappings": "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",
  "names": ["init_ssg_sandbox_shims", "richText", "u", "x", "p", "Link", "motion", "richText1", "richText2", "richText3", "richText4", "richText5", "richText6", "ComponentPresetsConsumer", "t", "CodeBlock_default", "richText7", "richText8", "richText9", "richText10", "richText11", "__FramerMetadata__"]
}
