<?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>Forem: Ariff</title>
    <description>The latest articles on Forem by Ariff (@aariff).</description>
    <link>https://forem.com/aariff</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3497015%2Ffef41014-6375-4622-b8c1-53b7b9ea3a84.jpeg</url>
      <title>Forem: Ariff</title>
      <link>https://forem.com/aariff</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/aariff"/>
    <language>en</language>
    <item>
      <title>Fixing Vercel + Supabase env issues in GitHub Actions</title>
      <dc:creator>Ariff</dc:creator>
      <pubDate>Fri, 19 Sep 2025 11:47:33 +0000</pubDate>
      <link>https://forem.com/aariff/fixing-vercel-supabase-env-issues-in-github-actions-1bak</link>
      <guid>https://forem.com/aariff/fixing-vercel-supabase-env-issues-in-github-actions-1bak</guid>
      <description>&lt;h2&gt;
  
  
  TL;DR
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Preview deploys were failing due to missing env and token scopes&lt;/li&gt;
&lt;li&gt;I consolidated env management using GitHub Environments + encrypted secrets
&lt;/li&gt;
&lt;li&gt;Added a preflight step to validate required vars before deploy
## Context
I've been wiring a Next.js dashboard with Supabase and Vercel. My CI/CD started flaking — preview builds failed while local dev worked fine. The culprit: environment variables and token scopes not flowing correctly in Actions.
## Solution
### 1) Centralize env and secrets&lt;/li&gt;
&lt;li&gt;Use GitHub Environments (Preview/Production) for context-aware values&lt;/li&gt;
&lt;li&gt;Store only what's needed: &lt;code&gt;VERCEL_TOKEN&lt;/code&gt;, &lt;code&gt;VERCEL_ORG_ID&lt;/code&gt;, &lt;code&gt;VERCEL_PROJECT_ID&lt;/code&gt;, &lt;code&gt;SUPABASE_URL&lt;/code&gt;, &lt;code&gt;SUPABASE_ANON_KEY&lt;/code&gt;, &lt;code&gt;NEXT_PUBLIC_*&lt;/code&gt;
### 2) Preflight validation step
Fail fast if any required env is missing.
### 3) Deploy with scoped token
Ensure &lt;code&gt;VERCEL_TOKEN&lt;/code&gt; has the minimal project scope.
### 4) Example workflow
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight yaml"&gt;&lt;code&gt;&lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Deploy Preview&lt;/span&gt;
&lt;span class="na"&gt;on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;pull_request&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;branches&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;[&lt;/span&gt; &lt;span class="nv"&gt;main&lt;/span&gt; &lt;span class="pi"&gt;]&lt;/span&gt;
&lt;span class="na"&gt;jobs&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
  &lt;span class="na"&gt;preview&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
    &lt;span class="na"&gt;runs-on&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;ubuntu-latest&lt;/span&gt;
    &lt;span class="na"&gt;environment&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;preview&lt;/span&gt;
    &lt;span class="na"&gt;permissions&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="na"&gt;contents&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;read&lt;/span&gt;
    &lt;span class="na"&gt;steps&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Checkout&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/checkout@v4&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Setup Node&lt;/span&gt;
        &lt;span class="na"&gt;uses&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;actions/setup-node@v4&lt;/span&gt;
        &lt;span class="na"&gt;with&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;node-version&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="m"&gt;20&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Preflight env check&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;required=(VERCEL_TOKEN VERCEL_ORG_ID VERCEL_PROJECT_ID SUPABASE_URL SUPABASE_ANON_KEY)&lt;/span&gt;
          &lt;span class="s"&gt;for k in "${required[@]}"; do&lt;/span&gt;
            &lt;span class="s"&gt;if [ -z "${!k}" ]; then&lt;/span&gt;
              &lt;span class="s"&gt;echo "::error::Missing $k"; exit 1&lt;/span&gt;
            &lt;span class="s"&gt;fi&lt;/span&gt;
          &lt;span class="s"&gt;done&lt;/span&gt;
        &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;VERCEL_TOKEN&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.VERCEL_TOKEN }}&lt;/span&gt;
          &lt;span class="na"&gt;VERCEL_ORG_ID&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.VERCEL_ORG_ID }}&lt;/span&gt;
          &lt;span class="na"&gt;VERCEL_PROJECT_ID&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.VERCEL_PROJECT_ID }}&lt;/span&gt;
          &lt;span class="na"&gt;SUPABASE_URL&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.SUPABASE_URL }}&lt;/span&gt;
          &lt;span class="na"&gt;SUPABASE_ANON_KEY&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.SUPABASE_ANON_KEY }}&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Install&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npm ci&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Build&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;npm run build&lt;/span&gt;
        &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;NEXT_PUBLIC_SUPABASE_URL&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.SUPABASE_URL }}&lt;/span&gt;
          &lt;span class="na"&gt;NEXT_PUBLIC_SUPABASE_ANON_KEY&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.SUPABASE_ANON_KEY }}&lt;/span&gt;
      &lt;span class="pi"&gt;-&lt;/span&gt; &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;Vercel deploy (Preview)&lt;/span&gt;
        &lt;span class="na"&gt;run&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="pi"&gt;|&lt;/span&gt;
          &lt;span class="s"&gt;npx vercel pull --yes --environment=preview --token=$VERCEL_TOKEN&lt;/span&gt;
          &lt;span class="s"&gt;npx vercel build --token=$VERCEL_TOKEN&lt;/span&gt;
          &lt;span class="s"&gt;npx vercel deploy --prebuilt --token=$VERCEL_TOKEN&lt;/span&gt;
        &lt;span class="na"&gt;env&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt;
          &lt;span class="na"&gt;VERCEL_TOKEN&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;${{ secrets.VERCEL_TOKEN }}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Gotchas
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;Avoid mixing &lt;code&gt;NEXT_PUBLIC_*&lt;/code&gt; and server-only keys&lt;/li&gt;
&lt;li&gt;Don't store Supabase &lt;code&gt;service_role&lt;/code&gt; in GitHub — keep it out of CI unless absolutely necessary&lt;/li&gt;
&lt;li&gt;Vercel envs must be created in the correct environment (Preview/Prod) or pull will fetch empty values
## Ask
How are you validating env drift between Vercel and GitHub? Any lightweight secret scanning step you recommend pre-merge?&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>github</category>
      <category>devops</category>
      <category>vercel</category>
      <category>supabase</category>
    </item>
    <item>
      <title>Mastering AI Logo Creation: My Proven Prompt Framework and Community Tips Exchange</title>
      <dc:creator>Ariff</dc:creator>
      <pubDate>Fri, 12 Sep 2025 11:02:46 +0000</pubDate>
      <link>https://forem.com/aariff/mastering-ai-logo-creation-my-proven-prompt-framework-and-community-tips-exchange-2ban</link>
      <guid>https://forem.com/aariff/mastering-ai-logo-creation-my-proven-prompt-framework-and-community-tips-exchange-2ban</guid>
      <description>&lt;p&gt;AI logo generation has become incredibly sophisticated, but getting clean, professional results often comes down to how you structure your prompts.&lt;/p&gt;

