<?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: Tuan (Felix) Nguyen</title>
    <description>The latest articles on DEV Community by Tuan (Felix) Nguyen (@felixdoit).</description>
    <link>https://dev.to/felixdoit</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%2F3958488%2F5c6feddb-1877-4268-90af-6f60a48b1faf.jpg</url>
      <title>DEV Community: Tuan (Felix) Nguyen</title>
      <link>https://dev.to/felixdoit</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/felixdoit"/>
    <language>en</language>
    <item>
      <title>Balan Coffee &amp; Roastery — A Slow-Drip Vietnamese Coffee Landing Page</title>
      <dc:creator>Tuan (Felix) Nguyen</dc:creator>
      <pubDate>Sun, 16 Aug 2026 20:41:25 +0000</pubDate>
      <link>https://dev.to/felixdoit/balan-coffee-roastery-a-slow-drip-vietnamese-coffee-landing-page-33ep</link>
      <guid>https://dev.to/felixdoit/balan-coffee-roastery-a-slow-drip-vietnamese-coffee-landing-page-33ep</guid>
      <description>&lt;p&gt;&lt;em&gt;This is a submission for &lt;a href="https://dev.to/challenges/frontend-2026-07-29"&gt;Frontend Challenge - Comfort Food Edition, Perfect Landing&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;I created &lt;strong&gt;Balan Coffee &amp;amp; Roastery&lt;/strong&gt;, a polished landing page for a fictional Vietnamese comfort café in Saigon.&lt;/p&gt;

&lt;p&gt;The concept is inspired by the quiet comfort of slow phin coffee, butter toast, and small sweet treats. Rather than treating coffee as a quick purchase, I wanted the site to feel like a calm daily ritual: slow, warm, familiar, and personal.&lt;/p&gt;

&lt;p&gt;Visitors can explore the menu, learn the café story, find visiting information, and interact with a small pixel-art coffee brewing experience.&lt;/p&gt;

&lt;p&gt;Highlights:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Responsive editorial-style coffee shop landing page&lt;/li&gt;
&lt;li&gt;Vietnamese coffee-inspired menu, story, ritual, and visit sections&lt;/li&gt;
&lt;li&gt;Clear navigation and accessible interactive controls&lt;/li&gt;
&lt;li&gt;Consistent number and price typography throughout the site&lt;/li&gt;
&lt;li&gt;A lightweight interactive mini-game: &lt;strong&gt;Pixel Phin Brew&lt;/strong&gt;

&lt;ul&gt;
&lt;li&gt;Dose beans into the phin&lt;/li&gt;
&lt;li&gt;Grind the beans&lt;/li&gt;
&lt;li&gt;Bloom the coffee&lt;/li&gt;
&lt;li&gt;Let the phin drip&lt;/li&gt;
&lt;li&gt;Serve the finished cup&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Built without heavy UI, game, or animation libraries&lt;/li&gt;
&lt;/ul&gt;

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

&lt;p&gt;&lt;strong&gt;Live demo:&lt;/strong&gt; &lt;a href="https://frontend-challenge.boy0388402.workers.dev" rel="noopener noreferrer"&gt;Balan Coffee &amp;amp; Roastery&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Source code:&lt;/strong&gt; &lt;a href="https://github.com/AIVIETNAM-AIO-felixdoit/frontend-challenge" rel="noopener noreferrer"&gt;GitHub repository&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Journey
&lt;/h2&gt;

&lt;p&gt;I wanted to create something that felt more like a coffee ritual than a typical restaurant landing page.&lt;/p&gt;

&lt;p&gt;The visual direction uses warm cream tones, deep coffee browns, generous spacing, subtle texture, and an editorial layout inspired by a slow morning at a Saigon café. I paid attention to small details such as consistent tabular numerals for prices and opening hours, responsive layouts, visible interaction states, and reduced-motion support.&lt;/p&gt;

