~/endika

Endika Iglesias

$ developer · indie maker

I build small, useful apps that ship — expense splitters, converters, Flipper Zero tools and more. Mostly solo, mostly weekends.

// web apps · 16

🧳ConvertHub

Offline-first PWA for travellers: currencies, units, clothing/shoe sizes and tip calculator.

PWA● live →
🎹Doinu

Offline piano-learning PWA: falling-notes practice, a step-by-step path, scales & songs, and record your own melodies. Play by MIDI or microphone.

PWA● live →
💪Ekin

Offline bodyweight home-workout PWA: build or auto-fill routines, follow guided sessions and track your progress.

PWA● live →
Erregai

Offline PWA that finds the nearest Spanish fuel stations with live prices — cheapest-first, colour-cued, on a list and map. Trip mode follows your route and alerts you to the cheapest station ahead. 6 languages.

PWA● live →
Esku

Offline PWA that reads sign language from your phone camera and turns it into text. Fingerspells the Spanish Sign Language alphabet live, shows you the hand it is tracking, and lets you teach it your own signs in any sign language. No frame ever leaves the device.

PWA● live →
🧾EventSplit

Plan group events and split the costs fairly — availability polls, shared list, settle-up. Real-time, no login.

PWA● live →
🛞Gurpil

Offline arcade racer with a twist: draw your wheel's shape mid-race and let real physics decide. Themed biomes, a 15-level campaign and an endless mode.

PWA● live →
🎭Impostor

Offline pass-the-phone party game: everyone shares a secret word except the impostors — give clues, vote and unmask them. 6 languages, no login.

PWA● live →
🃏Kartaak

Flashcard study app with AI-generated cards (Gemini, Claude or OpenAI). Offline-first.

PWA● live →
🎬Kartela

Offline poster duel for kids: two movie posters show up, swipe towards the one you keep and it takes on the next challenger. 189 Disney, Pixar and DreamWorks films, and the full history of what beat what at the end.

PWA● live →
🧘Lasai

Free, offline, ad-free PWA to calm down and breathe for a few minutes: guided breathing, a private stress check-in and history. Everything stays on your device.

PWA● live →
📝Mintza

Client-only PWA that transcribes meetings into summaries, sentiment and a mind map. Bring your own API keys.

PWA● live →
🎂Monete

Account-free RSVP for kids' birthday parties: per-child answers, live headcount and a venue-ready guest list.

PWA● live →
🗣️PictoTap

Free pictogram communication PWA for people with ASD and other communication difficulties.

PWA● live →
🚗Tutu

Offline 3D car-sliding puzzle for kids: slide the toy cars to free the red one. Endless rising difficulty, 6 languages.

PWA● live →
🌳Zuhaitz

Offline PWA to identify trees in Spain with an adaptive, no-jargon question key — 174 species with hand-drawn sketches. No login.

PWA● live →

// flipper zero · 9

🥑Avocado Zero

Tamagotchi-style avocado pit in a glass of water you raise on-device (alpha).

Flipper● repo →
🛞Gurpil

Endless side-scroller for Flipper Zero: switch your wheel shape on the fly to match the terrain and roll as far as you can.

Flipper● repo →
📅Habit Flow

Offline habit tracker for Flipper Zero: day-based goals, streaks and progress, SD storage.

Flipper● repo →
📷HyperFocus Calc

Hyperfocal distance calculator for Flipper Zero: focal length, aperture and sensor CoC.

Flipper● repo →
🕵️Impostor Game

Party word game with impostors (Undercover/Spyfall style), EN/ES, up to 64 players.

Flipper● repo →
📦NFC Stock

NFC inventory manager for Flipper Zero: scan tags, edit stock and track low-stock items.

Flipper● repo →
🧹Sub Dup

Identify, manage and safely clean up duplicate Sub-GHz (.sub) files via CRC32 scanning.

Flipper● repo →
Trivia Zero

Flashcard-style trivia game (ES/EN) with random questions, categories and resume support.

Flipper● repo →
🚗Tutu

