Skip to content

Instantly share code, notes, and snippets.

@esausilva
Last active June 22, 2026 23:54
Show Gist options
  • Select an option

  • Save esausilva/6116beb9a285decfc8f8e6cdda5dd527 to your computer and use it in GitHub Desktop.

Select an option

Save esausilva/6116beb9a285decfc8f8e6cdda5dd527 to your computer and use it in GitHub Desktop.
Synology Photos Slideshow Ecosystem

Synology Photos Slideshow Ecosystem

Synology API SDK

A C# SDK for interacting with Synology DiskStation Manager (DSM) APIs.

Engineered a multi-targeted library supporting .NET 9 and .NET 10, ensuring cross-version compatibility and modern standards.

Tech: C#, TUnit, GitHub Actions (CI/CD)

Repo: https://github.com/esausilva/synology-api-sdk
NuGet: https://www.nuget.org/packages/Synology.API.SDK

Synology Photos Slideshow API

Developed an API that automates random image retrieval, WebP transformation, generates thumbnails, metadata extraction (GPS and Timestamp) from Synology NAS devices leveraging my custom Synology API SDK and SignalR implementation for real-time client communication.

Tech: .NET 10, Redis, SignalR, Docker, TUnit
Patterns: Background processing, image conversion, file watcher, scheduled jobs, real-time communication with client

Repo: https://github.com/esausilva/synology-photos-slideshow-api
Docker Image: https://hub.docker.com/r/esausilva/synology.photos.slideshow.api

Synology Photos Slideshow Client

Built a responsive React/TanStack Start client utilizing Server-Side Rendering (SSR) and SignalR for real-time state synchronization across devices.

Tech: React/TypeScript, TanStack Start, CSS Modules, SignalR, Biome, IndexedDB, Docker
Patterns: SSR, real-time communication with the API.

Repo: https://github.com/esausilva/synology-photos-slideshow-client
Docker Image: https://hub.docker.com/r/esausilva/synology.photos.slideshow.client

Real-World Application

Deployed the API and web client directly on a Synology NAS, utilizing a Raspberry Pi setup in my coffee nook to access the application and display a scheduled, weekly auto-refreshing slideshow.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment