SShortSingh.
Back to feed

Developer builds 8-game browser arcade in plain TypeScript with no frameworks

0
·17 views

Developer Minjia Hu has released a retro-styled browser arcade featuring eight classic games — Snake, Tetris, Breakout, Flappy Bird, 2048, Minesweeper, Sudoku, and Gomoku — playable instantly without installation or sign-up. The entire build weighs roughly 35 kB gzipped and uses only plain TypeScript and Canvas 2D with zero runtime dependencies. All eight games share a unified arcade-cabinet interface supporting both keyboard and touch input, while each game's logic is kept strictly separate from rendering code. The project includes 269 unit tests and 28 end-to-end Playwright tests running in continuous integration, and is released under the MIT license. The source code and live demo are publicly available on GitHub.

Read the full story at DEV Community

This is an AI-generated summary. ShortSingh links to the original source for the complete article.

Discussion (0)

Log in to join the discussion and vote.

Log in

Related stories

0
ProgrammingDEV Community ·

Developer Migrates 90 Cypress Tests to Playwright in 4 Days Using Claude AI

A developer successfully migrated a 90-spec Cypress end-to-end test suite to Playwright in just four working days using the AI coding assistant Claude Code. The suite had been built over three years by six contributors and included a 600-line custom helpers file, with the team originally estimating the migration would take two to three sprints. The approach involved manually translating one spec first to identify conversion patterns, then codifying those findings into a structured rulebook called MIGRATION_RULES.md before letting the AI handle the remaining 89 specs. Claude Code processed the tests in batches of five, following strict rules such as never inlining custom commands and running each migrated spec three times to confirm stability. A screenshot-diff gate was also used to catch any silent behavioral changes introduced during the automated conversion process.

0
ProgrammingDEV Community ·

Developer Open-Sources Lightweight Biometric Auth Library for React Native on Android

A developer named Vijesh Kumar has released an open-source Android biometric authentication library for React Native called @vijeshkr/react-native-biometric-auth. The library is built entirely with Kotlin and uses AndroidX BiometricPrompt APIs, replacing older Java-based implementations. It supports fingerprint authentication with optional fallback to device credentials such as PIN, pattern, or password. The library offers a promise-based JavaScript and TypeScript API, requiring minimal configuration for integration into React Native projects. It was created to address gaps the developer encountered in existing biometric authentication solutions while building a secure mobile application.

0
ProgrammingDEV Community ·

Cloud, Local, or Self-Hosted: Three Ways AI Models Receive and Process Your Messages

When a user sends a message to an AI chatbot like ChatGPT or Gemini, the text travels over the internet to a remote server where a large language model processes it and returns a response. Developers building AI applications replicate this same request-response pattern in code rather than through a chat interface. AI models can be deployed in three ways: cloud-hosted services such as Gemini, GPT, and Claude, which charge per token and require an API key; locally on a personal machine using tools like Ollama, which is free but limited by hardware; or on privately controlled servers for organizations with strict data privacy needs. Cloud models offer superior performance and are always up to date, while local models trade capability for cost savings, privacy, and offline access. An API key acts as an authentication credential, included with every cloud request to verify the user's identity and authorize model usage.

0
ProgrammingDEV Community ·

Seven DNS Monitoring False Alarms and How to Engineer Them Out

Building a reliable DNS change monitor is deceptively complex, as DNS answers vary in ways that trigger false alerts even when nothing meaningful has changed. Common pitfalls include querying recursive resolvers with stale caches instead of authoritative nameservers, and treating rotated multi-value record order as a real change. TTL countdown values and SOA serial number bumps must also be excluded from comparisons to avoid noise from routine provider behaviour. Network timeouts and SERVFAIL responses need to be handled separately from genuine record deletions, so transient failures do not generate false removal alerts. Addressing each of these issues systematically can save developers significant debugging time when building their own DNS monitoring scripts.