Sliding car puzzle (Rush Hour) for Flipper Zero: 100 levels of rising difficulty — slide the cars to free the red one.

Flipper● repo →

// experiments · 6

🧠Claude DB Memory

SQLite-backed long-term memory for Claude Code with FTS5 search and Markdown backup.

tool● repo →
🎙️Entzun

Desktop assistant for meeting transcription, sentiment analysis and summarisation.

tool● repo →
🧰eskills

My lean Claude Code skills pack: coding conventions, an end-to-end task flow and quality lenses, riding superpowers.

tool● repo →
🧬Genome Report

Generate a personal report from your genome data.

tool● repo →
📊Influence Sensor

See how captured your social feed is — analyze your Instagram/TikTok export 100% in-browser.

tool● live →
🔊Loud Noise Detector

Audio monitoring that detects and alerts you about important sounds at home while you're away.

tool● repo →

// open source · 18

🐳docker/compose

A single directory the user cannot read made compose watch fail to start, so nothing was watched at all: the ignore list is applied to events, never to the walk that registers the watches.

38k★#13992 · open
🔓DarkFlippers/unleashed-firmware

The EMV parser took each TLV length straight off the card, so tapping a crafted card wrote past several fixed-size fields and a stack buffer.

22k★#1048 · merged
🔓DarkFlippers/unleashed-firmware

A reader writing to the emulated NFC tag at offset 1 shifted the stored payload by a byte and spliced in a stale byte from the previous frame.

22k★#1049 · merged
🐬vitessio/vitess

A sharded query with EXISTS inside a CASE silently dropped half of its WHERE clause and returned the wrong rows.

21.2k★#20700 · open
🐬vitessio/vitess

An outer join against a reference table returned every preserved row once per shard instead of once.

21.2k★#20701 · open
🏷️python/mypy

A walrus nested inside a condition, as in if cond and (woo := 5) + n, left the variable optional in the branch where the assignment had certainly run.

20.6k★#21805 · open
🏷️python/mypy

Calling an abstract staticmethod or classmethod straight off the abstract class raised no error, even though instantiating that same class does.

20.6k★#21806 · open
🧩tobymao/sqlglot

DuckDB was modelled as returning NULL on division by zero, but it follows IEEE 754 and returns inf, so transpiled queries diverged.

9.5k★#7969 · merged
Next-Flip/Momentum-Firmware

The same unbounded EMV lengths as the unleashed fix, except here the stack overflow is not compiled out of the release builds the project ships.

9k★#573 · open
Next-Flip/Momentum-Firmware

The Type 4 Tag write fix, ported to the byte-identical copy of the file this firmware carries.

9k★#574 · open
🐹traefik/yaegi

A constant condition in an if or for statement crashed the interpreter instead of reporting a compile error, taking down any program embedding it.

8.4k★#1729 · open
🐹traefik/yaegi

Using a package name as a value crashed the interpreter five different ways, and inside a return statement it raised no error at all and ran.

8.4k★#1730 · open
🐹traefik/yaegi

Every pull request had a red lint job: the pinned linter was built with an older Go than CI installs, so it panicked before reporting anything.

8.4k★#1731 · open
🔠fonttools/fonttools

Instancing a variable font left the BASE table untouched, so instances kept the default baselines and a dangling variation store.

5.2k★#4137 · merged
📍MatthewKuKanich/FindMyFlipper

An infinite 2FA loop blocked report fetching: the anisette device identity was partly overwritten with random UUIDs. Behind seven reported issues.

2.2k★#144 · open
📐chearon/dropflow

A box with position: absolute stayed in normal flow and ignored its insets entirely, the last piece of CSS 2.1 positioning the engine was missing.

1.4k★#34 · open
🤝pact-foundation/pact-python

Any exception in a message handler surfaced as error sending request for url: the 200 response line was sent before the handler ran, so the dropped connection looked like a network fault.

677★#1669 · open
🦀pact-foundation/pact-reference

A V4 message whose contents were written without the expected envelope was read as having no body at all, so the interaction verified successfully whatever the provider produced.

104★#547 · merged