Skip to content
Muhammet Şafak
tr
The SilkWard board — a preview of a node-and-edge graph where the enemy advances by the same deterministic rule as the player, with solver-cli measuring level difficulty via BFS

SilkWard

Ongoing Older / Hobby Projects

SilkWard is an offline puzzle game that resolves 36 levels plus 6 hidden levels on a node-and-edge board through entirely deterministic moves. A single TypeScript core feeds the web (PWA) and mobile (Expo) clients at once; level difficulty is measured by the minimum move count the solver-cli tool finds via BFS. It is playable today at silkward.com.

Role
Designer & Developer
Duration
September 2026 — Ongoing

Technologies

TypeScript Next.js React Expo React Native Vitest

Skills

Game Design Puzzle Design Deterministic Systems Offline-First Architecture Monorepo Architecture TypeScript

SilkWard fills a gap I’d long felt in turn-based puzzles: few rules, zero chance, the feeling of producing the outcome by thinking it through. On a node-and-edge graph, every step the player takes triggers the enemies to advance by the same deterministic rule; if a level is lost, the cause is never a bad roll of the dice but the move itself. The 36 levels plus 6 hidden levels span three acts.

The rules engine is written in pure TypeScript with zero dependencies; it knows neither the DOM nor React Native. That purity lets the web client (a Next.js-based PWA) and the mobile client (Expo) share the same behavior without writing it twice — the rules engine and the solver live in a shared core package, while level data lives in a separate data package. Level difficulty rests on measurement, not guesswork: the solver-cli tool finds each level’s minimum move count via BFS, and a verification command re-checks that number on every change. Determinism is protected not by a comment but by a constraint in the build chain: the core package is forbidden from accessing a random number generator or the system clock.

The first load caches the game’s shell; from that point on, gameplay makes no network requests. The only exception is sound: each sound file is downloaded once, the first time it plays, and written to persistent cache. This constraint is enforced in code: fetch usage is blocked by lint rules, and XMLHttpRequest usage by a separate source-scanning test. SilkWard is playable today at silkward.com; it receives no new development, only security and compatibility fixes.

Feeds into: JavaScript Developer

More Projects

All projects
The Regnarium board — cities and armies on a hex map with a combat preview showing exact damage numbers

Regnarium

Ongoing

Designer & Developer

Tier: On Demand

Regnarium fits the explore-expand-exploit-exterminate loop of 4X strategy into a single sitting, played offline in the browser. The 480-hex map closes after at most 60 turns, combat rolls no dice and the preview you see before attacking is the calculation itself; there are no accounts, no servers and no tracking.

TypeScript Next.js React +6 more
September 2026 — Ongoing
The SysAdmin Crisis terminal — a preview of an executed block_ip command, its man page opening, and the CI checks alongside the night shift's seven event types

Designer & Developer

Tier: Minimal Maintenance

SysAdmin Crisis is a night-shift simulation solved with 29 gamified Unix commands, including real flags, Tab completion and man. The web (PWA) and mobile (Expo) versions share the same game engine; zero data collection is a constraint tied to the build chain. It is playable today at sysadmincrisis.com.

TypeScript Next.js React +3 more
September 2026 — Ongoing
InitPHP cover — a composer install and usage snippet alongside a grid of over 30 modular PHP packages

InitPHP

Ongoing

Founder & Developer

Tier: Minimal Maintenance

I published a minimalist MVC framework (Framework3) alongside 30+ modular PHP libraries (Router, Database, Cache, Mailer, Socket, ...) under a single ecosystem; all packages are available on Composer/Packagist under the MIT license. The codebase complies with PHP-FIG standards and is backed by type safety, PHPUnit tests, extensive documentation, and examples.

Composer Git PHPUnit +1 more
August 2022 — Ongoing

Search the site

Start typing to search posts, projects and pages.

Esc to close Powered by Pagefind