&lt;p&gt;I've been experimenting with different approaches and I'm curious to hear what's working for others. Here's what I've found effective so far:&lt;/p&gt;

&lt;h2&gt;
  
  
  My Current Approach:
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;1. Style Definition First&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Minimalist logo design, clean lines, modern typography"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;2. Brand Context&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"for [industry/company type], conveying [key values/emotions]"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;3. Technical Specs&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"vector style, flat design, suitable for both dark and light backgrounds"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;4. Color Guidance&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"limited color palette, [specific colors if needed], high contrast"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Example Full Prompt:
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;"Minimalist logo design for a tech startup, conveying innovation and reliability, clean geometric shapes, limited color palette with blue and white, vector style, flat design, no text, suitable for both dark and light backgrounds"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Questions for the Community:
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;What's your go-to prompt structure?&lt;/li&gt;
&lt;li&gt;Any specific keywords that consistently produce better results?&lt;/li&gt;
&lt;li&gt;How do you handle text/typography in AI logos?&lt;/li&gt;
&lt;li&gt;What are your biggest challenges with AI logo generation?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Let's share our experiences and level up our prompt game together! 🎨&lt;/p&gt;

</description>
      <category>ai</category>
      <category>discuss</category>
      <category>design</category>
    </item>
    <item>
      <title>My Education Track Submission - AI Learning Project</title>
      <dc:creator>Ariff</dc:creator>
      <pubDate>Fri, 12 Sep 2025 10:47:29 +0000</pubDate>
      <link>https://forem.com/aariff/my-education-track-submission-ai-learning-project-4hhj</link>
      <guid>https://forem.com/aariff/my-education-track-submission-ai-learning-project-4hhj</guid>
      <description>&lt;h1&gt;
  
  
  What I Built
