apphane
apphane — a house drawn with curly braces, windows lit amber. Apps, tools, ideas.

A house for small, sharp tools.

apphane — from Turkish -hane, “house of” — is where our apps, tools, and ideas live. Open source by default, each named in Turkish, each built to do one thing well.

5 lights are on. More rooms are being furnished.

In the house

nehir

nehir — Turkish for river

Windows flow in columns, scrolling across your screen.

A scrolling tiling window manager for macOS, built on the Niri column paradigm. Columns scroll horizontally instead of shrinking to fit — your windows keep their size, and you move the river.

  • Niri-style scrolling columns
  • Workspaces with hotkey switching
  • Multi-monitor support
  • Overview mode
  • Command palette
  • IPC control via nehirctl
  • Split TOML configuration

Install with Homebrewbrew install --cask guria/tap/nehir

kahraman

kahraman — Turkish for hero

Accessibility-first tests that read like a user’s story.

A codecept-style test actor and fluent locator DSL for Storybook portable stories and Vitest browser mode. Kahraman steers tests toward roles, accessible names, and visible text so the easiest tests to write are also the ones that reflect what users perceive.

  • Declarative I.see / I.click actor
  • Accessibility-first locator DSL
  • Storybook portable stories
  • Vitest browser mode
  • Readable failure diagnostics
  • Extensible page actors
  • React, Vue, and Svelte ready

Install from npmnpm install --save-dev kahraman

karkas

karkas — Turkish for framework / skeleton

An opinionated modern React stack, wired end to end.

A reference application and template for a modern React stack — Nub for packaging, React 19, Reatom state, Panda CSS with Park UI components, ParaglideJS i18n, and Storybook portable stories tested with Vitest browser mode through kahraman. Organized by Feature-Sliced Design so the skeleton stays legible as it grows.

  • Nub + mise + hk toolchain
  • React 19 with Reatom state
  • Panda CSS and Park UI components
  • ParaglideJS internationalization
  • Storybook portable stories
  • kahraman-driven Vitest tests
  • Feature-Sliced Design layout

Clone the templategit clone https://github.com/apphane-dev/karkas.git

eczane

eczane — Turkish for pharmacy

The on-duty pharmacy in Antalya, found fast.

A static, multilingual, installable web app for finding on-duty (nöbetçi) pharmacies in Antalya. A scraper commits a static city snapshot and the browser does the rest — grouped listings, maps, calling, directions, and nearest-first geolocation — with no backend to run.

  • On-duty pharmacies in Antalya
  • District-grouped listings
  • Nearest-first geolocation sort
  • MapLibre GL maps
  • Phone, WhatsApp, and directions
  • Turkish, English, and Russian
  • Installable offline app shell

ses

ses — Turkish for voice / sound

Clone a voice, then narrate a whole script in it.

A local voice-cloning voiceover pipeline: give it a voice sample, a Markdown script, and settings, and it returns narration in that voice — one WAV per section plus a concatenated full.wav. Everything runs on your own machine through a staged synthesis pipeline, with quality gates that re-roll garbled or over-paused takes.

  • Qwen3-TTS voice cloning
  • ICL and x-vector clone modes
  • Staged synthesis pipeline
  • Garble and pause quality gates
  • Safe LavaSR enhancement
  • Markdown script format
  • Runs locally on MPS or CPU

Clone the repogit clone https://github.com/apphane-dev/ses.git

House rules

Open source by default

The code lives in the open, under real licenses. Nehir ships as GPL-2.0-only and Kahraman as MIT.

Lineage stays visible

Tools built on other people's work say so, file by file. Nehir credits its OmniWM foundation in a NOTICE that tracks the provenance of every source file.

One thing, done well

Each project keeps a deliberately narrow scope. Nehir is one layout model — scrolling columns — not a window manager for every taste.