&lt;p&gt;The feature I enjoyed building most was &lt;strong&gt;Pixel Phin Brew&lt;/strong&gt;. I wanted the interaction to be understandable instead of just decorative, so each button clearly explains the next brewing action. Every correct step updates the pixel scene, progress indicator, and feedback message until the final cup is served.&lt;/p&gt;

&lt;p&gt;The project was built with React, TypeScript, Vinext/Vite, and custom CSS. I kept the implementation lightweight and avoided adding large dependencies for animation or the game.&lt;/p&gt;

&lt;h2&gt;
  
  
  Assets and Credits
&lt;/h2&gt;

&lt;p&gt;The Manhattan Café illustration assets retain the original creator watermark visible in the source files. The interface design, responsive layout, styling, interactions, and Pixel Phin Brew game were created for this submission.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>frontendchallenge</category>
      <category>webdev</category>
      <category>javascript</category>
    </item>
    <item>
      <title>Operation Turing — A Caesar Cipher Codebreaking Game</title>
      <dc:creator>Tuan (Felix) Nguyen</dc:creator>
      <pubDate>Sat, 20 Jun 2026 15:18:54 +0000</pubDate>
      <link>https://dev.to/felixdoit/operation-turing-a-caesar-cipher-codebreaking-game-1dga</link>
      <guid>https://dev.to/felixdoit/operation-turing-a-caesar-cipher-codebreaking-game-1dga</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;h2&gt;
  
  
  What I Built
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Operation Turing&lt;/strong&gt; is a Caesar cipher decoding game set in WWII Bletchley Park. You're a codebreaker racing the clock — 60 seconds to decode 5 intercepted enemy messages by finding the correct cipher shift before time runs out.&lt;/p&gt;

&lt;p&gt;The game ties directly into the &lt;strong&gt;Best Ode to Alan Turing&lt;/strong&gt; prize category: Turing's most famous achievement was breaking the Enigma cipher during WWII, so the entire core mechanic — sliding through shift values to reveal a hidden message — is a small, playable echo of the codebreaking work he pioneered. The game closes with one of his quotes after each run.&lt;/p&gt;

&lt;p&gt;Mechanically it's intentionally simple: a slider from 0–25, real-time decode feedback, a hint system that costs points, and a 60-second timer across 5 rounds. I wanted something polished and complete rather than ambitious and half-finished, given the jam's tight turnaround.&lt;/p&gt;

&lt;p&gt;This is actually my first game jam, so I kept things small on purpose — wanted to make sure I had something working end-to-end rather than something ambitious but broken XD.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;&lt;a href="https://aivietnam-aio-felixdoit.github.io/operation-turing/" rel="noopener noreferrer"&gt;▶ Play Operation Turing&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;  &lt;iframe src="https://www.youtube.com/embed/XxqsxLSbm-U"&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/AIVIETNAM-AIO-felixdoit" rel="noopener noreferrer"&gt;
        AIVIETNAM-AIO-felixdoit
      &lt;/a&gt; / &lt;a href="https://github.com/AIVIETNAM-AIO-felixdoit/operation-turing" rel="noopener noreferrer"&gt;
        operation-turing
      &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;🔐 Operation Turing&lt;/h1&gt;
