<?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: Filipe Vieira</title>
    <description>The latest articles on DEV Community by Filipe Vieira (@fvds).</description>
    <link>https://dev.to/fvds</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%2F1445648%2Fff96dc0a-b53a-417b-9358-221259384022.jpg</url>
      <title>DEV Community: Filipe Vieira</title>
      <link>https://dev.to/fvds</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/fvds"/>
    <language>en</language>
    <item>
      <title>Building an Interactive 'Festa Junina' with Vanilla JS 🌽🔥</title>
      <dc:creator>Filipe Vieira</dc:creator>
      <pubDate>Sun, 14 Jun 2026 03:52:53 +0000</pubDate>
      <link>https://dev.to/fvds/building-an-interactive-festa-junina-with-vanilla-js-4d4p</link>
      <guid>https://dev.to/fvds/building-an-interactive-festa-junina-with-vanilla-js-4d4p</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/june-game-jam-2026-06-03"&gt;June Solstice Game Jam&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;(🇧🇷 Para a versão em Português, role até o final do post / Scroll down for Portuguese!)&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;While the Northern Hemisphere celebrates the summer solstice, here in Brazil, this astronomical event marks the arrival of winter. We celebrate it with a massive, traditional, and culturally rich event called &lt;strong&gt;Festa Junina&lt;/strong&gt; (June Festival)!&lt;/p&gt;

&lt;p&gt;To honor this theme, I built &lt;strong&gt;Arraial do Solstício&lt;/strong&gt; (Solstice Festival), a digital interactive courtyard entirely from scratch using &lt;strong&gt;Vanilla JavaScript, HTML5 Canvas, and CSS&lt;/strong&gt;. No heavy game engines, just pure code!&lt;/p&gt;

&lt;p&gt;The project features a living Hub and 3 distinct minigames (endless runner, physics balancing, and a frantic clicker), fully equipped with a real-time global language switcher (i18n) and a local &lt;code&gt;localStorage&lt;/code&gt; Medal Board!&lt;/p&gt;

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

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/lgspQX8jW2A"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

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


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/filipevieira" rel="noopener noreferrer"&gt;
        filipevieira
      &lt;/a&gt; / &lt;a href="https://github.com/filipevieira/arraial" rel="noopener noreferrer"&gt;
        arraial
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Arraial do Solstício 🌽🔥&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Bem-vindo ao &lt;strong&gt;Arraial do Solstício&lt;/strong&gt;, uma Festa Junina interativa construída inteiramente com tecnologias web nativas! Este projeto foi criado para a &lt;em&gt;June Solstice Game Jam&lt;/em&gt; do Dev.to, unindo a temática global do solstício com a nossa riquíssima cultura brasileira.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎮 Jogue Agora&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://filipevieira.github.io/arraial/" rel="nofollow noopener noreferrer"&gt;&lt;strong&gt;Clique aqui para jogar online!&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Funcionalidades&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hub Interativo:&lt;/strong&gt; Um pátio vivo com fogueira animada, bandeirinhas, e caipiras passeando aleatoriamente pela vila. Tudo embalado com música temática junina!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minigame: Pula Fogueira 🔥&lt;/strong&gt;: Desvie das fogueiras, pegue pamonhas e coma maçãs do amor neste endless runner super divertido.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minigame: Ralando a Pamonha 🌽&lt;/strong&gt;: Teste sua velocidade no mouse para ralar o milho antes que a barraquinha não aguente o tranco!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minigame: Equilibrando o Quentão 🍷&lt;/strong&gt;: Mantenha o equilíbrio do copo de quentão com movimentos precisos do mouse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sistema de Ranking 🏆&lt;/strong&gt;: Pontuações locais (via &lt;code&gt;localStorage&lt;/code&gt;) para você competir com…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/filipevieira/arraial" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


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

&lt;h3&gt;
  
  
  🗺️ The Hub: A Living Courtyard
&lt;/h3&gt;

&lt;p&gt;When you enter the app, you are greeted by a central bonfire, clickable stalls, and &lt;strong&gt;characters walking around randomly&lt;/strong&gt;. To bring the scene to life without overloading the DOM, I used inline SVG to draw the characters and manipulated their positions with pure JavaScript.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔥 Minigame 1: Fire Jumper
&lt;/h3&gt;

