[{"data":1,"prerenderedAt":489},["ShallowReactive",2],{"content-query-tAlbc29U4h":3,"content-navigation-8C37fagqQL":291},{"_path":4,"_dir":5,"_draft":6,"_partial":6,"_locale":7,"title":8,"description":9,"heading":10,"abstract":11,"year":12,"tags":13,"schemaOrg":15,"body":99,"_type":249,"_id":250,"_source":251,"_file":252,"_stem":253,"_extension":254,"head":255},"/appearances/ch-open-vibe-coding-experiment","appearances",false,"","The Vibe Coding Experiment: building a RAG system from scratch at ch-open","Hands-on workshop at the ch-open Open Source AI Workshops in which four teams build a working RAG system from scratch in six hours, using only the opencode-ai coding agent, base libraries, and open-weights models.","ch-open Vibe Coding Experiment","Workshop host at the ch-open Open Source AI Workshops. Four teams built a working RAG system from scratch in six hours, each owning one core component and using opencode-ai as their only copilot.",2026,[14],"Workshop",[16,57,69,78],{"@context":17,"@type":18,"name":19,"description":20,"startDate":21,"eventStatus":22,"eventAttendanceMode":23,"location":24,"organizer":30,"performer":34,"about":39,"keywords":47,"inLanguage":55,"isAccessibleForFree":56},"https://schema.org","Event","Das Vibe-Coding-Experiment: Vier Teams, sechs Stunden, ein Ziel","A six-hour hands-on experiment in which four teams build a working RAG system from scratch, using only an open-source coding agent and an API specification.","2026-05-18T09:00:00+02:00","EventScheduled","OfflineEventAttendanceMode",{"@type":25,"name":26,"address":27},"Place","ch-open Open Source AI Workshops, Raum C",{"@type":28,"addressCountry":29},"PostalAddress","CH",{"@type":31,"name":32,"url":33},"Organization","ch-open (Swiss Open Systems User Group)","https://www.ch-open.ch",[35],{"@type":36,"name":37,"url":38},"Person","Joel Barmettler","https://joelbarmettler.xyz",[40,43,45],{"@type":41,"name":42},"Thing","Retrieval-Augmented Generation",{"@type":41,"name":44},"Vibe Coding",{"@type":41,"name":46},"Open Source AI",[48,44,49,46,50,51,52,53,54],"RAG","opencode-ai","Open Weights","DeepSeek","GLM-4","Vector Database","ch-open","de-CH",true,{"@context":17,"@type":58,"name":59,"description":60,"teaches":61,"organizer":66,"performer":67,"startDate":21},"EducationEvent","The Vibe Coding Experiment","Participants build the four core components of a RAG system from scratch, with only base libraries and the opencode-ai coding agent, then integrate them live into a working whole.",[42,62,63,64,65],"AI-Assisted Programming","LLM Inference","Vector Databases","Document Processing",{"@type":31,"name":32,"url":33},[68],{"@type":36,"name":37,"url":38},{"@context":17,"@type":70,"name":59,"url":71,"author":72,"about":73,"learningResourceType":74,"teaches":75},"PresentationDigitalDocument","https://joelbarmettleruzh.github.io/ch-open-ai/1",{"@type":36,"name":37},{"@type":41,"name":42},"Presentation",[76,44,77],"RAG Architecture","Open Source AI Tooling",{"@context":17,"@type":79,"mainEntity":80},"FAQPage",[81,87,91,95],{"@type":82,"name":83,"acceptedAnswer":84},"Question","What was the Vibe Coding Experiment about?",{"@type":85,"text":86},"Answer","The experiment asked whether a team with no template could build a working RAG system in six hours using only an open-source coding agent and an API specification. Four teams each owned one core component and integrated their work live into a single running system at the end.",{"@type":82,"name":88,"acceptedAnswer":89},"Which components did the teams build?",{"@type":85,"text":90},"Four teams each built one core component of the RAG system from scratch: an LLM inference server, a vector database, a document processor, and a chat frontend. They used only base libraries and the opencode-ai coding agent as their copilot, with no finished frameworks.",{"@type":82,"name":92,"acceptedAnswer":93},"Which open-source technologies were used?",{"@type":85,"text":94},"The workshop used opencode-ai as the coding agent and open-weights models such as DeepSeek or GLM-4. The final integrated system ran on a local open-source LLM, so the entire stack stayed open and self-hosted.",{"@type":82,"name":96,"acceptedAnswer":97},"Who was the workshop for?",{"@type":85,"text":98},"It was aimed at anyone who wants to understand how AI systems work under the hood and try AI-assisted programming with open-source tools. No prior experience as a developer was required, only the willingness to experiment. Participants needed a laptop with a browser and a GitHub account; everything else ran in a preconfigured GitHub Codespace.",{"type":100,"children":101,"toc":242},"root",[102,111,133,140,154,159,165,170,216,222,227,232,238],{"type":103,"tag":104,"props":105,"children":107},"element","h1",{"id":106},"the-vibe-coding-experiment-a-rag-system-in-six-hours",[108],{"type":109,"value":110},"text","The Vibe Coding Experiment: a RAG system in six hours",{"type":103,"tag":112,"props":113,"children":114},"p",{},[115,117,131],{"type":109,"value":116},"On Monday, 18 May, I hosted a workshop at the ",{"type":103,"tag":118,"props":119,"children":128},"a",{"className":120,"href":124,"rel":125,"target":127},[121,122,123],"underline","text-gray-400","hover:text-gray-500","https://www.ch-open.ch/open-source-ai-workshops/",[126],"nofollow","_blank",[129],{"type":109,"value":130},"ch-open Open Source AI Workshops",{"type":109,"value":132}," in Room C. The premise was a question: can a team with no template build a working RAG system in six hours, armed only with an open-source coding agent and an API specification? We set out to find out.",{"type":103,"tag":134,"props":135,"children":137},"h2",{"id":136},"the-setup",[138],{"type":109,"value":139},"The setup",{"type":103,"tag":112,"props":141,"children":142},{},[143,145,152],{"type":109,"value":144},"Four teams each took ownership of one core component of a retrieval-augmented generation system: an LLM inference server, a vector database, a document processor, and a chat frontend. Every team built its component from scratch, without finished frameworks, using only base libraries and ",{"type":103,"tag":118,"props":146,"children":150},{"className":147,"href":148,"rel":149,"target":127},[121,122,123],"https://opencode.ai",[126],[151],{"type":109,"value":49},{"type":109,"value":153}," as their copilot. At the end, we wired everything together live into a single working system.",{"type":103,"tag":112,"props":155,"children":156},{},[157],{"type":109,"value":158},"The whole stack stayed open. We worked throughout with open technologies: opencode-ai as the coding agent, open-weights models such as DeepSeek or GLM-4, and a final system that ran on a local open-source LLM. No proprietary APIs, no hidden magic, just the moving parts of a RAG system laid bare.",{"type":103,"tag":134,"props":160,"children":162},{"id":161},"the-format",[163],{"type":109,"value":164},"The format",{"type":103,"tag":112,"props":166,"children":167},{},[168],{"type":109,"value":169},"The day was split into four sessions:",{"type":103,"tag":171,"props":172,"children":173},"ul",{},[174,186,196,206],{"type":103,"tag":175,"props":176,"children":177},"li",{},[178,184],{"type":103,"tag":179,"props":180,"children":181},"strong",{},[182],{"type":109,"value":183},"Foundation",{"type":109,"value":185}," — understanding the system architecture, an introduction to opencode-ai, and forming teams.",{"type":103,"tag":175,"props":187,"children":188},{},[189,194],{"type":103,"tag":179,"props":190,"children":191},{},[192],{"type":109,"value":193},"Understand & plan",{"type":109,"value":195}," — each team worked out its component and prepared a short presentation.",{"type":103,"tag":175,"props":197,"children":198},{},[199,204],{"type":103,"tag":179,"props":200,"children":201},{},[202],{"type":109,"value":203},"Build",{"type":109,"value":205}," — implementing the core functionality and sharing an interim status.",{"type":103,"tag":175,"props":207,"children":208},{},[209,214],{"type":103,"tag":179,"props":210,"children":211},{},[212],{"type":109,"value":213},"Integrate",{"type":109,"value":215}," — bringing the components together, running a live demo, and reflecting on what we learned.",{"type":103,"tag":134,"props":217,"children":219},{"id":218},"for-whom",[220],{"type":109,"value":221},"For whom",{"type":103,"tag":112,"props":223,"children":224},{},[225],{"type":109,"value":226},"The workshop was for anyone who wants to understand how AI systems work under the hood and try AI-assisted programming with open-source tools. You did not need to be an experienced developer; the willingness to experiment mattered more. The only prerequisites were a laptop with a browser and a GitHub account, since everything else ran in a preconfigured GitHub Codespace.",{"type":103,"tag":112,"props":228,"children":229},{},[230],{"type":109,"value":231},"Participants walked away with hands-on experience of vibe coding, a working understanding of the core components of a RAG system, and their own code to keep building on.",{"type":103,"tag":134,"props":233,"children":235},{"id":234},"slides",[236],{"type":109,"value":237},"Slides",{"type":103,"tag":239,"props":240,"children":241},"website-frame",{"src":71},[],{"title":7,"searchDepth":243,"depth":243,"links":244},2,[245,246,247,248],{"id":136,"depth":243,"text":139},{"id":161,"depth":243,"text":164},{"id":218,"depth":243,"text":221},{"id":234,"depth":243,"text":237},"markdown","content:5.appearances:1.ch-open-vibe-coding-experiment.md","content","5.appearances/1.ch-open-vibe-coding-experiment.md","5.appearances/1.ch-open-vibe-coding-experiment","md",{"script":256},[257],{"type":258,"key":259,"nodes":260,"data-nuxt-schema-org":56},"application/ld+json","schema-org-graph",[261,272,277,281],{"@context":17,"@type":18,"name":19,"description":20,"startDate":21,"eventStatus":22,"eventAttendanceMode":23,"location":262,"organizer":264,"performer":265,"about":267,"keywords":271,"inLanguage":55,"isAccessibleForFree":56},{"@type":25,"name":26,"address":263},{"@type":28,"addressCountry":29},{"@type":31,"name":32,"url":33},[266],{"@type":36,"name":37,"url":38},[268,269,270],{"@type":41,"name":42},{"@type":41,"name":44},{"@type":41,"name":46},[48,44,49,46,50,51,52,53,54],{"@context":17,"@type":58,"name":59,"description":60,"teaches":273,"organizer":274,"performer":275,"startDate":21},[42,62,63,64,65],{"@type":31,"name":32,"url":33},[276],{"@type":36,"name":37,"url":38},{"@context":17,"@type":70,"name":59,"url":71,"author":278,"about":279,"learningResourceType":74,"teaches":280},{"@type":36,"name":37},{"@type":41,"name":42},[76,44,77],{"@context":17,"@type":79,"mainEntity":282},[283,285,287,289],{"@type":82,"name":83,"acceptedAnswer":284},{"@type":85,"text":86},{"@type":82,"name":88,"acceptedAnswer":286},{"@type":85,"text":90},{"@type":82,"name":92,"acceptedAnswer":288},{"@type":85,"text":94},{"@type":82,"name":96,"acceptedAnswer":290},{"@type":85,"text":98},[292,306,322,338,357,442],{"title":293,"_path":294,"children":295,"icon":305},"About","/about",[296,299,302],{"title":297,"_path":298},"Joel Barmettler - AI Engineer, Researcher, and Entrepreneur","/about/about-me",{"title":300,"_path":301},"What Drives Me - Research Focus and Philosophy on AI Systems","/about/what-drives-me",{"title":303,"_path":304},"Technical Skills and Expertise - AI, ML, Infrastructure, and Web Development","/about/skills","📁",{"title":307,"_path":308,"children":309,"icon":305},"Career","/career",[310,313,316,319],{"title":311,"_path":312},"Building the AI Business Area at bbv Software Services","/career/bbv",{"title":314,"_path":315},"PolygonSoftware: Building a tech company during university","/career/polygon-software",{"title":317,"_path":318},"Machine learning for semiconductor quality control at BESI","/career/besi",{"title":320,"_path":321},"Data engineering for cryptocurrency analytics at CoinPaper","/career/coinpaper",{"title":323,"_path":324,"children":325,"icon":305},"Research","/research",[326,329,332,335],{"title":327,"_path":328},"The Invisible Coalition Partner: How LLMs Vote When Democracy Gets Concrete","/research/invisible-coalition-partner",{"title":330,"_path":331},"ConceptFormer: Graph-native grounding of LLMs via latent concept injection","/research/masters-thesis",{"title":333,"_path":334},"Airspace auction simulator for urban drone traffic","/research/masters-project",{"title":336,"_path":337},"Physical sky rendering engine for appleseed","/research/bachelors-thesis",{"title":339,"_path":340,"children":341,"icon":305},"Projects","/projects",[342,345,348,351,354],{"title":343,"_path":344},"gheim: An open Swiss-language PII dataset and NER model","/projects/gheim",{"title":346,"_path":347},"md-reheader: Restoring heading hierarchy in PDF-extracted markdown","/projects/md-reheader",{"title":349,"_path":350},"ultrainit.sh: One command to configure Claude Code for any codebase","/projects/ultrainit",{"title":352,"_path":353},"Slidev MCP: AI-powered presentation generation with shareable links","/projects/slidev-mcp",{"title":355,"_path":356},"Vue Docs MCP: Live Vue ecosystem documentation for AI assistants","/projects/vue-mcp",{"title":358,"_path":359,"children":360,"icon":305},"Podcast","/podcast",[361,364,367,370,373,376,379,382,385,388,391,394,397,400,403,406,409,412,415,418,421,424,427,430,433,436,439],{"title":362,"_path":363},"Measuring political bias in language models: systematic analysis using Swiss Smart Vote data","/podcast/political-bias-in-language-models",{"title":365,"_path":366},"DeepSeek R1: pure reinforcement learning for reasoning and why distillation changes everything","/podcast/deepseek-r1-reasoning",{"title":368,"_path":369},"DeepSeek V3: how mixture-of-experts and multi-token prediction enable $5.5M training runs","/podcast/deepseek-v3-architecture",{"title":371,"_path":372},"SRF Arena part 3: international regulation, student perspectives, and why the debate structure failed","/podcast/srf-arena-final-analysis",{"title":374,"_path":375},"SRF Arena part 2: the EU AI Act, nationalization demands, and Switzerland's supercomputer strategy","/podcast/srf-arena-regulation-debate",{"title":377,"_path":378},"Deconstructing the SRF Arena AI debate: deepfakes, Swiss GPT, and the job displacement argument","/podcast/srf-arena-ai-debate-analysis",{"title":380,"_path":381},"O3-mini: how a smaller model outperforms its predecessor at a fraction of the cost","/podcast/openai-o3-mini",{"title":383,"_path":384},"OpenAI o3: trading compute time for reasoning capability","/podcast/openai-o3",{"title":386,"_path":387},"ChatGPT o1: reasoning breakthroughs and emergent deception","/podcast/chatgpt-o1-manipulation",{"title":389,"_path":390},"When AI kills: autonomous weapons, drone swarms, and predictive policing","/podcast/when-ai-kills",{"title":392,"_path":393},"Google's AI pivot: 25% AI-generated code and 90% cost reduction","/podcast/google-ai-revolution",{"title":395,"_path":396},"Why AI projects fail: a practitioner's guide to implementation","/podcast/ai-project-implementation",{"title":398,"_path":399},"Deep learning explained: from embedding spaces to few-shot learning","/podcast/deep-learning-explained",{"title":401,"_path":402},"Vision AI: why language models need to see, and how Llama 3.2 gets there","/podcast/vision-ai",{"title":404,"_path":405},"BitNets and the road to AGI: on-device inference and Sam Altman's 1000-day prediction","/podcast/bitnets-and-agi",{"title":407,"_path":408},"OpenAI o1 benchmarks and AGI implications: IQ 120, coding breakthroughs, and what they mean","/podcast/openai-o1-technical-analysis",{"title":410,"_path":411},"OpenAI o1 and the mechanics of self-reflection: how 70,000 hidden tokens change inference","/podcast/openai-o1-self-reflection",{"title":413,"_path":414},"AI utopia 2035: when automation funds a renaissance in human agency (part 2 of 2)","/podcast/ai-utopia-2035",{"title":416,"_path":417},"AI dystopia 2035: when AI becomes the lifeblood of the economy (part 1 of 2)","/podcast/ai-dystopia-2035",{"title":419,"_path":420},"AI hype vs. reality: a technical assessment of where things actually stand","/podcast/ai-hype-vs-reality",{"title":422,"_path":423},"Open-source AI: the infrastructure behind the hype","/podcast/open-source-ai",{"title":425,"_path":426},"Is AI intelligent? Why the question matters less than you think","/podcast/is-ai-intelligent",{"title":428,"_path":429},"AI in education: why bans backfire and what actually needs to change","/podcast/ai-in-education",{"title":431,"_path":432},"Bias in AI systems: how 15 people shape the values of a billion-user product","/podcast/bias-in-ai-systems",{"title":434,"_path":435},"AI and the labor market: autonomous agents and the transformation of knowledge work","/podcast/ai-and-the-labor-market",{"title":437,"_path":438},"AI terminology explained: a technical guide beyond the hype","/podcast/ai-terminology-explained",{"title":440,"_path":441},"AI and democratic manipulation: from Cambridge Analytica to language models","/podcast/ai-and-democracy",{"title":443,"_path":444,"children":445,"icon":305},"Appearances","/appearances",[446,447,450,453,456,459,462,465,468,471,474,477,480,483,486],{"title":8,"_path":4},{"title":448,"_path":449},"AI trends 2025 and predictions for 2026: model convergence, integration, and sovereignty","/appearances/webinar-2025-rewind-2026-outlook",{"title":451,"_path":452},"Swiss AI Impact Forum 2025: live demos of the Swiss AI Hub","/appearances/swiss-ai-impact-forum-2025",{"title":454,"_path":455},"AI trends 2024 and predictions for 2025: a technical analysis","/appearances/webinar-2024-rewind-2025-outlook",{"title":457,"_path":458},"AI as a development partner: tools, techniques, and team integration","/appearances/webinar-ai-development-partner",{"title":460,"_path":461},"Swiss AI Impact Forum: Panel on the future of AI in Switzerland","/appearances/swiss-ai-impact-forum-2024",{"title":463,"_path":464},"AI in knowledge management: keynote at the SWICO event in Zurich","/appearances/swico",{"title":466,"_path":467},"Swiss AI Conference: hands-on workshop on AI agents in the enterprise","/appearances/swiss-ai-conference",{"title":469,"_path":470},"AI trends 2023: milestones and developments in artificial intelligence","/appearances/webinar-2023-rewind",{"title":472,"_path":473},"KI Revolution: AI first how a digital native thinks about generative AI","/appearances/bbv-ki-revolution",{"title":475,"_path":476},"AI agents: the future of enterprise automation","/appearances/netzwoche",{"title":478,"_path":479},"ChatGPT demystified: technical deep dive into large language models","/appearances/webinar-chatgpt-demystified",{"title":481,"_path":482},"Swarm intelligence and AI: the future of enterprise automation","/appearances/webinar-swarm-intelligence",{"title":484,"_path":485},"Polygon Software our journey to an innovative UZH tech startup","/appearances/readme-polygon",{"title":487,"_path":488},"UZH startup label for Polygon Software","/appearances/uzh-startup-label",1781083469626]