~ ~ whoami whoami projects projects blog blog
PROJECTS(1)
Maarten's Notable Work
Name

pokedex - Rust-Based Pokédex for Raspberry Pi Zero

Synopsis

A pocket-sized Pokémon encyclopedia running on a Raspberry Pi Zero.

Description

This personal project was inspired by my child's love for Pokémon. Instead of buying a toy Pokédex, I decided to build a fully functional one from scratch using a Raspberry Pi Zero and an e-ink display.

The device features a complete database of Pokémon from all generations, with detailed information about each creature. Built with Rust for performance and reliability, it includes search functionality, location mapping, and move details. The e-ink display provides excellent battery life and visibility in various lighting conditions, making it perfect for outdoor adventures.

The project showcases embedded Rust development, custom UI design with Inter and Truth And Ideals fonts for authentic theming, and efficient resource management for battery-powered operation.

Technical Details
  • Hardware: Raspberry Pi Zero W, e-ink display, 3D-printed case with tactile buttons
  • Software: Rust application with custom UI framework, CSS styling for theming
  • Database: Complete Pokémon dataset with moves, locations, and regional variants
  • Features: Search by name/type, location mapping, move details, battery optimization
  • UI/UX: Custom fonts (Inter, Truth And Ideals), responsive layout for small screens
Status

Active development (2023 - Present)

Rust Embedded Raspberry Pi Personal
Name

nixos-home - NixOS Home Automation and NAS

Synopsis

Replaced commercial Synology NAS with a custom NixOS build for home automation and storage.

Description

After outgrowing the capabilities of my Synology NAS, I built a custom NixOS-based home server that handles both storage and home automation tasks. This infrastructure project represents a complete homelab ecosystem with declarative configuration management.

The system provides a comprehensive range of self-hosted services including media streaming (Jellyfin), cloud storage (Nextcloud), monitoring (Grafana), and home automation (Home Assistant). Everything is managed through NixOS flakes with reproducible deployments and automated backups.

Features advanced storage management with ZFS, automated deployment via Colmena, and secure secrets management using SOPS-nix with Age encryption. The setup demonstrates infrastructure-as-code principles with disaster recovery capabilities.

Technical Details
  • Hardware: Custom Ryzen build, 32GB RAM, multi-drive ZFS pool with redundancy
  • OS & Config: NixOS with Flakes, declarative system configuration, reproducible builds
  • Services: Home Assistant, Jellyfin, Grafana, Nextcloud, Caddy reverse proxy
  • Storage: ZFS with snapshots, automated scrubbing, and backup strategies
  • Deployment: Colmena for multi-host orchestration, SOPS-nix for secrets
  • Monitoring: Comprehensive system metrics, service health checks
  • Security: Age-encrypted secrets, network segmentation, automated updates
Status

Active (2022 - Present)

NixOS Linux Home Automation Personal
Name

gw2-necronomicon - Guild Wars 2 Personal Dashboard

Synopsis

Frontend-only web application connecting directly to Guild Wars 2 API for personalised gaming dashboard.

Description

A comprehensive Guild Wars 2 companion app that provides account overview, character management, and achievement tracking. Built as a frontend-only application that connects directly to the official Guild Wars 2 API v2, eliminating the need for a backend server while maintaining security and performance.

The application features intelligent caching using IndexedDB to minimize API calls and provide offline functionality. Includes an admin panel for cache management, item preloading infrastructure to work around CORS limitations, and authentic Guild Wars 2 theming with Bootstrap UI components.

Demonstrates advanced React patterns, TypeScript development, API integration strategies, and client-side data management techniques. The architecture showcases how to build feature-rich applications without traditional backend infrastructure.

Technical Details
  • Frontend: React 19.0.0 + TypeScript + Vite build system
  • UI Framework: Bootstrap with custom GW2-themed styling
  • Data Layer: IndexedDB caching with database seeding and migration system
  • API Integration: Direct GW2 API v2 calls with custom hooks and error handling
  • Features: Account overview, Wizard's Vault tracking, character equipment, achievement points
  • Caching: Intelligent cache management with admin panel, item preloading system
  • Security: Secure API key storage in browser local storage
  • Performance: Item detail optimization, custom database queries
Status

Active development (2024 - Present)

React TypeScript Gaming API Integration
Name

