npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2025 – Pkg Stats / Ryan Hefner

eyedeeaphotos

v1.0.0-beta.8

Published

Eyedeea Photos is an app designed to bring forgotten memories back to life. It integrates with Synology Photos & any USB, HDD, SDD to display random photos from the collection

Downloads

88

Readme

Quality Gate Status CodeQL Build GitHub code size in bytes Lines of code GitHub repo size Node.js Package

Rediscover Your Photos

The Problem: Viewing and Sharing My Photos

Storing photos efficiently is great, but what's the use if we can't easily view and share them? I don’t want to just send folders of images via email—I want a seamless way to rediscover and showcase my memories.

The Solution: Eyedeea Photos

Eyedeea Photos

Eyedeea Photos is an app designed to bring forgotten memories back to life. It integrates with Synology Photos and any USB, HDD, or SSD to display random photos from your collection. Here’s how it works:

  • Scan: Interacts with Synology Photos API or the file system to extract metadata (filename, path, date taken, geolocation, album name, etc.).
  • Show: Displays random photos across devices.

I recommend to run it on a Raspberry Pi within your home network, making photos easily accessible on TVs, laptops, and mobile devices. However, it's a lightweight website (~125MB) that can be deployed on any laptop or desktop.

Eyedeea Photos:

Photos are displayed with the following details:

  • Title: Smartly formatted directory name.
  • Subtitle: Date taken and geolocation formatted as [Place, Country], if available.
  • Sub-subtitle: Name of the file.

The Player

  • You can trigger the scan manually by calling the API - POST /api/sources//scan. UI will be available soon!
  • Eyedeea Photos will re-scan every night at 1AM. You should turn this off if you do not modify your photo repository very frequently.
  • The server will serve 1 photo every minute.
  • You can download & perform other operations using the hidden toolbar.

Eyedeea Photos Demo

Technical Details:

  • Written in Node.js, with a Synology Photo API wrapper that scans the photo repository and extracts metadata into a flattened structure.
  • Storage-agnostic: Currently it supports two sources: (1) Synology Photos and (2) File System like USB, HDD. But it can easily extended to support other cloud providers like Google and Amazon Photos.

Feature Summary:

| Feature | Details | Technology | Status | |---------|---------|------------|--------| | Eyedeea Photos Player | Scan photos, random playback, filtered playback, search, configurable scan times, display duration, and logs. Read metadata (tags, taken-on date, geolocation) | Node.js, SQLite, PM2, Apache | Beta Testing | | Eyedeea Photos Management | An user interface to set up sources, configure filtered playback, search, configure scan time, statistics, view logs. Read metadata (tags, taken-on date, geolocation). Targeting for 2025 summer. Experts can use Postman and call Eyedeea Photos API to perform all these operations | Node.js, HTML, CSS | Incubation | | MetaFix | Update metadata (tags, taken-on date, geolocation) | Node JS, Python, ExifTool | Requested | | Duplicate Identification | Detect and mark duplicate photos | Python | Requested | | Out-of-Focus Detection | Identify and mark blurry photos | Python | Requested |

Scope and Considerations:

  • Not a photo management app: Users must handle organization, metadata updates, and deletions themselves.
  • No warranty: Users assume full responsibility for any issues.
  • Built for home networks: No authentication system is currently implemented.
  • Primary focus is display: Users must collect and arrange photos beforehand.

Current State:

  • MVP deployed on Raspberry Pi 5, regularly used on two Amazon FireStick devices via the Silk Browser. FireStick sleep timeout disabled using ADBLink.
  • Personal Results:
    • 42,000 photos identified, 12,000 duplicates removed
    • Corrected multiple album names (inferred from folder names, with formatting improvements)
    • Scanning 30,000 photos from Synology takes ~6 minutes. The same number from file system takes about ~3 minutes.
  • Family Impact:
    • Enjoy random memories resurfacing.
    • Easily spot incorrect albums and duplicates.
    • Discover surprising, long-forgotten moments.

Eyedeea Photos Diagram:

Eyedeea Photos Diagram

Folder Structure

