diff --git a/src/pages/index.astro b/src/pages/index.astro index e8c415e..f8e35b8 100644 --- a/src/pages/index.astro +++ b/src/pages/index.astro @@ -20,74 +20,6 @@ const dockerRun = `docker run -d \\ --restart unless-stopped \\ ghcr.io/kmworks/kmrs`; -const readers = [ - { - title: "DIVINA", - body: "The dedicated comic reader, on every platform: single and double page, spreads, page curl, AI upscaling, per-book preferences.", - icon: "ph:book-open", - }, - { - title: "Webtoon", - body: "Vertical scrolling for webtoons and long strips, with reading direction per book.", - icon: "ph:scroll", - }, - { - title: "EPUB", - body: "A native EPUB reader with themes, fonts, and layout controls on iOS and macOS.", - icon: "ph:book", - }, - { - title: "PDF", - body: "PDF reading on iOS and macOS, with the same library and progress sync as everything else.", - icon: "ph:file-pdf", - }, -]; - -const offlineCaps = [ - "Download policies", - "Background transfers", - "Offline-first storage", - "Local covers", - "Reading progress", - "Next-book preparation", -]; - -const platforms = [ - { - title: "iPhone", - body: "Your pocket library: Keep Reading, widgets, quick actions, and Spotlight search.", - icon: "ph:device-mobile", - shot: { src: "iphone-dashboard", w: 600, h: 1299, sizes: "(max-width: 640px) 92vw, 21vw", srcset: "/img/shots/iphone-dashboard-600.webp 600w, /img/shots/iphone-dashboard-1000.webp 1000w" }, - }, - { - title: "iPad", - body: "A big-canvas reader for the couch, with the full DIVINA, EPUB, and PDF experience.", - icon: "ph:device-tablet", - shot: { src: "ipad-browse", w: 900, h: 1201, sizes: "(max-width: 640px) 92vw, 21vw", srcset: "/img/shots/ipad-browse-900.webp 900w, /img/shots/ipad-browse-1600.webp 1600w" }, - }, - { - title: "Mac", - body: "Dedicated reader windows, menu bar actions, and keyboard-first controls.", - icon: "ph:laptop", - shot: { src: "mac-dashboard", w: 1000, h: 625, sizes: "(max-width: 640px) 92vw, 21vw", srcset: "/img/shots/mac-dashboard-1000.webp 1000w, /img/shots/mac-dashboard-1800.webp 1800w" }, - }, - { - title: "Apple TV", - body: "Remote-first DIVINA reading with a focused TV browsing experience.", - icon: "ph:television", - shot: { src: "tvos-dashboard", w: 960, h: 540, sizes: "(max-width: 640px) 92vw, 21vw", srcset: "/img/shots/tvos-dashboard-960.webp 960w, /img/shots/tvos-dashboard-1920.webp 1920w" }, - }, -]; - -const appleExtras = [ - { label: "Spotlight search", icon: "ph:magnifying-glass" }, - { label: "Widgets", icon: "ph:squares-four" }, - { label: "Live Activities", icon: "ph:timer" }, - { label: "Live Text", icon: "ph:text-aa" }, - { label: "Quick actions", icon: "ph:lightning" }, - { label: "Mac reader windows", icon: "ph:app-window" }, -]; - const serverFeatures = [ { title: "One binary", icon: "ph:package" }, { title: "Cross-platform", icon: "ph:devices" }, @@ -113,8 +45,9 @@ const serverFeatures = [

Your Komga library. Native everywhere.

- An open-source server and native Apple client for your comic - and manga library. + An open-source ecosystem for your comic and manga library: + KMReader, a native Apple client, and KMServer, a + Komga-compatible server in Rust.

@@ -183,11 +116,6 @@ const serverFeatures = [

Komga-compatible clients keep working.

-
- - Learn about KMServer - -
@@ -211,7 +139,9 @@ const serverFeatures = [

KMReader

Your library, built for Apple.

- A native reading experience for iPhone, iPad, Mac and Apple TV. + A native app for iPhone, iPad, Mac and Apple TV: the DIVINA + comic reader, offline downloads, and progress sync across + devices.

iPhone @@ -229,123 +159,7 @@ const serverFeatures = [
- {/* 4. Reading */} -
-
-
-

Built for the way comics are actually read.

-
-
- {readers.map((r) => ( -
-
- -
-

{r.title}

-

{r.body}

-
- ))} -
-
-
- - {/* 5. Offline */} -
-
-
-
-

Your library, even offline.

-

- Download what you want. Read anywhere. Sync when you're back. -

-
- Select - → - Download - → - Read offline - → - Track progress - → - Reconnect - → - Sync -
-
- {offlineCaps.map((c) => ( - {c} - ))} -
-
-
- KMReader on iPhone showing the Offline view with download tasks and downloaded books -
-
-
-
- - {/* 6. Apple platforms */} -
-
-
-

One library. Four Apple platforms.

-

- KMReader is a native Apple app, not a web wrapper. -

-
-
- {platforms.map((p) => ( -
-
- {`KMReader -
-
- -
-

{p.title}

-

{p.body}

-
- ))} -
-
-
- - {/* 7. Apple integration */} -
-
-
-

At home in the Apple ecosystem.

-
-
- {appleExtras.map((x) => ( -
- - {x.label} -
- ))} -
-
-
- - {/* 8. KMServer */} + {/* 4. KMServer */}
@@ -353,7 +167,8 @@ const serverFeatures = [

KMServer

Your library. One server.

- A lightweight, Komga-compatible server with the web UI included. + Komga reimplemented in Rust: one static binary, a bounded + footprint, and the web UI included.

{serverFeatures.map((f) => ( @@ -387,7 +202,7 @@ const serverFeatures = [
- {/* 9. Demo */} + {/* 5. Demo */}
@@ -414,7 +229,7 @@ const serverFeatures = [
- {/* 10. Ecosystem */} + {/* 6. Ecosystem */}
@@ -476,7 +291,7 @@ const serverFeatures = [
- {/* 11. Open source */} + {/* 7. Open source */}
@@ -522,7 +337,7 @@ const serverFeatures = [
- {/* 12. Final CTA */} + {/* 8. Final CTA */}
diff --git a/src/pages/reader/index.astro b/src/pages/reader/index.astro index bf7c2ea..98a54ef 100644 --- a/src/pages/reader/index.astro +++ b/src/pages/reader/index.astro @@ -13,34 +13,24 @@ const githubUrl = "https://github.com/kmworks/kmreader"; const readingFeatures = [ { title: "DIVINA", - body: "The dedicated comic reader, on every platform: single and double page, spreads, page curl, AI upscaling, per-book preferences.", + body: "The dedicated comic reader, on every platform: single and double page, spreads, page curl, AI upscaling, and per-book preferences.", icon: "ph:book-open", }, { title: "Webtoon", - body: "Vertical scrolling for webtoons and long strips.", + body: "Vertical scrolling for webtoons and long strips, with reading direction per book.", icon: "ph:scroll", }, { title: "EPUB", - body: "Native EPUB reading on iOS and macOS with themes, fonts, and layout controls.", + body: "A native EPUB reader with themes, fonts, and layout controls on iOS and macOS.", icon: "ph:book", }, { title: "PDF", - body: "PDF reading on iOS and macOS.", + body: "PDF reading on iOS and macOS, with the same library and progress sync as everything else.", icon: "ph:file-pdf", }, - { - title: "LTR / RTL", - body: "Reading direction per book, for manga and western comics alike.", - icon: "ph:arrows-left-right", - }, - { - title: "Page modes", - body: "Single-page and double-page modes, wide-page splitting, and cover isolation where supported.", - icon: "ph:copy", - }, ]; const libraryFeatures = [ @@ -281,12 +271,13 @@ const tvosShots = [
-

Reading

+

Built for the way comics are actually read.

- Built for the way comics are actually read. + DIVINA for comics, vertical scroll for webtoons, and native EPUB + and PDF readers.

-
+
{readingFeatures.map((f) => (
@@ -394,6 +385,22 @@ const tvosShots = [
+ {/* Your server */} +
+
+
+

Bring your own server.

+

+ KMReader works with any Komga 1.20.0+ server, including + KMServer, the single-binary Rust server from the same family. +

+ + Learn about KMServer + +
+
+
+
diff --git a/src/pages/server/index.astro b/src/pages/server/index.astro index 0637488..0374c21 100644 --- a/src/pages/server/index.astro +++ b/src/pages/server/index.astro @@ -132,15 +132,16 @@ const clients = [ of a JVM runtime, and a footprint that stays small.

-
+
- +
-

Written in Rust

+

One static binary

- A ground-up, memory-safe reimplementation of the Komga server. - No JVM, no runtime: the whole server ships as one static binary. + No JVM, no runtime: the whole server is one Rust executable + for Linux, macOS, and Windows, on x86_64 and aarch64. Docker + image included.

@@ -154,16 +155,6 @@ const clients = [ hardware. Enhancements

-
-
- -
-

Runs anywhere

-

- Linux, macOS, and Windows, on x86_64 and aarch64. Docker image - included. -

-
@@ -327,22 +318,24 @@ const clients = [
- +
-

Natural sort

+

Smart lists

- Numbered titles order the way you expect: "Page 2" before - "Page 10", with a configurable ICU locale. + Save any search as a live list: the filter re-evaluates for + whoever is looking, with share scopes and generated mosaic + covers. Smart lists

- +
-

Heap profiling built in

+

Reading stats

- jemalloc sampling with a pprof endpoint, always on in release - builds. + Per-user totals, day-by-day activity, and reading streaks, + computed on the server.{" "} + Reading stats

@@ -350,11 +343,10 @@ const clients = [ Webhooks History events EPUB 2 metadata + Natural sort komf integration File-backed thumbnails Next/previous - Reading stats - Smart lists Server stats