<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Muhammet Şafak — Portfolio — Shipped Work</title><description>Shipped SaaS products, open-source packages and content publications. What each project does, what it runs on and whether it is still maintained.</description><link>https://muhammetsafak.com/</link><language>en-US</language><lastBuildDate>Wed, 23 Sep 2026 00:00:00 GMT</lastBuildDate><managingEditor>info@muhammetsafak.com (Muhammet Şafak)</managingEditor><atom:link href="https://muhammetsafak.com/portfolio/rss.xml" rel="self" type="application/rss+xml"/><item><title>academia.sh</title><link>https://muhammetsafak.com/portfolio/academia/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/academia/</guid><description>academia.sh is a learning platform with free, no-signup lessons that never separates a lesson&apos;s theory from a real problem from the field. It&apos;s presented through a curriculum-course-topic-lesson hierarchy, progress and quizzes are measured per lesson without splitting theory from problem, and full-text search runs on Postgres; the course-end exam, certificates and study assistant sit in a Pro tier. Content lives in a separate GitHub repo; the first field is computer science, and the model was designed multidisciplinary from the start.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/academia.md" rel="alternate" type="text/markdown"/><category>publication</category><category>Laravel</category><category>PHP</category><category>Livewire</category><category>Blade</category><category>Tailwind</category><category>PostgreSQL</category><category>Redis</category><category>Filament</category><category>Pest</category></item><item><title>Devrazzi</title><link>https://muhammetsafak.com/portfolio/devrazzi/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/devrazzi/</guid><description>Devrazzi is a content product that leaves the signal/noise problem in developer news not to a human editor but to a layered model pipeline. It collects sources, runs a first pass locally with Ollama, hands off whatever clears the bar to a step-specific model among DeepSeek/Gemini/OpenAI/Claude, and produces and publishes a TR/EN synthesis end to end. Live on web and iOS; full article extraction isn&apos;t there yet, and that&apos;s kept open as a known limit.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/devrazzi.md" rel="alternate" type="text/markdown"/><category>publication</category><category>TypeScript</category><category>Node.js</category><category>Prisma</category><category>PostgreSQL</category><category>Ollama</category><category>DeepSeek</category><category>Gemini</category><category>OpenAI</category><category>Claude</category><category>Fastify</category><category>Astro</category></item><item><title>Garajdaş</title><link>https://muhammetsafak.com/portfolio/garajdas/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/garajdas/</guid><description>Garajdaş is a community platform where every car make-and-model has its own club, keeping internal-combustion and electric vehicles under one roof. A single API schema is shared by the web (Next.js) and mobile (Expo/React Native) clients, the design system is defined in one file and synced by hand. The MVP phases are closed, the API has 97 tests; the platform is live.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/garajdas.md" rel="alternate" type="text/markdown"/><category>publication</category><category>Laravel</category><category>PHP</category><category>PostgreSQL</category><category>Next.js</category><category>React</category><category>Tailwind CSS</category><category>Expo</category><category>React Native</category><category>TypeScript</category></item><item><title>Qurandia</title><link>https://muhammetsafak.com/portfolio/qurandia/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/qurandia/</guid><description>Qurandia is a free, open reading and research resource that matches hadith datasets that don&apos;t know each other, trusting not a number but the letter-level fingerprint of the text itself; Quran- and hadith-centred. Translation, word-by-word analysis, tafsir, asbab al-nuzul, the hadith corpus and search all sit under one roof; direct number matching is only 0-14% consistent, while text fingerprinting pushes matching up to 91-99%. Turkish hadith translation coverage stands at 83% today.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/qurandia.md" rel="alternate" type="text/markdown"/><category>publication</category><category>Laravel</category><category>PHP</category><category>Livewire</category><category>Alpine.js</category><category>Tailwind</category><category>PostgreSQL</category><category>Redis</category><category>Horizon</category><category>Filament</category><category>Pest</category></item><item><title>SilkWard</title><link>https://muhammetsafak.com/portfolio/silkward/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/silkward/</guid><description>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.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/silkward.md" rel="alternate" type="text/markdown"/><category>hobby</category><category>TypeScript</category><category>Next.js</category><category>React</category><category>Expo</category><category>React Native</category><category>Vitest</category></item><item><title>SysAdmin Crisis</title><link>https://muhammetsafak.com/portfolio/sysadmincrisis/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/sysadmincrisis/</guid><description>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.</description><pubDate>Wed, 23 Sep 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/sysadmincrisis.md" rel="alternate" type="text/markdown"/><category>hobby</category><category>TypeScript</category><category>Next.js</category><category>React</category><category>Expo</category><category>React Native</category><category>Zustand</category></item><item><title>Ragmux</title><link>https://muhammetsafak.com/portfolio/ragmux/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/ragmux/</guid><description>Ragmux is a self-hosted, single-binary AI gateway that sits between your application and providers like OpenAI, Anthropic, Gemini, DeepSeek and Ollama. It exposes one OpenAI-compatible API, injects RAG context from the documents you upload into every request of a project that has a store linked, and keeps provider credentials encrypted and away from the application. Users, connections, projects, documents, vectors and metrics all live in one PostgreSQL with pgvector — no Redis, no separate vector database.</description><pubDate>Fri, 18 Sep 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/ragmux.md" rel="alternate" type="text/markdown"/><category>flagship</category><category>Go</category><category>PostgreSQL</category><category>pgvector</category><category>ParadeDB</category><category>Docker</category><category>OpenAI</category><category>Anthropic Claude</category><category>Google Gemini</category><category>DeepSeek</category><category>Ollama</category><category>Prometheus</category><category>OpenTelemetry</category><category>Cohere</category><category>Voyage AI</category></item><item><title>Contextator</title><link>https://muhammetsafak.com/portfolio/contextator/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/contextator/</guid><description>Contextator is a self-hosted, multi-tenant documentation server that takes a project&apos;s documentation from wherever it already lives — a mounted folder, a git repository, an uploaded archive, an Obsidian vault or a Notion workspace — and makes it searchable behind a single MCP endpoint. Every project gets its own URL and its own document collection; embeddings are generated on the machine&apos;s CPU by default, and the documents never reach a third party.</description><pubDate>Thu, 17 Sep 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/contextator.md" rel="alternate" type="text/markdown"/><category>flagship</category><category>TypeScript</category><category>Node.js</category><category>Fastify</category><category>PostgreSQL</category><category>pgvector</category><category>Drizzle ORM</category><category>MCP</category><category>transformers.js</category><category>Docker</category><category>Notion API</category><category>Vitest</category><category>Biome</category></item><item><title>Regnarium</title><link>https://muhammetsafak.com/portfolio/regnarium/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/regnarium/</guid><description>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.</description><pubDate>Sun, 13 Sep 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/regnarium.md" rel="alternate" type="text/markdown"/><category>hobby</category><category>TypeScript</category><category>Next.js</category><category>React</category><category>React Native</category><category>Expo</category><category>Vitest</category><category>MDX</category><category>IndexedDB</category><category>CSS Modules</category></item><item><title>QueryProxy</title><link>https://muhammetsafak.com/portfolio/queryproxy/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/queryproxy/</guid><description>QueryProxy is a self-hosted query approval portal I built so developers can reach production data without ever holding production credentials. Submitted SQL is parsed and guarded, runs on a queue once a DBA approves it, is masked as the results are written to disk, and every step lands in an immutable audit record.</description><pubDate>Tue, 08 Sep 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/queryproxy.md" rel="alternate" type="text/markdown"/><category>flagship</category><category>PHP</category><category>Laravel</category><category>Livewire</category><category>Blade</category><category>Tailwind CSS</category><category>Vite</category><category>CodeMirror</category><category>phpMyAdmin SQL Parser</category><category>Pest</category><category>Docker</category><category>GitHub Actions</category><category>PostgreSQL</category><category>MySQL</category><category>MariaDB</category><category>SQL Server</category><category>SQLite</category></item><item><title>BabelQueue</title><link>https://muhammetsafak.com/portfolio/babelqueue/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/babelqueue/</guid><description>BabelQueue is a language-agnostic message queue standard that lets services written in different languages share the same queue without getting trapped by serialization lock-in. Instead of language-specific formats like PHP&apos;s serialize(), it defines a strict JSON envelope — frozen at schema_version 1 — that every language can read natively. It runs on Redis and RabbitMQ with no sidecar or broker plugin, with an overhead target of under 2%.</description><pubDate>Mon, 15 Jun 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/babelqueue.md" rel="alternate" type="text/markdown"/><category>flagship</category><category>JSON</category><category>Redis</category><category>RabbitMQ</category><category>PHP</category><category>Python</category><category>Go</category><category>Node.js</category><category>Java</category><category>.NET</category></item><item><title>sakinkal</title><link>https://muhammetsafak.com/portfolio/sakinkal/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/sakinkal/</guid><description>sakinkal is a rational, evidence-based, and offline-accessible preparedness resource that strips crisis readiness in Turkey of fear and hype. It distills complex information into clear steps, checklists, and guides anyone can apply. &apos;No panic, just preparedness.&apos; — a non-profit, ad-free, mission-driven publication.</description><pubDate>Sat, 30 May 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/sakinkal.md" rel="alternate" type="text/markdown"/><category>publication</category><category>Astro</category><category>Tailwind CSS</category><category>TypeScript</category><category>Markdown</category><category>Pagefind</category><category>Cloudflare Pages</category></item><item><title>SignalLock</title><link>https://muhammetsafak.com/portfolio/signallock/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/signallock/</guid><description>SignalLock is a privacy-focused menu bar app that automatically locks your computer when you walk away from it — using a Bluetooth device you carry with you.</description><pubDate>Wed, 20 May 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/signallock.md" rel="alternate" type="text/markdown"/><category>hobby</category><category>Swift</category><category>SwiftUI</category><category>CoreBluetooth</category><category>C#</category><category>.NET 8</category><category>WinForms</category></item><item><title>CommitBrief</title><link>https://muhammetsafak.com/portfolio/commitbrief/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/commitbrief/</guid><description>CommitBrief is a provider-agnostic Go CLI tool that performs LLM-powered local code review on git diffs. It reviews any scope — from staged/unstaged changes to a single commit to PR-style three-dot ranges — without leaving the terminal, without leaking the diff, and with customizable project rules.</description><pubDate>Tue, 07 Apr 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/commitbrief.md" rel="alternate" type="text/markdown"/><category>flagship</category><category>Go</category><category>Cobra</category><category>go-git</category><category>Anthropic Claude</category><category>OpenAI</category><category>Google Gemini</category><category>Ollama</category><category>YAML</category><category>Goreleaser</category><category>Astro</category><category>Tailwind CSS</category></item><item><title>TB1MSK</title><link>https://muhammetsafak.com/portfolio/tb1msk/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/tb1msk/</guid><description>TB1MSK is my call sign as a licensed amateur radio operator and my personal station/identity site; in its second phase, a blog where I produce Turkish content about amateur radio. From my station based in Çatalca/İstanbul (KN41ff), I use FM, repeaters, and APRS on the VHF/UHF bands, focusing on emergency communications and portable operation. At the intersection of radio and software: &apos;Signal in the air, code on the desk.&apos;</description><pubDate>Fri, 20 Mar 2026 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/tb1msk.md" rel="alternate" type="text/markdown"/><category>publication</category><category>Astro</category><category>TypeScript</category><category>Markdown</category><category>Cloudflare Pages</category></item><item><title>Parantaj</title><link>https://muhammetsafak.com/portfolio/parantaj/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/parantaj/</guid><description>A personal and corporate financial management platform. It offers income-expense tracking, budget planning, detailed reporting, and multi-account management.</description><pubDate>Fri, 18 Oct 2024 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/parantaj.md" rel="alternate" type="text/markdown"/><category>saas</category><category>PHP</category><category>Laravel</category><category>Go</category><category>PostgreSQL</category><category>Redis</category><category>RabbitMQ</category><category>Expo</category><category>React Native</category><category>Vite</category><category>iOS</category><category>Android</category></item><item><title>Looplio</title><link>https://muhammetsafak.com/portfolio/looplio/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/looplio/</guid><description>Looplio — a recurring automation platform (Web + iOS + Android) that turns repeating tasks, maintenance, and checks into reusable templates and automatically generated checklists.</description><pubDate>Sun, 01 Jan 2023 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/looplio.md" rel="alternate" type="text/markdown"/><category>saas</category><category>PHP</category><category>Laravel</category><category>Go</category><category>PostgreSQL</category><category>Redis</category><category>Expo</category><category>React Native</category><category>iOS</category><category>Android</category></item><item><title>Erkekse</title><link>https://muhammetsafak.com/portfolio/erkekse/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/erkekse/</guid><description>A platform dedicated to fashion, style, grooming, lifestyle, and health advice for men. Through a subscription system, it published a monthly online magazine alongside subscriber-exclusive content and comprehensive guides.</description><pubDate>Fri, 30 Dec 2022 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/erkekse.md" rel="alternate" type="text/markdown"/><category>publication</category><category>PHP</category><category>WordPress</category><category>MariaDB</category><category>Linux</category></item><item><title>InitPHP</title><link>https://muhammetsafak.com/portfolio/initphp/</link><guid isPermaLink="true">https://muhammetsafak.com/portfolio/initphp/</guid><description>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.</description><pubDate>Fri, 12 Aug 2022 00:00:00 GMT</pubDate><atom:link href="https://muhammetsafak.com/portfolio/initphp.md" rel="alternate" type="text/markdown"/><category>hobby</category><category>Composer</category><category>Git</category><category>PHPUnit</category><category>PHP</category></item></channel></rss>