.profile/README.md

109 lines
9.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Hi! I'm Daniel. 👋
[Deutsche Version](./README.de.md)
### Dad 1.0 | Generation X | T-Shirt & Tattoos | Coffee drinker
Between home office, rock concerts and gaming sessions, my heart beats for tinkering and nerding out. I am currently developing SongFlip, a cross-platform music link redirector for Android & iOS, FamWake Family Alarm for stress-free morning routines, and MapFlip. I'm constantly exploring fresh ideas and tinkering on new projects.
When I'm not tweaking new features, you'll probably find me at the next festival or with a controller in my hand. :)
---
### 📂 Featured Projects & Portfolio
#### 🔓 Open Source
**[SongFlip](https://github.com/thefraggle/songflip)** – Automatic, zero-click music link redirector for Android & iOS across Spotify, Apple Music, YouTube Music, Tidal, Deezer & Amazon Music.
*License:* GPL-3.0 | *Stack:* Kotlin Multiplatform (KMP), Jetpack Compose, Swift, SwiftUI, Ktor, Firebase Cloud Functions, Aptabase
👉 **[Download on Google Play](https://play.google.com/store/apps/details?id=de.goork.songflip)** | **[iOS Beta (TestFlight)](https://testflight.apple.com/join/c2ceF8ZK)** | **[Download APK](https://github.com/thefraggle/songflip/releases)** | **[Landing Page (songflip.link)](https://songflip.link)** | **[Source Code](https://github.com/thefraggle/songflip)**
**[FamWake](https://github.com/thefraggle/familienwecker)** (Family Alarm) – A smart alarm clock app designed to replace a family's morning stress with structure and relaxation. 🏆 *#3 Daily Winner on Uneed*
*License:* GPL-3.0 | *Stack:* Kotlin, Jetpack Compose, Swift, SwiftUI, Firebase Auth/Firestore/Cloud Functions, Aptabase, RevenueCat
👉 **[Download on App Store](https://apps.apple.com/app/famwake-family-alarm-clock/id6770643027)** | **[Download on Google Play](https://play.google.com/store/apps/details?id=de.familienwecker.famwake)** | **[Landing Page (family-alarm.com)](https://family-alarm.com)** | **[Source Code](https://github.com/thefraggle/familienwecker)**
**[MapFlip](https://github.com/thefraggle/mapflip)** – Intercepts map links (Apple Maps, Bing, OpenStreetMap, HERE, Waze) on Android and seamlessly redirects them to your favorite navigation app (Google Maps, Waze, Organic Maps, OsmAnd). 🏆 *#2 Daily Winner on Uneed*
*License:* MIT | *Stack:* Kotlin, Jetpack Compose (Material 3), FOSS Flavor (Zero Permissions) & Play Flavor (Aptabase)
👉 **[Download on Google Play](https://play.google.com/store/apps/details?id=de.goork.mapflip)** | **[Download APK](https://github.com/thefraggle/mapflip/releases)** | **[Landing Page (goork.de/mapflip)](https://goork.de/mapflip/)** | **[Source Code](https://github.com/thefraggle/mapflip)**
**[Pulse](https://github.com/thefraggle/pulse)** – A modern, self-hostable Mentimeter alternative for live polling and wordclouds.
*License:* MIT | *Stack:* React (Vite), Tailwind CSS v4, Socket.io, Node.js/Express, Prisma (SQLite)
👉 **[Live Demo](https://pulse.goork.de/GHJGCM)** | **[Source Code](https://github.com/thefraggle/pulse)**
#### 🌐 Web & Projects
**[goork.de](https://goork.de)** – My central app and service hub showcasing public and private projects (FamWake, MapFlip, Pulse, Goork.it).
*Stack:* Vanilla HTML/CSS/JS (no framework)
👉 **[Visit goork.de](https://goork.de)**
**[goork.it](https://goork.it)** – Lightweight URL shortener featuring custom aliases, auto-expiry, admin dashboard, and n8n API integration.
*Stack:* React (Vite), Tailwind CSS v4, Node.js/Express, Prisma (SQLite)
👉 **[Visit goork.it](https://goork.it)**
**[notthoff.org](https://notthoff.org)** – My central Linktree-style digital business card and hub with a dark glassmorphism design.
*Stack:* Vanilla HTML/CSS/JS (no framework)
👉 **[Visit notthoff.org](https://notthoff.org)**
**[schlawinerdogs.de](https://schlawinerdogs.de)** – A responsive landing page for a dog muzzle consultancy.
*Stack:* Vanilla HTML/CSS/JS
👉 **[Visit schlawinerdogs.de](https://schlawinerdogs.de)**
#### ⚙️ Self-Hosted, Automation & Infrastructure
**Forgejo Git Infrastructure** – My self-hosted Forgejo instance serving as my primary Git forge and development hub, featuring automated push-mirroring and backup replication to GitHub.
*Stack:* Forgejo, Git, Docker, Bash
**n8n Automation ("Neo")** – My self-hosted Telegram-based AI assistant "Neo" built with 15+ n8n workflows, GPT-4o, and various custom tools (mail classification, calendar sync, web research).
*Stack:* n8n, Node.js, Docker, Nginx Proxy Manager, OpenAI API
**Paperless-ngx** – Self-hosted document management system with automated OCR, tagging, and archiving for paperless household organization.
*Stack:* Paperless-ngx, OCR, PostgreSQL, Redis, Docker
**Umami Analytics** – Self-hosted, privacy-first web analytics platform without cookies or tracking banners across all my web projects.
*Stack:* Umami, Next.js, PostgreSQL, Docker
**Aptabase & TeleGoork Analytics** – Self-hosted, privacy-first in-app telemetry for mobile apps backed by ClickHouse & PostgreSQL, aggregated into a custom mobile-first PWA dashboard.
*Stack:* Aptabase, ClickHouse, PostgreSQL, Hono, PWA, Docker
---
### 🛠 Tech Stack & Tools
[![Kotlin](https://img.shields.io/badge/kotlin-%237F52FF.svg?style=for-the-badge&logo=kotlin&logoColor=white)](https://kotlinlang.org/)
[![Kotlin Multiplatform](https://img.shields.io/badge/Kotlin_Multiplatform-7F52FF?style=for-the-badge&logo=kotlin&logoColor=white)](https://kotlinlang.org/docs/multiplatform.html)
[![Swift](https://img.shields.io/badge/swift-F54A2A?style=for-the-badge&logo=swift&logoColor=white)](https://developer.apple.com/swift/)
[![Android](https://img.shields.io/badge/Android-3DDC84?style=for-the-badge&logo=android&logoColor=white)](https://developer.android.com/)
[![iOS](https://img.shields.io/badge/iOS-000000?style=for-the-badge&logo=ios&logoColor=white)](https://developer.apple.com/ios/)
[![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)](https://www.typescriptlang.org/)
[![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
[![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)](https://react.dev/)
[![HTML5](https://img.shields.io/badge/html5-%23E34F26.svg?style=for-the-badge&logo=html5&logoColor=white)](https://developer.mozilla.org/en-US/docs/Web/HTML)
[![CSS3](https://img.shields.io/badge/css3-%231572B6.svg?style=for-the-badge&logo=css3&logoColor=white)](https://developer.mozilla.org/en-US/docs/Web/CSS)
[![TailwindCSS](https://img.shields.io/badge/tailwindcss-%2338B2AC.svg?style=for-the-badge&logo=tailwind-css&logoColor=white)](https://tailwindcss.com/)
[![NodeJS](https://img.shields.io/badge/node.js-6DA55F?style=for-the-badge&logo=node.js&logoColor=white)](https://nodejs.org/)
[![Firebase](https://img.shields.io/badge/Firebase-FFA611?style=for-the-badge&logo=firebase&logoColor=white)](https://firebase.google.com/)
[![PostgreSQL](https://img.shields.io/badge/postgres-%23316192.svg?style=for-the-badge&logo=postgresql&logoColor=white)](https://www.postgresql.org/)
[![Prisma](https://img.shields.io/badge/Prisma-3982CE?style=for-the-badge&logo=Prisma&logoColor=white)](https://www.prisma.io/)
[![SQLite](https://img.shields.io/badge/sqlite-%2307405e.svg?style=for-the-badge&logo=sqlite&logoColor=white)](https://www.sqlite.org/)
[![Docker](https://img.shields.io/badge/docker-%230db7ed.svg?style=for-the-badge&logo=docker&logoColor=white)](https://www.docker.com/)
[![Linux](https://img.shields.io/badge/Linux-FCC624?style=for-the-badge&logo=linux&logoColor=black)](https://www.linux.org/)
[![Nginx](https://img.shields.io/badge/nginx-%23009639.svg?style=for-the-badge&logo=nginx&logoColor=white)](https://nginx.org/)
[![Forgejo](https://img.shields.io/badge/Forgejo-%23F25923.svg?style=for-the-badge&logo=forgejo&logoColor=white)](https://forgejo.org/)
[![Git](https://img.shields.io/badge/git-%23F05033.svg?style=for-the-badge&logo=git&logoColor=white)](https://git-scm.com/)
[![n8n](https://img.shields.io/badge/n8n-EA4B71?style=for-the-badge&logo=n8n&logoColor=white)](https://n8n.io/)
[![OpenAI](https://img.shields.io/badge/OpenAI-%23412991.svg?style=for-the-badge&logo=openai&logoColor=white)](https://openai.com/)
---
### 💬 Let's connect!
[![Website](https://img.shields.io/badge/notthoff.org-My_Hub-222222?style=for-the-badge&logo=safari&logoColor=white)](https://notthoff.org)
[![LinkedIn](https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white)](https://www.linkedin.com/in/daniel-notthoff)
[![Bluesky](https://img.shields.io/badge/Bluesky-0285FF?style=for-the-badge&logo=bluesky&logoColor=white)](https://bsky.app/profile/thefraggle.bsky.social)
[![Instagram](https://img.shields.io/badge/Instagram-%23E4405F.svg?style=for-the-badge&logo=Instagram&logoColor=white)](https://instagram.com/dnotthoff)
---
### ✊ Stance
**#fckafd #noafd #fcknzs**
No place for intolerance. 🏳️‍🌈
---
*“Stay hungry, stay foolish (and drink more coffee).”* ☕️
[![Umami telemetry](https://telemetry.goork.de/p/huUqAzoUK)](https://telemetry.goork.de)