Skip to content

aloglu/inkubator

Repository files navigation

Inkubator

Inkubator is a local-first desktop application for managing and cataloging fountain pen and ink collections. It provides a centralized interface for pen, ink, and swatch management, activity tracking, statistics, and static showcase generation from local data.

Live Showcase Demonstration | Latest Releases

Features

Collection Management

  • Pen Management: Maintain detailed pen records with structured fields such as manufacturer, model, nib material, tip size, nib type, filling system, condition, status, and additional details.
  • Ink Management: Maintain detailed ink records including brand, line, name, color values, bottle and sample metadata, inventory and ownership state, performance characteristics (shading, sheen, shimmer, flow, dry time), and additional details.
  • Swatch Management: Attach and manage multiple independent swatches per ink with per-swatch metadata, image support, and separate swatches for different testing conditions.
  • Dynamic Filtering: Filter and browse pens, inks, and swatches using their metadata to quickly locate specific items and hide irrelevant or empty views.
  • Stats Page: Get a clear overview of your collection with totals, category breakdowns, and activity-based metrics in one place.
  • Status and Activity Tracking: Track pen states (Inked, Cleaned, Resting) and keep an automatic log of additions, edits, and inking history, with optional inclusion in static website exports.
  • Built-In Color Assistance: Optionally use local image analysis to isolate subjects and extract dominant color values from swatch photos.
  • Dark Mode Support: Both the desktop application and the generated showcase include dark mode.
  • Local Persistence: All data is stored in a structured data.json file without mandatory account creation or cloud dependency.

Data Integrity & Portability

  • Manual and Automated Backups: Create backups on demand or rely on scheduled snapshots for both data and images.
  • Full Archive Export: A manual Export/Import feature allows for complete library migration between devices by bundling data and media into a single portable archive.

Static Site Generation (SSG)

  • Showcase Export: The application generates a responsive, read-only static website from the local database.
  • Deployment: The showcase/ directory is portable and compatible with any static hosting provider (e.g., GitHub Pages, Vercel, S3).

Technical Stack

  • Core Runtime: Electron / Node.js
  • Frontend: Vanilla JavaScript / CSS3
  • Image Processing: Sharp (WebP optimization, metadata-aware rotation)
  • ML Inference: ONNX Runtime
  • Filesystem: fs-extra for persistent JSON storage

Getting Started

Binary Execution

Pre-compiled binaries for supported operating systems are available via the GitHub Releases page.

Linux Packages

Linux release artifacts are available as DEB, RPM, and Flatpak packages.

Install or remove the package with the tool that matches the artifact you used:

# DEB
sudo apt install ./Inkubator-<version>-linux-x64.deb
sudo apt remove inkubator

# RPM
sudo dnf install ./Inkubator-<version>-linux-x64.rpm
sudo dnf remove inkubator

# Flatpak
flatpak install --user ./Inkubator-<version>-linux-x64.flatpak
flatpak uninstall --user com.inkubator.app

Source Build & Development

Prerequisites: Node.js (v18.0.0+) and npm (v9.0.0+).

  1. Repository Initialization:

    git clone https://github.com/aloglu/inkubator.git
    cd inkubator
  2. Dependency Installation:

    npm install
  3. CLI Commands:

    • npm start: Initialize the Electron management interface.
    • npm run showcase: Launch a local development server for the static showcase.
    • npm run build:linux:flatpak: Build a Linux Flatpak package artifact (run on Linux with Flatpak tooling available).

License

Released under the MIT License.

About

Inkubator is a local-first application for tracking fountain pens, inks, and swatches

Topics

Resources

License

Stars

Watchers

Forks

Contributors