&lt;/h1&gt;

&lt;p&gt;I built an AI Logo Generator in Google AI Studio using Gemini image generation. The app takes a business name plus style keywords (e.g., minimalist, modern, vintage) and produces a high‑quality 1024px logo in seconds.&lt;br&gt;
Core functionality:&lt;br&gt;
• Single prompt form (business name + style)&lt;br&gt;
• Generates one consistent logo per request with guided composition and palette&lt;br&gt;
• Supports style controls like flat/vector-like, centered icon, palette constraints&lt;br&gt;
Target audience:&lt;br&gt;
• Founders, students, and indie builders who need fast brand visuals&lt;br&gt;
• Hackathon and class projects that require quick logo concepts&lt;br&gt;
• Non-designers who want repeatable, on‑brand results&lt;br&gt;
Unique features:&lt;br&gt;
• Opinionated prompt patterns for predictable layout and contrast&lt;br&gt;
• New Zealand–inspired examples (Kiwi Cloud Shield, Te Aro Coffee Co., TuiTech)&lt;br&gt;
• Shareable AI Studio app link for instant trials without setup&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;• Built in Google AI Studio using Gemini image generation&lt;br&gt;&lt;br&gt;
• Input: business name + style keywords (e.g., minimalist, modern, vintage)&lt;br&gt;&lt;br&gt;
• Generates one 1024px logo per request with guided composition/palette&lt;br&gt;&lt;br&gt;
• Style keywords like "flat", "vector-like", "centered icon" improve consistency&lt;br&gt;&lt;br&gt;
• Shareable app link for instant trials, no local setup required&lt;/p&gt;

&lt;h2&gt;
  
  
  Demo
&lt;/h2&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.amazonaws.com%2Fuploads%2Farticles%2Frkreac576mq4n8jh39tq.png" 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.amazonaws.com%2Fuploads%2Farticles%2Frkreac576mq4n8jh39tq.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Prompt: [Modern logo for 'WellySec Labs' using neon green on black, cyber-shield icon, flat, vector-like, centered.]&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Caption: [A clean, high-contrast cyber-shield identity with neon accents on black for a modern security brand]&lt;/em&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.amazonaws.com%2Fuploads%2Farticles%2Fxtxf859unt0hxehhulqb.png" 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.amazonaws.com%2Fuploads%2Farticles%2Fxtxf859unt0hxehhulqb.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Prompt: [Vintage badge logo for 'Te Aro Coffee Co.' hand-drawn style, circular badge, warm browns and cream, textured]&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Caption: [A textured, hand-drawn circular badge evoking classic roastery vibes in warm, coffee-toned hues]&lt;/em&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.amazonaws.com%2Fuploads%2Farticles%2Fog637kglmkt9xgwseffz.png" 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.amazonaws.com%2Fuploads%2Farticles%2Fog637kglmkt9xgwseffz.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Prompt: [Playful mascot logo for 'TuiTech' in cartoon style, tui bird with circuit accents, bright blue/teal, white background.]&lt;/em&gt;&lt;br&gt;
&lt;em&gt;Caption: [A cheerful tui-mascot with subtle circuit motifs delivering a friendly, tech-forward brand feel.]&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Experience
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Learning Journey
&lt;/h3&gt;

