Comic Vision is out. Here's why I built it.
The full story: how a page refresh twelve years ago turned into a career, why v1.0 is fundamentals-first instead of a spatial tech demo, and everything the app does on day one.
Funny enough, this is how it started
Twelve years ago, I started learning to code for one reason: I was annoyed that every online comic reader did a full page refresh between pages, and I wanted to build my own, better version. That frustration is basically what turned into a career.
Fast forward to a couple of years ago. The Vision Pro had quietly become my main device for entertainment, most of what I used to watch or read on a laptop or tablet, I was now doing in the headset. Somewhere in that shift I realized I'd fallen behind on the manga I read, went looking for something to catch up with, and ran straight into the exact same wall as twelve years earlier: nothing out there actually fit how I wanted to read on this device. Maybe something does this well and I just haven't found it, but on the App Store, at the time, I came up empty.
So I did the same thing I did the first time around. I started building it myself, in whatever free time I had after work: evenings, weekends, over a bit more than a year.
Fundamentals first
I want to be upfront about what v1.0 is, because it would be easy to assume otherwise on a device like this: building around spatial features wasn't the initial goal. There are small touches of it already (sheets that layer with real depth, a few panels that float beside the content, an optional 3D page-curl mode for turning pages), but nothing flashy yet. No floating 3D bookshelf, no full environment built around the format.
What I actually wanted was something closer to ComicRack, a tool I used a lot in the past and the clearest reference point I had going in. A real library manager and a complete reading experience, with the basics done properly: organizing hundreds of issues, editing metadata that's actually correct, and a reader that doesn't get in your way. I wanted all of that to feel solid and complete before going much further into anything spatial or immersive.
I do have ideas for that side of things (there's a lot you could do with depth and space that a flat screen can't), but they're for later. Get the fundamentals unambiguously right first, then build up from there.
What v1.0 actually does
This ended up being a bigger list than I expected when I started. Here's the full picture.
Building your library
Point Comic Vision at a folder and run a scan. It picks up CBZ, CBR, ZIP, RAR, and PDF files. No particular folder structure required, it just walks what you already have. Every compatible file gets added to a local database, a thumbnail is extracted for the cover grid, and if the file already has a ComicInfo.xml embedded, that metadata is read in automatically on import. You're not starting from a blank slate if you've already been tagging your collection elsewhere.
From there you browse through built-in lists for every entity: All Comics, All Series, All Publishers, All Authors, All Characters, and more. Each one drills down naturally: open a series to see every volume in the run, open a publisher to see its series, and so on.

Reading, three ways
You're not locked into one way to read. Try the three modes right here:
A toy of the real thing. Set a default globally, override per book.
- Horizontal. A horizontal scroll that snaps to single pages or double-page spreads, right-to-left automatically when a volume calls for it (manga, mostly).
- Vertical (webtoon). Continuous top-to-bottom scroll with no page boundary cutting through a panel, the way manhwa and webtoons are meant to be read. There's also a snap-to-panel option if you'd rather it pause panel by panel.
- 3D page-curl. An optional mode where pages physically turn instead of scrolling, with adjustable curl strength. This is the one genuinely spatial touch in v1.0, and it's opt-in, not the default.
All of that can be set globally, and then overridden per comic (mode, direction, page display), and it remembers your choice for that specific book going forward.
Little touches that add up
None of these are individually a big feature, but together they're most of what makes the app feel finished:
- Hands-free page turns. There's a small look-to-scroll zone at the edges of the page: hold your gaze there for a couple of seconds and it turns. I spent real time tuning the position and reset behavior on this so it feels like the platform's native look-to-scroll instead of a custom gesture you have to learn.
- Long-press for a quick peek. Long-press any cover in the library and you get a card with a summary, rating, and quick actions, without leaving the shelf you're browsing.
- Next-in-series, queued. Hit the last page of a volume and the next one in the series is already waiting, one tap to keep going instead of backing out to find it yourself.
- Picks up exactly where you left off. Every comic remembers its last page, full stop.

More than one window
You can open more than one comic at a time, each in its own window: side by side if you want a reference open while you read, or just the one if you don't.
Cataloguing, for people who actually organize their stuff
This is the part of the app I probably spent the most disproportionate amount of time on, because it's the part I cared about most as a user of something like ComicRack.
Metadata, at the comic and the page level. Series, volume, creators, characters, tags, publisher: the usual fields, all editable. But it goes down to the individual page too: set a page's type (cover, story, ad), rotate it, add a note, or flag it "display alone" so it never gets incorrectly paired into a double-page spread it doesn't belong in.

Marquee select. This works the way you'd expect from lassoing files in Finder, with one specific mechanic worth calling out: select one cover first (a single tap), then long-press that same cover and drag. From there it behaves like extending a selection in Mail or Finder: every cover your drag passes over gets added to the selection as you go, instead of you having to tap each one individually. Once you've got a group selected, you can bulk-edit it: assign a series, publisher, creators, characters, or volume relations across the entire selection at once, or apply an existing naming convention to the lot in one pass.
Naming conventions. If your files are already organized in a folder structure with useful information baked into the path, you shouldn't have to retype it. Write a naming convention: a regex matched against the folder/file path, with a live preview as you type, and map each capture group to a metadata field. For a structure like /manga/<series>/<file> <number>.cbz, that's a pattern that pulls the series name and chapter number straight out of the path automatically. You can also set fixed values on top of the pattern match, for example forcing right-to-left reading direction for anything that matches, if that whole shelf is manga. Apply a convention manually to a selection, or flip it on to run automatically on every newly scanned comic from then on.

The pricing decision (and why there's no Patreon)
I went back and forth on this more than I'd like to admit. My first instinct was to make the whole thing free, no strings. After sinking well over a year of evenings and weekends into it, that instinct got a little shakier, but I kept coming back to the same answer.
Comic Vision is free. No paywalls, no feature gates, nothing held back behind a tier. On top of that there's an optional tip jar and a couple of optional support subscriptions, built with StoreKit, and none of it unlocks anything: it's purely "if you want to support this, here's a way to." I'd originally wanted to set this up as a Patreon link, but Apple doesn't allow linking out to external payment platforms like that from inside an app, so it became an in-app purchase instead. Functionally the same idea, just routed through the platform that actually allows it.
I'm not expecting much from this part. But if you end up using the app enough that you want to throw a few dollars at it, it'll genuinely make my day.
What's next (and it stacks)
Everything below got pushed to after launch on purpose, otherwise I'd still be building instead of shipping. These three build directly on top of each other, so they're landing in this order:
- Search and filtering across the whole library: not just a single search box, real structured filtering.
- Custom lists. Smart lists, which are essentially a saved search and filter that keeps itself up to date, and manual lists you curate by hand.
- Third-party sources. Full OPDS support (both v1 and v2), which covers most of the open-source self-hosted servers out there. If there's demand, more specific integrations with things like Komga or Kavita could follow.
Try it, and tell me what's broken
Comic Vision is free on the App Store, and there's an official site if you want the overview first.
I also opened a free community for bug reports and feature requests at community.comicvision.app. I'm sure there are bugs I haven't run into myself just from how I personally use the app. If you hit one, that's the place to flag it.
Thanks for being here this early. More soon.