&lt;p&gt;Chrome's classic dinosaur game got a festive version! Here, you control a character who needs to jump over bonfires, collect &lt;strong&gt;pamonhas&lt;/strong&gt; (corn treats for points), and &lt;strong&gt;candy apples&lt;/strong&gt; (for invincibility). This was rendered frame-by-frame using the &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt; API with a parallax effect for the background.&lt;/p&gt;

&lt;h3&gt;
  
  
  🍷 Minigame 2: Drink Balancer (Quentão)
&lt;/h3&gt;

&lt;p&gt;The challenge here is to keep a cup of &lt;em&gt;Quentão&lt;/em&gt; (a traditional hot mulled wine) upright using just your mouse! Instead of a complex physics engine, I used basic math to calculate the cup's rotation and inertia based on the mouse position. If you tilt it too much, the cup "spills" with a fluid animation using &lt;code&gt;ctx.rotate()&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌽 Minigame 3: Corn Grater (Pamonha)
&lt;/h3&gt;

&lt;p&gt;A "click/swipe as fast as you can" game, where the player has to "grate" corn by dragging the mouse frantically. Each grated corn adds to your score, and the difficulty increases until the grater structure (literally) explodes.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌍 Internationalization (i18n) &amp;amp; 🏆 Local Ranking
&lt;/h3&gt;

&lt;p&gt;Since the jam is global, I implemented a custom i18n module! The game automatically detects your browser language and serves the UI in English or Portuguese, switching instantly without page reloads. &lt;br&gt;
To spice things up, I integrated a global "Medal Board" using the browser's &lt;code&gt;localStorage&lt;/code&gt; API, keeping the Top 3 high scores for each minigame. Creating games in Canvas and Vanilla JS gives you incredible control over pixels and performance, plus it's an excellent logic exercise!&lt;/p&gt;


&lt;h1&gt;
  
  
  🇧🇷 Versão em Português
&lt;/h1&gt;

&lt;p&gt;&lt;em&gt;Esta é uma submissão para a &lt;a href="https://dev.to/challenges/june-game-jam-2026-06-03"&gt;June Solstice Game Jam&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;
&lt;h2&gt;
  
  
  O que eu construí
&lt;/h2&gt;

&lt;p&gt;Enquanto o Hemisfério Norte celebra o solstício de verão, aqui no Brasil esse evento marca a chegada do inverno e a nossa tradicionalíssima &lt;strong&gt;Festa Junina&lt;/strong&gt;!&lt;/p&gt;

&lt;p&gt;Para honrar o tema, construí o &lt;strong&gt;Arraial do Solstício&lt;/strong&gt;, um pátio digital interativo feito do zero com &lt;strong&gt;Vanilla JavaScript, HTML5 Canvas e CSS&lt;/strong&gt;. Sem engines pesadas, apenas código puro!&lt;br&gt;
O projeto conta com um Hub vivo e 3 minigames distintos, totalmente equipado com troca de idioma em tempo real (i18n) e um Quadro de Medalhas usando &lt;code&gt;localStorage&lt;/code&gt;.&lt;/p&gt;
&lt;h2&gt;
  
  
  Vídeo de Demonstração
&lt;/h2&gt;

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/lgspQX8jW2A"&gt;
  &lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Código Fonte
&lt;/h2&gt;


&lt;div class="ltag-github-readme-tag"&gt;
  &lt;div class="readme-overview"&gt;
    &lt;h2&gt;
      &lt;img src="https://assets.dev.to/assets/github-logo-5a155e1f9a670af7944dd5e12375bc76ed542ea80224905ecaf878b9157cdefc.svg" alt="GitHub logo"&gt;
      &lt;a href="https://github.com/filipevieira" rel="noopener noreferrer"&gt;
        filipevieira
      &lt;/a&gt; / &lt;a href="https://github.com/filipevieira/arraial" rel="noopener noreferrer"&gt;
        arraial
      &lt;/a&gt;
    &lt;/h2&gt;
    &lt;h3&gt;
      
    &lt;/h3&gt;
  &lt;/div&gt;
  &lt;div class="ltag-github-body"&gt;
    