leer-avonturen - Educational Kids App

Synopsis

Interactive educational app for Dutch children aged 3-8 with comprehensive learning modules.

Description

A comprehensive educational application designed for Dutch children aged 3-8, offering diverse learning adventures across multiple subjects. The app combines educational content with engaging interactive experiences, featuring math adventures, language learning (Dutch + French basics), science exploration, and programming fundamentals.

Built with a sophisticated container-based architecture that supports multiple activity types including quizzes, games, and interactive content. The JSON-driven content system allows for easy expansion and localization, while maintaining strict TypeScript typing for reliability.

Includes comprehensive Cypress testing covering both E2E workflows and component testing, demonstrating professional-grade mobile app development practices. The modular design supports universal activity patterns that can be extended for new learning modules.

Technical Details
  • Framework: React Native 0.79.5 + Expo SDK ~53.0.17
  • Language: TypeScript with strict mode, comprehensive type definitions
  • Architecture: Container-based design with JSON-driven content system
  • Content: 4 programming games, math adventures, language modules, science exploration
  • Testing: Extensive Cypress E2E and component testing suite
  • Platforms: Android (primary), iOS and Web support
  • Localization: Dutch primary language with French learning module
  • Activity Types: Universal system supporting quiz, game, and interactive content
Status

Feature-complete (2024)

React Native Education Mobile TypeScript
Name

workout-tracker - Self-Hosted Fitness Tracking

Synopsis

Full-stack workout tracking application designed for homelab deployment with AI coaching features.

Description

A full-stack fitness tracking application designed specifically for homelab deployment and self-hosting enthusiasts. Built with Go backend and React frontend, it provides comprehensive workout management with integration for Polar fitness devices.

Features a sophisticated exercise library supporting 5 different tracking types (weight+reps, reps-only, duration, distance, etc.), workout template creation, and in-session performance logging. Includes AI-powered coaching recommendations through OpenAI integration for personalised training advice.

Architected as a single binary deployment with embedded frontend, making it ideal for homelab environments. The system uses SQLite for data persistence with comprehensive schema design supporting complex workout relationships and progress tracking over time.

Technical Details
  • Backend: Go with chi router, comprehensive REST API design
  • Database: SQLite with migration system, complex relational schema
  • Frontend: React + TypeScript + Vite + Tailwind CSS
  • Exercise System: 5 tracking types (weight+reps, reps-only, duration, distance, weighted-distance)
  • AI Integration: OpenAI-powered coaching service with contextual recommendations
  • Authentication: Session-based auth for external service integrations
  • Deployment: Single binary with embedded static assets, NixOS integration
  • Future Features: Polar device integration for heart rate and recovery data
  • Development: Comprehensive makefile, dev environment setup, build automation
Status

Active development (2024 - Present)

Go React Self-Hosted Fitness
Name

terratropolis-town - 2D Town Simulation Game

Synopsis

Pixel-art town simulation game built with Godot 4.3 featuring fishing mechanics and NPC interactions.

Description

A charming 2D town simulation game built with Godot 4.3, featuring a nostalgic 16x16 pixel art aesthetic. The game combines town exploration, interactive fishing mechanics, and a comprehensive NPC dialogue system with quest foundations.

Utilizes a mixed C# and GDScript architecture, demonstrating advanced Godot development techniques. The project includes a sophisticated fishing minigame with UI components, modular inventory management, and JSON-driven dialogue system for dynamic NPC interactions.

Features professional game asset integration with the Mana Seed Farmer Sprite System and Modern Exteriors tilesets. The development includes signal visualization tools for debugging and a well-structured scene hierarchy for maintainable game architecture.

Technical Details
  • Engine: Godot 4.3 with mixed C#/GDScript architecture
  • Art Style: 16x16 pixel art with Modern Exteriors tileset, Mana Seed sprite system
  • Core Systems: Player movement, fishing mechanics, NPC dialogue, inventory management
  • Fishing System: Interactive minigame with dedicated UI components and animation
  • Dialogue: JSON-driven conversation system with quest integration
  • Inventory: Modular slot-based system with UI components
  • Development Tools: Signal Visualizer addon for debugging, structured scene hierarchy
  • Assets: Professional sprite animations, farming tools, environmental props
Status

Early development (2024 - Present)

Godot C# Game Dev Pixel Art