mentor.work / home

Notes from building
software in Europe.

Code, SaaS, AI systems, backend engineering, startup ideas, daily developer life, and practical lessons from real projects.

Recent Writing All posts (RSS) →
Thinking

Reddit discussions feel increasingly hard to follow

Lately I’ve been spending more time reading Reddit during outages, breaking product updates, infrastructure incidents, and AI discussions. One thing I keep noticing: The same conversation fragments into dozens of s

Builds

How I Cut My LLM Bill to Near Zero Without Changing a Single Line of App Code

I run 14 editorial AI workspaces. Here's how I added a self-hosted LLM proxy to cut paid API calls with no changes to my app code.

Thinking

🚀 Turn ~800M Free AI Tokens Into a Single OpenAI API

Just discovered a really clever open-source project: FreeLLMAPI The idea is simple but the execution is clean — aggregate free tiers from 14 major AI providers: Google Gemini · Groq · Cerebras &middot

Thinking

Building an AI Incident Analyst with Gemma 4 for Real-World Alert Fatigue

I’ve been building an automated alert and incident platform for websites and backend services recently. The original goal was simple: receive alerts from applications group duplicate incidents send notificati

Builds

Idea2Post Agent Mode: turning a working content SaaS into an autonomous operator with Hermes

What I Built Idea2Post Agent Mode — a new autonomous "Agent" tab inside an already-shipped content SaaS (idea2post.app). The existing product is a one-shot generator: paste an idea, get hooks/blog/social posts

Guides

Complete Hermes Agent Setup Guide

Complete Hermes Agent Setup Guide for Idea2Post & mentor.worrk Hermes Agent is one of the fastest ways to turn an AI content tool into an autonomous workflow system. Instead of generating content one prompt at a time

Daily Journal All entries →

Shipped mentor.work today. Same blog stack as the other 13 workspaces of news.melyx.id — Caddy → Apache 8088 → MariaDB. AI-friendly endpoints: /llms.txt, /rss.xml, /api/articles, /api/articles/<slug>/ai.

Projects things I've shipped and keep running
idea2post.app PHP · Node.js

Content generation SaaS. One topic → blog post, LinkedIn draft, Twitter thread, email sequence, video script — in one pass. Built around a multi-format prompt pipeline with per-site AI key routing and automatic fallback across 14 OpenAI accounts + Anthropic + Groq.

multi-model routingcontent pipelineSSO
live
idea2viral.com Node.js · Python

Automated short-form video pipeline. Topic → AI script → TTS voice → rendered 9:16 video → YouTube upload. The interesting part is the render worker — FFmpeg compositing driven by a BullMQ queue. Handles concurrent jobs per workspace with isolated OAuth tokens.

FFmpeg pipelineBullMQYouTube APITTS
live
convertlyx.app Node.js · PostgreSQL

Affiliate link management SaaS. Cloaking, click tracking, geo-redirect, split-testing, and a dashboard that pulls real conversion data. Nothing fancy — just a dead simple tool that does one job without adding a CRM nobody asked for.

affiliate trackinggeo-redirectanalytics
live
radar.mentor.work Node.js · PostgreSQL · Redis

Discussion tracker across Reddit, HN, forums, and RSS. Crawls sources, groups threads into semantic clusters using TF-IDF hashing (no embedding API), and generates cluster summaries with Groq's free tier. Ships as open source — see repo below.

TF-IDF clusteringArctic Shift APIBullMQopen source
live

Repos I've pushed publicly — mix of tools, API examples, and challenge submissions. Nothing heroic, just code that solved a specific problem and seemed worth sharing.

discussion-radar JavaScript

Multi-source discussion tracker with in-memory TF-IDF clustering. Reddit via Arctic Shift (no API key), semantic grouping without embedding quotas, Groq for summaries.

The clustering threshold decision (0.25 cosine similarity) took longer than building the whole thing. Too high → everything is its own cluster. Too low → unrelated threads merge. Ship it and tune.

prompt-to-api Python

Describe an API in plain English, get working FastAPI code back. Runs against any OpenAI-compatible endpoint including local Ollama.

Useful for rapid prototyping where you know what you want but don't want to type boilerplate. Not production — treat it as a scaffold starting point.

youtube-to-notebooklm Python

Scrapes transcripts from an entire YouTube channel and packages them for NotebookLM import. No YouTube API key needed.

Built because manually adding 80 videos one by one is not something I was willing to do. Four hours to write, saves the problem forever.

alert-service TypeScript

AI incident analyst built on NestJS + Prisma + HuggingFace Inference Router. Reads logs, identifies anomaly patterns, drafts a root-cause summary. Gemma 4 challenge submission.

HuggingFace Inference Router was the interesting choice here — routes to the best available model without hard-coding a provider. Actual production would need tighter prompt guardrails.

idea2post-agent PHP

Adds autonomous agent mode to an existing content SaaS — ~600 lines, no architecture rewrite. Hermes orchestration challenge submission.

The constraint of not touching the core SaaS codebase made this interesting. Grafted agent planning on top of existing endpoints rather than rebuilding from scratch.

reddit-content-assistant JavaScript

Manual-trigger cross-poster from blog to Reddit. One command, one post. No automation, no scheduler — intentionally stays manual to avoid looking like a bot.

The right tool here is the dumbest one that works. Spent ten minutes writing it and it does exactly what it needs to do, nothing more.

idea-to-post Examples

SDK examples and integration recipes for the Idea2Post API — PHP, Python, Node. Topic → 10 content formats. Free tier: 3 requests/day.

Exists because "read the docs" only goes so far. Working code in your stack is always faster than translating curl examples.

idea-to-viral Examples

Integration examples for the Idea2Viral video API. Covers job submission, status polling, download, and the optional auto-publish to YouTube flow.

The async job pattern is the part people always get wrong the first time — this shows the correct poll-then-download loop.

aigatecloud-api-examples Examples

Working code examples for AIGate image and video generation API — covers Flux, SDXL, Kling, and WanVideo endpoints.

Image generation APIs all have slightly different async patterns. This normalises the differences so you can swap models without rewriting the polling logic.

"Good software feels calm. The best tools reduce stress instead of adding more interfaces."