&lt;/div&gt;
&lt;p&gt;A Caesar cipher decoding game built for the &lt;strong&gt;DEV.to June Solstice Game Jam 2026&lt;/strong&gt;, honoring Alan Turing and the codebreakers of Bletchley Park.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href="https://aivietnam-aio-felixdoit.github.io/operation-turing/" rel="nofollow noopener noreferrer"&gt;▶ Play the game&lt;/a&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e"&gt;&lt;img src="https://camo.githubusercontent.com/f8df3091bbe1149f398a5369b2c39e896766f9f6efba3477c63e9b4aa940ef14/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6c6963656e73652d4d49542d677265656e" alt="License: MIT"&gt;&lt;/a&gt;
&lt;a rel="noopener noreferrer nofollow" href="https://camo.githubusercontent.com/b6628fb612fa456732374b21154a147efca9fda3f6e35faf4b732529ed537b19/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d616465253230776974682d48544d4c2532464353532532464a532d626c7565"&gt;&lt;img src="https://camo.githubusercontent.com/b6628fb612fa456732374b21154a147efca9fda3f6e35faf4b732529ed537b19/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f6d616465253230776974682d48544d4c2532464353532532464a532d626c7565" alt="Made with"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;About&lt;/h2&gt;
&lt;/div&gt;
&lt;p&gt;WWII, 1942. Enemy messages are flooding in. You're a codebreaker at Bletchley Park, racing against the clock to decode intercepted Caesar cipher transmissions before time runs out.&lt;/p&gt;
&lt;p&gt;This game is an ode to &lt;strong&gt;Alan Turing&lt;/strong&gt; — the man who broke the Enigma cipher and laid the foundations of modern computer science. The mechanic itself (finding the right shift to reveal a hidden message) is a small, playable echo of the codebreaking work Turing pioneered.&lt;/p&gt;
&lt;p&gt;Built for the jam's &lt;strong&gt;Best Ode to Alan Turing&lt;/strong&gt; bonus prize category.&lt;/p&gt;
&lt;div class="markdown-heading"&gt;
&lt;h2 class="heading-element"&gt;How to play&lt;/h2&gt;
&lt;/div&gt;
&lt;ol&gt;
&lt;li&gt;Click &lt;strong&gt;Start mission&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Drag the &lt;strong&gt;shift slider&lt;/strong&gt; (0–25) until the decoded text below turns into readable English&lt;/li&gt;
&lt;li&gt;Click &lt;strong&gt;Submit decode&lt;/strong&gt; to lock in your answer&lt;/li&gt;
&lt;li&gt;Decode all 5 messages…&lt;/li&gt;
&lt;/ol&gt;&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class="gh-btn-container"&gt;&lt;a class="gh-btn" href="https://github.com/AIVIETNAM-AIO-felixdoit/operation-turing" 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;p&gt;The whole game is vanilla &lt;strong&gt;HTML/CSS/JavaScript&lt;/strong&gt; — no frameworks, no build step, no dependencies. I wanted it to be trivially embeddable and playable directly in the browser for judging.&lt;/p&gt;

&lt;p&gt;A few technical notes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Caesar cipher logic&lt;/strong&gt;: a single &lt;code&gt;caesar(text, shift)&lt;/code&gt; function handles both encoding and decoding — decoding a message is just encoding it with the inverse shift (&lt;code&gt;26 - shift&lt;/code&gt;), so I didn't need separate encrypt/decrypt implementations.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Real-time decode preview&lt;/strong&gt;: as you drag the shift slider, the decoded text updates live and turns green the instant it matches the target phrase, so you get immediate feedback without needing to "submit" to check your guess.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scoring&lt;/strong&gt;: each correct decode is worth 20 points, or 10 if you used a hint on that round — so hints don't subtract from your score directly, they just halve what you would've earned for that round.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Polish pass&lt;/strong&gt;: added small CSS keyframe animations (fade-in on load/new round, a shake on wrong submissions, a green flash on correct ones) to make the feedback loop feel more responsive.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Deployment&lt;/strong&gt;: static site on GitHub Pages — push to &lt;code&gt;main&lt;/code&gt;, zero config.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Prize Category
&lt;/h2&gt;

&lt;p&gt;Submitting for &lt;strong&gt;Best Ode to Alan Turing&lt;/strong&gt;. The game's entire premise — decoding intercepted WWII-era cipher messages under time pressure — is a direct nod to Turing's work breaking Enigma at Bletchley Park. The ending screen also surfaces one of his quotes as a small tribute.&lt;/p&gt;

</description>
      <category>devchallenge</category>
      <category>gamechallenge</category>
      <category>gamedev</category>
    </item>
  </channel>
</rss>
