<?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: Tyler</title>
    <description>The latest articles on DEV Community by Tyler (@tyler_2a95bfaf284c1d491af).</description>
    <link>https://dev.to/tyler_2a95bfaf284c1d491af</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%2F3767950%2Fd062fb9b-5a9f-4c13-a76b-1b96f04301a4.png</url>
      <title>DEV Community: Tyler</title>
      <link>https://dev.to/tyler_2a95bfaf284c1d491af</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tyler_2a95bfaf284c1d491af"/>
    <language>en</language>
    <item>
      <title>I Built an Evidence-First Game Guide with Next.js and Cloudflare Pages</title>
      <dc:creator>Tyler</dc:creator>
      <pubDate>Wed, 15 Jul 2026 09:07:34 +0000</pubDate>
      <link>https://dev.to/tyler_2a95bfaf284c1d491af/i-built-an-evidence-first-game-guide-with-nextjs-and-cloudflare-pages-2k4n</link>
      <guid>https://dev.to/tyler_2a95bfaf284c1d491af/i-built-an-evidence-first-game-guide-with-nextjs-and-cloudflare-pages-2k4n</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%2Fp2envg8yhcge7vnyze7e.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fp2envg8yhcge7vnyze7e.png" alt="Dear Passengers game guide with an aircraft and cabin crew" width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When a new game is announced, the web fills up with answers very quickly—even when the developer has not provided them yet.&lt;/p&gt;

&lt;p&gt;I wanted to build something different.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://dearpassengers.net" rel="noopener noreferrer"&gt;DearPassengers.net&lt;/a&gt; is an independent guide to &lt;em&gt;Dear Passengers&lt;/em&gt;, an upcoming physics-based co-op airline game from FLEXUS. The site collects the details that have actually been confirmed while giving “not announced” and “not stated” their own place in the information architecture.&lt;/p&gt;

&lt;p&gt;It is not the game’s official website, and it is not affiliated with FLEXUS, Valve, or Steam. It is a small experiment in building a useful content product around evidence instead of hype.&lt;/p&gt;

&lt;h2&gt;
  
  
  The content problem
&lt;/h2&gt;

&lt;p&gt;A newly revealed game creates a predictable set of questions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;When will it launch?&lt;/li&gt;
&lt;li&gt;How many players does it support?&lt;/li&gt;
&lt;li&gt;Can I play alone or in local co-op?&lt;/li&gt;
&lt;li&gt;Is it coming to consoles?&lt;/li&gt;
&lt;li&gt;Does it support crossplay, controllers, or Steam Deck?&lt;/li&gt;
&lt;li&gt;Is there a demo or playtest?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The official Steam listing answers some of these questions, while announcement footage provides clues about others. Community discussions reveal what people want to know—but they are not a product roadmap.&lt;/p&gt;

&lt;p&gt;That led to a simple editorial model:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Confirmed:&lt;/strong&gt; explicitly stated by Steam or FLEXUS.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Observed:&lt;/strong&gt; visible in official footage, but not promised as a specification.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not stated:&lt;/strong&gt; the current source does not provide an answer.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Not announced:&lt;/strong&gt; no official announcement has been found for the feature or platform.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;For example, footage may show several crew members, but that does not automatically establish an official maximum player count. A missing console announcement also does not mean a console version has been cancelled.&lt;/p&gt;

&lt;p&gt;“We don’t know yet” is still useful information when it is presented clearly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Turning the model into a site
&lt;/h2&gt;

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

&lt;ul&gt;
&lt;li&gt;Next.js 14 App Router&lt;/li&gt;
&lt;li&gt;React 18 and TypeScript&lt;/li&gt;
&lt;li&gt;custom, CSS-first responsive styling&lt;/li&gt;
&lt;li&gt;static export for Cloudflare Pages&lt;/li&gt;
&lt;li&gt;a small number of client-side islands for navigation, FAQs, and video selection&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Most of the site can be rendered statically. There is no database, account system, or application backend because the product does not need one.&lt;/p&gt;

&lt;p&gt;The core build and deployment flow is intentionally small:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;pnpm typecheck
pnpm build
pnpm deploy:cf
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The production build exports to &lt;code&gt;out/&lt;/code&gt;, and Wrangler publishes that output to Cloudflare Pages.&lt;/p&gt;

&lt;h2&gt;
  
  
  Information architecture before components
&lt;/h2&gt;

&lt;p&gt;Instead of putting every keyword and question on one giant landing page, I split the content by user intent:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a complete game overview;&lt;/li&gt;
&lt;li&gt;a release-date guide;&lt;/li&gt;
&lt;li&gt;a player-count and multiplayer guide;&lt;/li&gt;
&lt;li&gt;About, Editorial Policy, Contact, and Privacy pages.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The focused pages can answer a narrow question immediately, while contextual links connect them back to the larger guide.&lt;/p&gt;

