<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Vladimir Joseph</title>
    <description>The latest articles on DEV Community by Vladimir Joseph (@vladimir_joseph_247918be4).</description>
    <link>https://dev.to/vladimir_joseph_247918be4</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4082235%2Fd0a16e5b-06b5-4cff-83d7-860a2a5ffe9d.jpg</url>
      <title>DEV Community: Vladimir Joseph</title>
      <link>https://dev.to/vladimir_joseph_247918be4</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/vladimir_joseph_247918be4"/>
    <language>en</language>
    <item>
      <title>CyberDreams AI - Vibe-Coding a Strange Cyberpunk World with Sanity + Gemini</title>
      <dc:creator>Vladimir Joseph</dc:creator>
      <pubDate>Sat, 19 Sep 2026 15:05:58 +0000</pubDate>
      <link>https://dev.to/vladimir_joseph_247918be4/cyberdreams-ai-vibe-coding-a-strange-cyberpunk-world-with-sanity-gemini-5b00</link>
      <guid>https://dev.to/vladimir_joseph_247918be4/cyberdreams-ai-vibe-coding-a-strange-cyberpunk-world-with-sanity-gemini-5b00</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjx7j2d4opqsa9v6wks9e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fjx7j2d4opqsa9v6wks9e.jpg" alt=" " width="800" height="336"&gt;&lt;/a&gt;&lt;br&gt;
&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft5a0bnh11w4cdmnng7os.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Ft5a0bnh11w4cdmnng7os.jpg" alt=" " width="800" height="336"&gt;&lt;/a&gt;﻿# CyberDreams AI - Vibe-Coding a Strange Cyberpunk World with Sanity + Gemini&lt;/p&gt;

&lt;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;CyberDreams AI&lt;/strong&gt;, a strange cyberpunk story generator powered by &lt;strong&gt;Sanity, Next.js, and Google Gemini&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;The idea is simple: instead of using Sanity only to store traditional website content, I use structured content as the building blocks of an unpredictable AI-generated universe.&lt;/p&gt;

&lt;p&gt;CyberDreams AI combines five types of Sanity content:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Characters&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Locations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technologies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Threats&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Events&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;When the user clicks &lt;strong&gt;Generate CyberDream&lt;/strong&gt;, the application randomly selects one element from each category and sends them to Google Gemini. Gemini transforms these structured elements into a short, mysterious cyberpunk story.&lt;/p&gt;

&lt;p&gt;The result is a different CyberDream every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cyberdreams-ai.vercel.app/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try clicking &lt;strong&gt;Generate CyberDream&lt;/strong&gt; several times and watch the story change.&lt;/p&gt;

&lt;h2&gt;
  
  
  Code
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/vladimirjoseph36-png/cyberdreams-ai" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The project is built with:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Next.js&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;React&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;TypeScript&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tailwind CSS&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sanity&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Google Gemini&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Vercel&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  My Build Process
&lt;/h2&gt;

&lt;p&gt;I wanted to experiment with a simple question:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What happens when structured CMS content becomes fuel for generative AI?&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I started by creating a Sanity project and designing a small content model around a cyberpunk universe.&lt;/p&gt;

&lt;p&gt;The content model contains five document types:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Characters&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Locations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technologies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Threats&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Events&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I then created example content such as &lt;strong&gt;Maya Chen&lt;/strong&gt;, &lt;strong&gt;Neo-Miami&lt;/strong&gt;, &lt;strong&gt;Quantum Firewall&lt;/strong&gt;, &lt;strong&gt;Rogue AI&lt;/strong&gt;, and &lt;strong&gt;The Quantum Awakening&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Next, I connected the Sanity project to a Next.js application. The application retrieves the structured content and randomly selects one item from each category.&lt;/p&gt;

&lt;p&gt;I then integrated Google Gemini to transform those five structured elements into a short cyberpunk story.&lt;/p&gt;

&lt;p&gt;Finally, I created a neon cyberpunk interface, deployed the application to Vercel, connected the production Gemini API key through environment variables, and published the project on GitHub.&lt;/p&gt;

&lt;p&gt;The interesting part of the build was seeing how a relatively small structured content model could produce many different creative combinations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Sanity Project Details
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Sanity Project ID:&lt;/strong&gt; &lt;code&gt;ffi2ahke&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Dataset:&lt;/strong&gt; &lt;code&gt;production&lt;/code&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Content Types
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;character&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;location&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;technology&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;threat&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;code&gt;event&lt;/code&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Sanity is not just being used as a database in this project. Its structured content directly influences the AI-generated output.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why I Built It
&lt;/h2&gt;

&lt;p&gt;I wanted to make something that felt different from a traditional CMS demo.&lt;/p&gt;

&lt;p&gt;Instead of simply displaying structured content, CyberDreams AI turns that content into ingredients for an AI-generated world.&lt;/p&gt;

&lt;p&gt;A hacker, a futuristic technology, a dangerous AI, a mysterious location, and a strange event can be combined into a completely new story.&lt;/p&gt;

&lt;p&gt;That unpredictability is the strange part.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Experience
&lt;/h2&gt;

&lt;p&gt;The interface is designed as a futuristic cyberpunk control panel.&lt;/p&gt;

&lt;p&gt;It displays:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;System status&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;CyberDream generator&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI transmission&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Generated story&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sanity content model&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Available characters&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Locations&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technologies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Threats&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Events&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal was to make the Sanity content visible and understandable while still giving the application an experimental feeling.&lt;/p&gt;

&lt;h2&gt;
  
  
  Agent Session
&lt;/h2&gt;

&lt;p&gt;This project was built interactively during development rather than from a separately published agent-session transcript, so I am not including a transcript that does not exist.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;CyberDreams AI is a small experiment in combining &lt;strong&gt;structured content and generative AI&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Sanity provides the structured world.&lt;/p&gt;

&lt;p&gt;Next.js provides the application.&lt;/p&gt;

&lt;p&gt;Gemini provides the imagination.&lt;/p&gt;

&lt;p&gt;Together, they create a cyberpunk universe that can generate a new dream every time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Links
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://cyberdreams-ai.vercel.app/" rel="noopener noreferrer"&gt;Live Demo&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/vladimirjoseph36-png/cyberdreams-ai" rel="noopener noreferrer"&gt;GitHub Repository&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sanity Project ID:&lt;/strong&gt; &lt;code&gt;ffi2ahke&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;---&lt;/p&gt;

&lt;h1&gt;
  
  
  devchallenge #sanitychallenge #sanity #ai
&lt;/h1&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzi90jai8oi97hi9lc390.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fzi90jai8oi97hi9lc390.jpg" alt=" " width="800" height="336"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>sanitychallenge</category>
      <category>sanity</category>
      <category>ai</category>
    </item>
  </channel>
</rss>