My folder structure looks as follows, but the code should traverse through any folder structure. Synology Photos Folder Structure

KYP - Know Your Photos:

Many of us have multiple accounts across platforms, leading to scattered memories. You can download all your photos, clean and organize them, and then use Eyedeea Photos to view them. This also helps identify duplicates and correct album (directory) names, creating a better photo repository.

I migrated to NAS. But Why?

I migrated all my photos to Synology NAS. If these questions intrigue you, keep reading:

  • Where do you store your photos?
  • Do you know how many photos you have?
  • How often do you revisit your entire collection?
  • How much are you paying for cloud storage?

Most of us sync our photos to multiple cloud providers. They lure us in with free storage, then charge hefty fees as our collections grow. Their business model relies on:

  1. Leveraging our data to train AI models and develop new tools.
  2. Charging for storage.

Privacy is a major concern—I don’t want my photos stored with someone else.

My Concerns:

  • Privacy Risks: Cloud providers scan photos for metadata—faces, locations, timestamps. With this data, someone could map out my travel history.
  • Duplicate Photos: Multiple services prompt me to sync photos, creating redundancy.
  • Disorganization: Without proper management, photo collections become overwhelming.
  • Limited Sharing Options: I want seamless access across devices (TV, laptop, mobile).
  • Multiple Providers: Due to varying features and costs, a single provider isn’t reliable.

The Solution: Take Control of Your Photos

Local (or Network) Based Storage (NAS or external SDD, HDD, USB)

I built my own Network Attached Storage (NAS) using a Synology DS923+, ensuring data redundancy and high availability. My photos are accessible within my home network and remotely—without recurring fees or third-party dependencies.

Geo-Redundancy for Backup

To mitigate risks, we can use following two backup strategies:

  • Cloud Backup: Back up my NAS to affordable cloud storage like AWS S3 Deep Glacier ($0.0036 per GB/month). I am using this.
  • Physical Backup: Periodically copy encrypted backups onto external SSDs/HDDs and store them in a separate location.

I also declutter my collection by removing duplicates and keeping only meaningful photos. With 30,000 photos, I expect to stay under 1TB for years, making cloud backup affordable (~$50 per TB per year).

Conclusion

I end up setting up NAS. But, you can simply migrate your photos to an external SSD or HDD. But keep at least one replica and, if possible, a geo-redundant backup. With this setup, your photos are secure, organized, and easily viewable—providing peace of mind and a better way to enjoy memories. No hefty cloud fees, no privacy concerns—just our photos, our way.

Download Eyedeea Photos

Simple Installation

NOTE: After installing we will set up one source, this is temporary solution until we have Eyedeea Photos Management user interface is ready!.

| Windows | Linux | Mac | | ------- | ----- | --- | |Download Install Scripts and execute ./install.ps1 on Windows Powershell |Download Install Scripts and execute sudo ./install.sh on terminal | Use Expert |

Expert Installation

  • Install Node.js
  • Install npm pm2 globally
  • Install npm eyedeeaphotos
  • Configure pm2, optionally configure Apache HTTP server

NOTE: Remember he IP address of the server. Henceforth we will call this device as Eyedeea Photos server.

Access Eyedeea Photos

After installing, make sure that you triggered scan mannually. And once scanning is completed, you can access it.

  • On the server, access it using http://127.0.0.1:8080
  • On other devices, access it using server intranet IP Address e.g. http://192.168.1.112:8080
  • We can configure Apache server to access it without the port like http://192.168.1.112
  • We can also configure it to access it using hostname like http://eyedeea recommended

Detailed Features:

| Source Type | Extract Address | Cost | Explanation | | ----------- | --------------- | ---- | ----------- | |Synology NAS(DS923+) | Available |Free| Thanks to Synology, it comes with built in scanner to convert geo-location to address. |File System | Optional |About $5 per 1000 addresses. Details at Google|If configured, Eyedeea Photos will call Google Geolocation API only when (1) your photo meta data has geo location and (2) call only once per photo, even if you rescan multiple times. You will be directly paying to Google.

Credits: