Edd Mann
banner
eddmann.com
Edd Mann
@eddmann.com
today i built: obsidian-mcp

moved from obsidian sync to git vault specifically for remote lambda deployment

claude/chatGPT can now read/edit/search my notes from anywhere
automatic git commits = full audit trail

typescript + git + lambda

github.com/eddmann/obsidian-mcp

#todayibuilt #obsidian
GitHub - eddmann/obsidian-mcp: MCP server for git-backed Obsidian vaults. Access and manage notes through Claude, ChatGPT, and other LLMs with automatic git sync. Supports local (stdio/HTTP) and remote (AWS Lambda) deployment.
MCP server for git-backed Obsidian vaults. Access and manage notes through Claude, ChatGPT, and other LLMs with automatic git sync. Supports local (stdio/HTTP) and remote (AWS Lambda) deployment. -...
github.com
November 8, 2025 at 12:01 PM
today i built: whatsapp-mcp

credit to @LukeHarries_ for the initial version 🙏

explored go for mcp:
- unified multidevice API + server
- revised tool api
- fts5 search, fuzzy matching
- docker

go + sqlite + whatsapp = 😎

github.com/eddmann/whatsapp-mcp

#todayibuilt #golang
GitHub - eddmann/whatsapp-mcp: MCP server enabling LLMs to interact with WhatsApp - send messages with fuzzy name matching, full-text search across conversations, manage chats and contacts, and download media
MCP server enabling LLMs to interact with WhatsApp - send messages with fuzzy name matching, full-text search across conversations, manage chats and contacts, and download media - eddmann/whatsapp-mcp
github.com
November 7, 2025 at 8:36 PM
today i built: strava-mcp

wanted to chat with my workouts instead of staring at dashboards

"am i overtraining?" answer...
"how's my mileage?" insights...

wrote about it: eddmann.com/posts/running-mcps-everywhere-chatting-with-my-workouts

github.com/eddmann/strava-mcp

#todayibuilt #running #mcp
GitHub - eddmann/strava-mcp: MCP server enabling LLMs to interact with the Strava API - activities, segments, routes, and training analysis
MCP server enabling LLMs to interact with the Strava API - activities, segments, routes, and training analysis - eddmann/strava-mcp
eddmann.com
November 6, 2025 at 3:54 PM
The BEAM is more than a runtime - it’s #Erlang’s real superpower.

@shawnmc.cool explains how the BEAM isn’t just a VM, but an operating system for concurrency. Every process runs in complete isolation, enabling massive fault tolerance and reliability.

🎧 compiledconversations.com/12/%EF%BF%BC
November 5, 2025 at 8:31 PM
Concurrency without the chaos. ⚡️

@shawnmc.cool unpacks the power of OTP - #Erlang’s “standard library for concurrency.”
Learn how it turns thousands of lightweight processes into reliable, self-healing systems that just work.

🎧 Listen now: compiledconversations.com/12/%EF%BF%BC
November 4, 2025 at 8:31 PM
Failure isn’t the enemy - it’s part of the design. ⚙️

In a recent episode of Compiled Conversations, @shawnmc.cool broke down Erlang’s “let it crash” philosophy - why letting things fail can actually make your systems more reliable, not less.

🎧 Listen now: compiledconversations.com/12/
November 3, 2025 at 6:52 PM
Ep. 13: Building on the BEAM, Part 2 w/ @shawnmc.cool

We continue our chat with exploration of #Elixir's ecosystem:
- Phoenix LiveView & real-time apps
- Ecto's composable queries
- Nerves for IoT & embedded systems
- Nx, LiveBook & Tidewave

🎧 compiledconversations.com/13/
Building on the BEAM: Exploring Erlang and Elixir, Part 2 with Shawn McCool - Compiled Conversations
We continue our conversation with Shawn McCool, exploring the Elixir ecosystem including Phoenix's LiveView, Ecto's composable queries, Nerves for IoT, and LiveBook. We discuss when to use built-in…
compiledconversations.com
November 2, 2025 at 2:55 PM
@simonwillison.net I’m curious about the thread connecting Django, Lanyrd, Datasette, and your LLM work. 20+ years of building tools + documenting it all.
How has your thinking evolved? What’s carried through?
Would you be up for discussing this?
compiledconversations.com
November 1, 2025 at 8:31 PM
Reposted by Edd Mann
I was recently on a podcast discussing Erlang / Elixir and the significant advantages that its runtime environment can bring over the industry status quo.

I worked to specifically providing insight for my PHP / Java / C# experienced friends.

bsky.app/profile/eddm...
Ep. 12: Building on the BEAM, Part 1 w/ @shawnmc.cool

Why do #Erlang & #Elixir excel at distributed systems? We explore:
• Process isolation & concurrency
• Actor model & message passing
• "Let it crash" philosophy
• Hot code upgrades

🎧 compiledconversations.com/12/
October 28, 2025 at 9:10 AM
Ep. 12: Building on the BEAM, Part 1 w/ @shawnmc.cool

Why do #Erlang & #Elixir excel at distributed systems? We explore:
• Process isolation & concurrency
• Actor model & message passing
• "Let it crash" philosophy
• Hot code upgrades

🎧 compiledconversations.com/12/
October 24, 2025 at 1:07 PM
Ep. 11: The Life of a PostgreSQL Table, Part 2 w/ Bruce Momjian

Continuing our deep dive into a table's lifecycle in #Postgres, from updates to table clean-up. We cover
- MVCC & transaction isolation
- Table alterations & performance
- Vacuuming & WAL

🎧 compiledconversations.com/11/
The Life of a PostgreSQL Table, Part 2 with Bruce Momjian - Compiled Conversations
Bruce Momjian returns to complete our journey through a PostgreSQL table's lifecycle. We explore how Postgres handles updates, table alterations, row deletions, and table drops - diving deep into…
compiledconversations.com
October 13, 2025 at 4:42 PM
Been using #macOS `caffeinate` a lot lately, so I built a tiny #Swift menu bar app around it.

CaffeineMate keeps your Mac awake with one click - set timers (15m, 1h, 3h, custom), keep the display on, and toggle it all with a global shortcut.

eddmann.com/CaffeineMate/
CaffeineMate - Keep Your Mac Awake
Free macOS menu bar app that prevents your Mac from sleeping. One-click control, duration timers, and keyboard shortcuts. Native & lightweight.
eddmann.com
October 8, 2025 at 2:39 PM
Context is everything when working with LLMs.

In episode 7 of Compiled Conversations, @ashleyhindle.com explains why managing context windows is critical to getting quality, reliable output.

🎧 Listen now: compiledconversations.com/7/

👉 Subscribe on Apple Podcasts or Spotify.
October 7, 2025 at 8:45 AM
Zero-shot, one-shot, few-shot - what do they really mean when prompting large language models?

In episode 7 of Compiled Conversations, @ashleyhindle.com breaks down each one.

🎧 Listen now: compiledconversations.com/7/

👉 Don’t miss future episodes - subscribe on Apple Podcasts or Spotify.
October 5, 2025 at 6:18 PM
LLM agents get talked about a lot - but what are they, really?

In Episode 7 of Compiled Conversations, @ashleyhindle.com strips away the hype and explains how agents are, at their core, just a simple loop.

🎧 Listen now: compiledconversations.com/7/

👉 Subscribe on Apple Podcasts or Spotify
October 4, 2025 at 6:11 PM
In Functional Programming, functions aren't just helpers - they are the building blocks.

In the latest episode, @scottwlaschin.bsky.social breaks down how FP uses functions to compose behaviour, control flow, and model systems in a different way from OOP.

🎧 compiledconversations.com/9/
October 3, 2025 at 6:26 PM
Exploring #MCP and @laravel.com MCP by building a @plex.tv integration 🎬

AI assistants now understand where I am in a film through subtitle analysis.

'What have I missed?' gets context-aware answers without spoilers.

Write up: eddmann.com/posts/contex...
Repo: github.com/eddmann/plex...
October 3, 2025 at 4:23 PM
Laravel Boost makes AI-assisted development faster and more reliable. ⚡

@ashleyhindle.com explains how it provides tested guidelines, its own MCP server, and version-specific docs for Laravel projects.

🎧 Listen now: compiledconversations.com/7/

👉 Subscribe on Apple Podcasts or Spotify for more.
October 2, 2025 at 6:03 PM
Ep. 10: The Life of a PostgreSQL Table, Part 1 w/ Bruce Momjian

What really happens when you create, insert, or query in #Postgres?
We dig into:
- Storage internals (pages, TOAST)
- MVCC & WAL
- Index types & use cases
- Query planning & joins

🎧 compiledconversations.com/10/
The Life of a PostgreSQL Table, Part 1 with Bruce Momjian - Compiled Conversations
Bruce Momjian takes us on a deep dive into the lifecycle of a PostgreSQL table. We explore how tables are created, how data is inserted and stored, and how queries work - from physical storage and…
compiledconversations.com
October 1, 2025 at 8:14 AM
@den.dev Big fan of spec-kit and your YouTube content! I know you must be super busy, but would you be interested in joining compiledconversations.com to chat about spec-driven development, spec-kit, and agentic tooling sometime?
Compiled Conversations
In-depth conversations with the people shaping software and technology. Each episode explores real-world experiences, technical challenges, and the thinking behind the tools, systems, and decisions th...
compiledconversations.com
September 30, 2025 at 10:22 AM
Error handling often clutters code.
Fortunately, functional programming offers a more elegant way.

@scottwlaschin.bsky.social explains the 'two-track' model 🚂 (railway-oriented programming) - keeping the success path clean while ensuring errors are always handled.

🎧 compiledconversations.com/9/
September 29, 2025 at 6:26 PM
Programming isn't one-size-fits-all.

In Episode 9 of Compiled Conversations, @scottwlaschin.bsky.social makes the case for being multi-paradigm - using the right language for the right job. Just like a tradesperson has more than one tool, a programmer should too.

🎧 compiledconversations.com/9/
September 28, 2025 at 6:26 PM
The Reverse Conway Maneuver flips the script on Conway’s Law.

In Episode 8 of Compiled Conversations, Scott explains how aligning teams with domains helps avoid conflicts - and why the number of teams you have inevitably shapes your system’s architecture.

🎧 Listen now: compiledconversations.com/8/
September 27, 2025 at 8:27 PM
Garbage in, garbage out. 🗑️

In Episode 8 of Compiled Conversations, Scott explains why good design starts with good inputs - and why even the best code can’t fix bad ones.

🎧 Listen now: compiledconversations.com/8/

👉 Subscribe on Apple Podcasts or Spotify so you don’t miss future episodes.
September 25, 2025 at 6:26 PM
🎉 Ep. 9: Domain Modeling Made Functional, Part 2 w/ @scottwlaschin.bsky.social

How do #DDD & FP fit together?

We cover:
- What makes a language functional
- FP-style error handling 🚂
- Composable data types for domain modeling
- Pipelines & workflow modeling

🎧 compiledconversations.com/9/
Domain Modeling Made Functional, Part 2 with Scott Wlaschin - Compiled Conversations
In this episode, Scott Wlaschin shows how functional programming concepts can enhance domain-driven design, sharing practical techniques for building more expressive, testable domain models using…
compiledconversations.com
September 24, 2025 at 12:04 PM