&lt;p&gt;[I explored Google AI Studio end to end, from starting a prompt-based app to sharing a deployable link. The biggest unlock was learning how prompt structure drives composition in image generation: adding style keywords like "flat," "vector-like," "centered icon," and a 2–3 color palette produced more consistent, logo-ready results.&lt;br&gt;
I iterated on several brand concepts (security, coffee, and a playful tech mascot) to test how the model responds to tone, palette, and symmetry constraints. I found that shorter, highly specific prompts outperformed long descriptive ones for logos.&lt;br&gt;
Challenges included occasional color drift and over-detailed renders. I mitigated these by explicitly constraining palette (e.g., "green/black palette"), layout ("centered icon"), and finish ("high contrast, minimalist").&lt;br&gt;
Overall, AI Studio's guided flow made it fast to go from idea to usable outputs, and the shareable app link helped validate results quickly.]&lt;/p&gt;

&lt;h3&gt;
  
  
  Technical Implementation
&lt;/h3&gt;

&lt;p&gt;[Platform: Google AI Studio with Gemini image generation.&lt;br&gt;
App flow: Single input form that accepts business name + style keywords, forwards the composed prompt to the image generation endpoint, and returns a single 1024px image per request.&lt;br&gt;
Prompt engineering: Opinionated template enforcing composition and palette, e.g., "[style] logo for '[Business Name]', [palette], [flat/vector-like], centered icon, high contrast."&lt;br&gt;
Consistency controls:&lt;br&gt;
Composition: "centered icon," "flat," "vector-like"&lt;br&gt;
Palette: 2–3 colors (e.g., neon green/black, warm browns/cream, bright blue/teal)&lt;br&gt;
Output size: 1024px for clarity in posts and thumbnails&lt;br&gt;
Deployment/share: Used AI Studio's app share link so reviewers can try it without local setup. Kept API keys out of code and relied on the built-in share/preview.&lt;br&gt;
Tooling: AI Studio app scaffolding, prompt template logic, and basic UI components for input and render.]&lt;/p&gt;

&lt;h3&gt;
  
  
  Key Takeaways
&lt;/h3&gt;

&lt;p&gt;[Prompt specificity beats verbosity: precise layout and palette constraints yield cleaner, brand-appropriate logos.&lt;br&gt;
Style keywords are levers: "flat," "vector-like," and "high contrast" noticeably improve logo suitability.&lt;br&gt;
Small palettes = better legibility: limiting to 2–3 colors helps avoid muddy results and improves consistency across generations.&lt;br&gt;
Fast iteration matters: generating multiple variants and locking in what works (layout + palette) saves time and reduces randomness.]&lt;/p&gt;

&lt;h2&gt;
  
  
  Live Application
&lt;/h2&gt;

&lt;h2&gt;
  
  
  🚀 &lt;strong&gt;Try the app:&lt;/strong&gt; &lt;a href="https://aistudio.google.com/apps/drive/1RNUtsGsivLedc0xhPOdJ7RoDFeEMMbj8?showAssistant=true&amp;amp;resourceKey=&amp;amp;showCode=true" rel="noopener noreferrer"&gt;https://aistudio.google.com/apps/drive/1RNUtsGsivLedc0xhPOdJ7RoDFeEMMbj8?showAssistant=true&amp;amp;resourceKey=&amp;amp;showCode=true&lt;/a&gt;
&lt;/h2&gt;

</description>
      <category>deved</category>
      <category>learngoogleaistudio</category>
      <category>ai</category>
      <category>gemini</category>
    </item>
  </channel>
</rss>