&lt;div id="readme" class="md"&gt;&lt;div class="markdown-heading"&gt;
&lt;h1 class="heading-element"&gt;Arraial do Solstício 🌽🔥&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;Bem-vindo ao &lt;strong&gt;Arraial do Solstício&lt;/strong&gt;, uma Festa Junina interativa construída inteiramente com tecnologias web nativas! Este projeto foi criado para a &lt;em&gt;June Solstice Game Jam&lt;/em&gt; do Dev.to, unindo a temática global do solstício com a nossa riquíssima cultura brasileira.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;🎮 Jogue Agora&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;&lt;a href="https://filipevieira.github.io/arraial/" rel="nofollow noopener noreferrer"&gt;&lt;strong&gt;Clique aqui para jogar online!&lt;/strong&gt;&lt;/a&gt;&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;✨ Funcionalidades&lt;/h2&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hub Interativo:&lt;/strong&gt; Um pátio vivo com fogueira animada, bandeirinhas, e caipiras passeando aleatoriamente pela vila. Tudo embalado com música temática junina!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minigame: Pula Fogueira 🔥&lt;/strong&gt;: Desvie das fogueiras, pegue pamonhas e coma maçãs do amor neste endless runner super divertido.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minigame: Ralando a Pamonha 🌽&lt;/strong&gt;: Teste sua velocidade no mouse para ralar o milho antes que a barraquinha não aguente o tranco!&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Minigame: Equilibrando o Quentão 🍷&lt;/strong&gt;: Mantenha o equilíbrio do copo de quentão com movimentos precisos do mouse.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Sistema de Ranking 🏆&lt;/strong&gt;: Pontuações locais (via &lt;code&gt;localStorage&lt;/code&gt;) para você competir com…&lt;/li&gt;
&lt;/ul&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/filipevieira/arraial" rel="noopener noreferrer"&gt;View on GitHub&lt;/a&gt;&lt;/div&gt;
&lt;/div&gt;


&lt;h2&gt;
  
  
  Como eu construí
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🗺️ O Hub: Um Pátio Vivo
&lt;/h3&gt;

&lt;p&gt;Quando você entra no app, é recebido por uma fogueira central, barraquinhas clicáveis e &lt;strong&gt;personagens passeando aleatoriamente&lt;/strong&gt;. Usei SVG inline para desenhar os caipiras e manipulei as posições via JS.&lt;/p&gt;

&lt;h3&gt;
  
  
  🔥 Minigame 1: Pula Fogueira
&lt;/h3&gt;

&lt;p&gt;O clássico jogo do dinossauro ganhou versão junina! Renderizado frame a frame via &lt;code&gt;&amp;lt;canvas&amp;gt;&lt;/code&gt;, com direito a efeito parallax. Você coleta pamonhas (pontos) e maçãs do amor (invencibilidade).&lt;/p&gt;

&lt;h3&gt;
  
  
  🍷 Minigame 2: Equilibrando o Quentão
&lt;/h3&gt;

&lt;p&gt;O desafio é manter um copo de quentão em pé usando o mouse! Em vez de usar uma engine de física complexa, usei matemática básica para calcular a rotação e inércia do copo.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌽 Minigame 3: Ralando a Pamonha
&lt;/h3&gt;

&lt;p&gt;Um jogo estilo "clique o mais rápido que puder", arrastando o mouse freneticamente até o ralador (literalmente) explodir.&lt;/p&gt;

&lt;h3&gt;
  
  
  🌍 Internacionalização (i18n) e 🏆 Ranking Local
&lt;/h3&gt;

&lt;p&gt;Criei um sistema i18n do zero para jogadores do mundo todo jogarem em Inglês ou Português. Também integrei um "Quadro de Medalhas" usando a API de &lt;code&gt;localStorage&lt;/code&gt; para salvar seus recordes!&lt;/p&gt;

