惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
IT之家
IT之家
博客园_首页
人人都是产品经理
人人都是产品经理
博客园 - Franky
I
InfoQ
Recent Announcements
Recent Announcements
P
Proofpoint News Feed
H
Hackread – Cybersecurity News, Data Breaches, AI and More
GbyAI
GbyAI
大猫的无限游戏
大猫的无限游戏
aimingoo的专栏
aimingoo的专栏
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
月光博客
月光博客
Microsoft Security Blog
Microsoft Security Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
B
Blog RSS Feed
MongoDB | Blog
MongoDB | Blog
雷峰网
雷峰网
博客园 - 聂微东
N
Netflix TechBlog - Medium
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
The GitHub Blog
The GitHub Blog
D
Docker

Immich Blog

v3.2.0 | Immich Blog August recap | Immich Blog July recap | Immich Blog Release v3.1.0 | Immich Blog Release v3.0.0 | Immich Blog Migrating to v3 | Immich Blog June recap | Immich Blog FUTO — 2 years later | Immich Blog May recap | Immich Blog April recap | Immich Blog Awesome Immich | Immich Blog Release v2.7.0 | Immich Blog March recap | Immich Blog Release v2.6.0 | Immich Blog February recap | Immich Blog Building the Immich editor | Immich Blog January recap | Immich Blog Release v2.5.0 | Immich Blog 2025 - A year in review | Immich Blog Release v2.4.0 | Immich Blog November recap | Immich Blog Release v2.3.0 | Immich Blog October recap | Immich Blog Release v2.2.0 | Immich Blog Google flags Immich sites as dangerous | Immich Blog Release v2.1.0 | Immich Blog Release v2.0.0 - Stable 🎉 | Immich Blog Release v2.0.0 - Stable 🎉 | Immich Blog Sync v2 | Immich Blog Cursed knowledge | Immich Blog
New Svelte component library | Immich Blog
Jason Rasmus · 2025-09-25 · via Immich Blog
  • Blog
  • New Svelte component library

September 25, 2025

— Jason Rasmussen

Learn more about the Svelte component library that is powering this and other Immich websites.


Last November (2024), I took on the task of trying to build a standalone Svelte component library, based on the Immich web application. It was a long, time consuming task, especially since I had no prior experience writing a Svelte component library, or any component library for that matter. Now, almost a year later, the library is being used across a variety of projects, and more and more code in the main Immich web application is being migrated to use it.

The library is published to npm under the Immich organization at @immich/ui. You can view the current set of components and a handful of examples at https://ui.immich.app/. At time of writing there are over 30 components, with more being added all the time.


View the project


Technology

The library is built using Tailwind CSS and Svelte.


View on GitHub


Motivation

There were a few motivating factors behind the decision to create this library:

  • Consistency — the need for a consistent design across Immich websites was a major factor. Especially as we started to publish micro sites, such as:
  • Decoupling — a lof of code in the Immich web application was tightly coupled to specific usages. Pulling the components into a separate library forced me to assess and design their interfaces in a more general purpose & resuable manner.
  • Incremental adoption — with the components being in a separate library, I am able to incrementally migrate code from the main application to the library as components become available and stable. This has made it much more manageable to migrate the codebase over time.
  • Standardization — the components in the new library are able to more easily follow and adhere to common patterns and interfaces, like the current Size, Color, and Variant properties.

Future work

There is still a lot of work to do with regard to the library. There are a few key components missing still, like a Calendar/Date Picker component, and a few more form fields. Also, there is a pretty big gap when it comes to tests.

Even though I would say the library is incomplete, it has already been a huge win for the team. We recently launched https://datasets.immich.app/, which was built by an intern using the component library, and it looks great! We also just launched https://api.immich.app/, and it similarly looks great and is consistent with our other sites.

Cheers,
The Immich Team