&lt;p&gt;That structure also made the implementation easier to reason about. Each route has a clear primary question, a defined set of unknowns, and its own metadata rather than being another variation of the same generic page.&lt;/p&gt;

&lt;h2&gt;
  
  
  Trust is part of the UI
&lt;/h2&gt;

&lt;p&gt;I did not want the sourcing rules to exist only in my notes, so the site includes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;visible verification dates;&lt;/li&gt;
&lt;li&gt;a source ledger that distinguishes first-party material from community discussion;&lt;/li&gt;
&lt;li&gt;an editorial policy;&lt;/li&gt;
&lt;li&gt;a correction channel;&lt;/li&gt;
&lt;li&gt;clear independence and attribution language;&lt;/li&gt;
&lt;li&gt;structured data whose dates and claims match the visible page.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The same thinking applies to SEO. The project includes page-specific titles and descriptions, canonical URLs, Open Graph assets, sitemap and robots files, plus JSON-LD for articles, FAQs, breadcrumbs, videos, the website, and the game.&lt;/p&gt;

&lt;p&gt;Schema is not used to invent certainty. If the visible page says a player limit is unknown, the structured data should not quietly imply otherwise.&lt;/p&gt;

&lt;h2&gt;
  
  
  Designing around the subject
&lt;/h2&gt;

&lt;p&gt;I wanted the site to feel like an airline operations briefing rather than a generic collection of cards.&lt;/p&gt;

&lt;p&gt;The visual system uses cockpit-like navy surfaces, warm paper backgrounds, safety-red accents, condensed display type, status boards, manifests, arrivals language, and “cabin feed” video panels. Four short gameplay clips are hosted locally, while the official trailer uses YouTube’s privacy-enhanced embed domain.&lt;/p&gt;

&lt;p&gt;The aviation metaphor is mostly presentation, but it also reinforces the content model: every claim should feel like an item on a manifest that can be checked.&lt;/p&gt;

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

&lt;p&gt;The most important lesson was that uncertainty can be modeled instead of hidden.&lt;/p&gt;

&lt;p&gt;On content-heavy projects, the data model is not always a database schema. Sometimes it is the set of labels and editorial rules that determine what a sentence is allowed to claim.&lt;/p&gt;

&lt;p&gt;Static architecture also turned out to be a good constraint. The site stays operationally simple, and client JavaScript is reserved for interactions that materially improve scanning and navigation.&lt;/p&gt;

&lt;p&gt;The project is still being refined. I am cleaning up dependencies and documentation, rerunning the full pre-launch checks, and reconciling a few implementation decisions before I consider the build finished.&lt;/p&gt;

&lt;p&gt;You can explore the current site at &lt;a href="https://dearpassengers.net" rel="noopener noreferrer"&gt;dearpassengers.net&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I would especially appreciate feedback on one question: &lt;strong&gt;what is the clearest way you have found to communicate “unknown” without making a product page feel incomplete?&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>nextjs</category>
      <category>webdev</category>
      <category>seo</category>
      <category>cloudflare</category>
    </item>
    <item>
      <title>Building a Lightweight Social Deduction Game for the Web (Lessons Learned)</title>
      <dc:creator>Tyler</dc:creator>
      <pubDate>Thu, 12 Feb 2026 06:37:09 +0000</pubDate>
      <link>https://dev.to/tyler_2a95bfaf284c1d491af/building-a-lightweight-social-deduction-game-for-the-web-lessons-learned-1882</link>
      <guid>https://dev.to/tyler_2a95bfaf284c1d491af/building-a-lightweight-social-deduction-game-for-the-web-lessons-learned-1882</guid>
      <description>&lt;p&gt;Social deduction games are exploding in popularity again in 2026.&lt;/p&gt;

&lt;p&gt;But instead of building another heavy multiplayer client, I decided to experiment with something different:&lt;/p&gt;

&lt;p&gt;👉 A lightweight, browser-based imposter-style game that removes friction and focuses purely on deduction mechanics.&lt;/p&gt;

&lt;p&gt;Here’s what I learned from building it.&lt;/p&gt;

&lt;p&gt;Why Browser-Based Instead of App-Based?&lt;/p&gt;

&lt;p&gt;Most modern players don’t want:&lt;/p&gt;

&lt;p&gt;Large downloads&lt;/p&gt;

&lt;p&gt;Account creation friction&lt;/p&gt;

&lt;p&gt;Complex onboarding&lt;/p&gt;

&lt;p&gt;They want:&lt;/p&gt;

&lt;p&gt;Instant access&lt;/p&gt;

&lt;p&gt;Fast rounds&lt;/p&gt;

&lt;p&gt;Clear mechanics&lt;/p&gt;

&lt;p&gt;That’s why I focused on a web-first architecture.&lt;/p&gt;

&lt;p&gt;The goal was simple:&lt;/p&gt;

&lt;p&gt;Make it playable instantly in a browser, without sacrificing strategic depth.&lt;/p&gt;

&lt;p&gt;Core Design Principles&lt;/p&gt;

&lt;p&gt;When building a social deduction game, the hardest problem isn’t graphics.&lt;/p&gt;

&lt;p&gt;It’s psychology.&lt;/p&gt;

&lt;p&gt;Here are the principles I used:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Minimal UI, Maximum Tension&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Instead of cluttered menus and animations, I simplified everything:&lt;/p&gt;

&lt;p&gt;Clear role assignment&lt;/p&gt;

&lt;p&gt;Minimal voting interface&lt;/p&gt;

&lt;p&gt;Direct interaction prompts&lt;/p&gt;

&lt;p&gt;Reducing visual noise actually increases psychological pressure.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Fast Round Cycles&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Attention spans are short.&lt;/p&gt;

&lt;p&gt;So I structured gameplay around:&lt;/p&gt;

&lt;p&gt;5–10 minute sessions&lt;/p&gt;

&lt;p&gt;Quick resets&lt;/p&gt;

&lt;p&gt;Immediate role switching&lt;/p&gt;

&lt;p&gt;Short cycles increase replayability dramatically.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Deterministic Game Logic&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;From a technical standpoint, social deduction mechanics require:&lt;/p&gt;

&lt;p&gt;Clear state management&lt;/p&gt;

&lt;p&gt;Strict role validation&lt;/p&gt;

&lt;p&gt;Predictable outcome resolution&lt;/p&gt;

&lt;p&gt;Even small logic inconsistencies can break trust in the system.&lt;/p&gt;

&lt;p&gt;The backend logic must always be authoritative.&lt;/p&gt;

&lt;p&gt;Architecture Considerations&lt;/p&gt;

&lt;p&gt;For lightweight browser gameplay, I focused on:&lt;/p&gt;

&lt;p&gt;Frontend state management&lt;/p&gt;

&lt;p&gt;Minimal API calls&lt;/p&gt;

&lt;p&gt;Stateless round resets&lt;/p&gt;

&lt;p&gt;Simple role distribution algorithms&lt;/p&gt;

&lt;p&gt;Since the core mechanic is deception rather than real-time combat, performance requirements are actually manageable compared to FPS or physics-based games.&lt;/p&gt;

&lt;p&gt;This makes it ideal for web deployment.&lt;/p&gt;

&lt;p&gt;Real-World Implementation&lt;/p&gt;

&lt;p&gt;As part of this experiment, I launched a browser-based version focused purely on deduction strategy and clean mechanics.&lt;/p&gt;

&lt;p&gt;You can see the live implementation here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.impostergame.pro/" rel="noopener noreferrer"&gt;https://www.impostergame.pro/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The goal wasn’t to compete with massive multiplayer titles, but to explore how far you can push social deduction mechanics in a streamlined web environment.&lt;/p&gt;

&lt;p&gt;Lessons Learned&lt;/p&gt;

&lt;p&gt;Here are the biggest takeaways:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Simplicity scales better than complexity&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Adding more roles doesn’t always improve gameplay.&lt;br&gt;
Sometimes fewer mechanics create stronger tension.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Social dynamics &amp;gt; Visual polish&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Players care more about:&lt;/p&gt;

&lt;p&gt;Being believed&lt;/p&gt;

&lt;p&gt;Accusing others&lt;/p&gt;

&lt;p&gt;Surviving suspicion&lt;/p&gt;

&lt;p&gt;Than about particle effects.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Accessibility wins&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Removing friction increases experimentation.&lt;/p&gt;

&lt;p&gt;Web-based delivery lowers the barrier for new players significantly.&lt;/p&gt;

&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;Social deduction games are not just trending because of nostalgia.&lt;/p&gt;

&lt;p&gt;They work because they simulate something deeply human:&lt;/p&gt;

&lt;p&gt;Trust under uncertainty.&lt;/p&gt;

&lt;p&gt;And with modern web technologies, building lightweight versions is more viable than ever.&lt;/p&gt;

&lt;p&gt;If you're a developer interested in game mechanics, psychology-driven systems, or browser-first architecture, this genre is worth exploring.&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>showdev</category>
      <category>ux</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