&lt;p&gt;Criar jogos em Canvas e Vanilla JS te dá um controle absurdo sobre os pixels e a performance, além de ser um excelente exercício de lógica. Qual sua barraquinha favorita na Festa Junina? Conta aí nos comentários! 👇&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>junesolstice</category>
      <category>javascript</category>
      <category>gamechallenge</category>
    </item>
    <item>
      <title>The Real-World Test: How Gemini’s New Interface Won Over My Wife and Mother-in-Law (Who Are Totally Non-Tech)</title>
      <dc:creator>Filipe Vieira</dc:creator>
      <pubDate>Fri, 22 May 2026 21:03:38 +0000</pubDate>
      <link>https://dev.to/fvds/the-real-world-test-how-geminis-new-interface-won-over-my-wife-and-mother-in-law-who-are-totally-42b4</link>
      <guid>https://dev.to/fvds/the-real-world-test-how-geminis-new-interface-won-over-my-wife-and-mother-in-law-who-are-totally-42b4</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for the &lt;a href="https://dev.to/challenges/google-io-writing-2026-05-19"&gt;Google I/O Writing Challenge&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Google I/O 2026 brought incredible technical announcements, robust models, and massive context windows. But as someone who lives and breathes technology, I’ve come to realize that the greatest Artificial Intelligence revolution often isn't in the number of parameters of a cloud-hosted model, but rather in &lt;strong&gt;how everyday people interact with it on the ground&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;To test the true impact of this year's updates, I decided to observe the ecosystem right inside my own home. My wife and my mother-in-law don’t work in tech and have always viewed these generative AI tools as something distant, complex, or purely "a programmer thing."&lt;/p&gt;

&lt;p&gt;Everything changed with the arrival of the new Gemini mobile interface, driven by the new design language and faster models presented at the event.&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚡ Fluidity and Speed: My Wife's Experience
&lt;/h2&gt;

&lt;p&gt;Previously, when someone tried to interact with an AI assistant on a phone, the response usually came in massive blocks of plain text, or with that "typing effect" that gave the distinct feeling of waiting for a machine to process data. &lt;/p&gt;

&lt;p&gt;When my wife opened the new Gemini app and started talking to the AI, her reaction was immediate. The response came &lt;strong&gt;promptly and incredibly faster&lt;/strong&gt; than any previous version. &lt;/p&gt;

&lt;p&gt;Google's big win here was refining the interface: the text now reconstructs itself in real time, prioritizing visual elements and scannable highlights. She even commented on how &lt;strong&gt;much more fluid and natural&lt;/strong&gt; the interaction felt. The barrier to entry that used to feel like a "rigid oracle" vanished, making way for a real, dynamic, and extremely agile conversation.&lt;/p&gt;




&lt;h2&gt;
  
  
  📸 Going Beyond Text: The Camera Test with My Mother-in-Law
&lt;/h2&gt;

&lt;p&gt;Another fantastic breakthrough from Google I/O was the evolution of real-time multimodality on mobile devices. For non-tech folks, the concept of "multimodality" sounds like Greek, but in daily practice, it translates to pure magic.&lt;/p&gt;

&lt;p&gt;My mother-in-law decided to put this intelligence to the test in a very spontaneous way: she simply &lt;strong&gt;made a funny face at the camera&lt;/strong&gt; while interacting with the app. &lt;/p&gt;

&lt;p&gt;The AI's response was instantaneous. Gemini not only captured the video feed flawlessly, but it &lt;strong&gt;identified her exact facial expression and joked about the situation&lt;/strong&gt;. My mother-in-law was completely surprised. Seeing a technology understand the context of such a subtle human behavior—and doing it instantly—transformed her perception that AI is just a glorified text search engine.&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 The Takeaway: The Best Technology Is the One That Becomes Invisible
&lt;/h2&gt;

&lt;p&gt;As developers, we love to discuss architecture, latency, and API updates. However, Google I/O 2026 reminded me of a valuable lesson about Product and User Experience (UX): &lt;strong&gt;it doesn't matter if you have the smartest model in the world if the interface scares away the end user.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;By focusing on an interface that responds fluidly and understands natural inputs like voice and images without friction, Google has finally broken out of the tech enthusiast bubble. Seeing Gemini transform into an accessible and fun assistant for my family is living proof that the future of AI is, above all, human.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>googleiochallenge</category>
    </item>
  </channel>
</rss>
