We keep over 50 public repositories under the visorcraft GitHub organization, under a mix of GPL-3.0, Apache-2.0, and MIT. The five featured below are the bigger product-grade ones: Arte Ogre, Kanoprii, Grexa, Roamarr, and Grex. MongrelDB, our open source database, is its own thing and is not part of this count. The rest of the repos are smaller things we built for ourselves along the way.

The one thing we don’t open source is Mongrel, the commercial product. Mongrel is closed source and it pays the people who build the rest of this.

A note on the licenses

The repos are a mix: GPL-3.0, Apache-2.0, and MIT, depending on what each project calls for. Copyleft for things we want to keep shared; permissive for things we’d like to see adopted broadly. Each repo’s LICENSE file is the source of truth for that project.

If you want to embed one of the permissive-licensed projects in a closed-source product, you don’t need to ask. For the GPL-licensed ones, if you want to embed in a closed-source product, that’s a conversation we can have. Email, not GitHub Issues.

Arte Ogre - the image editor that doesn’t move your pixels

Arte Ogre is the project we’ve been working on longest, and the one that made the rest possible.

It’s a Rust-native, GPU-accelerated, layered image editor. Linux only, for now. The technical work is interesting (sparse tiled copy-on-write buffers, wgpu compositing, dirty-tile recomposition), but the reason it exists is more boring and more important.

Every image editor we’ve used in the last twenty years silently moves pixels when you cut and paste. Rectangle-select a region of a transparent layer, hit Ctrl+X, switch layers, hit Ctrl+V, and the paste lands at (0, 0), not where you cut it from. The position is recoverable in some editors, lost in others, and never consistently tested.

Arte Ogre fixes this at the data-model level. When you cut a region from a layer, the engine stores the exact canvas coordinates alongside the pixel data. When you paste, it drops the data back at those coordinates, in a new layer, with no UI math involved.

The whole feature is pinned by a byte-identical round-trip test in CI. Break the invariant, fail the build.

The editor is offline, telemetry-free, and GPL-3.0-only. If you want a Photoshop replacement that respects layers, it’s there. If you want a Rust codebase to learn GPU compositing from, it’s also there. We publish because we wish someone had published it in 2014.

Kanoprii - a PDF editor that doesn’t phone home

Kanoprii is a Tauri 2 desktop app: view, reorganize, annotate, sign, and export PDFs. Linux, macOS, Windows. Single binary. About 30 MB.

The honest reason this exists is that we needed a PDF editor that would run on a laptop on a plane without uploading the document to a server somewhere. The popular PDF tools all have one of two failure modes. They’re either heavy enterprise suites that want you to sign in and subscribe, or they’re web apps that require you to upload your file to someone else’s bucket.

Kanoprii does neither of those. Open a file from disk, edit, save to disk. Every edit lands in a working copy, so the original is untouched until you say so. Undo and redo is 50 steps deep. There’s a command palette for the power-user workflows.

It’s a Tauri 2 app, which means the UI is a webview and the heavy lifting is in Rust. We hit one of Tauri’s rough edges building it. Window management across Linux desktops is, charitably, not consistent.

We wrote up what we found. If you’re starting a Tauri 2 project that needs to behave on GNOME, KDE, and XFCE simultaneously, save yourself a week and read the architecture docs first.

Grexa - fast search, Linux-native, with a CLI

Grexa is a Qt 6 and Kirigami desktop search tool with a sibling Rust CLI. Literal and regex search across local files, with .gitignore awareness, hidden-file controls, glob and size filters, binary-file rules, and an atomic replace journal that won’t corrupt your files if you Ctrl+C mid-batch.

The replacement system deserves a callout. Most bulk-replace tools either write the new file in place and corrupt it if interrupted, or load the entire file into memory before writing, which fails on multi-GB logs.

Grexa does a temp-file-then-rename dance with fsync at each step, so an interrupted replace leaves either the old file or the new file, never half of either. This is the kind of thing you only learn to care about after corrupting a customer’s config file at 2 AM. We learned. Now it’s in the codebase.

Grexa also has an optional AI panel. Opt-in, configured with your own OpenAI-compatible endpoint, with API keys stored in the Linux Secret Service, that can summarize the current search results. We didn’t set out to build an AI feature. We set out to build a search tool, and the summarization turned out to be genuinely useful when you’re staring at 4,000 grep hits trying to figure out which one matters.

Grexa is the Linux port of Grex, which is Windows, WinUI 3, and .NET 8. Same feature surface, different desktop stack. If you maintain one, the other is useful to read.

Roamarr - a travel organizer that doesn’t sell your itinerary

Roamarr is the newest project, and the one most likely to be useful to people who aren’t engineers.

It’s a self-hosted SvelteKit 2 web app for organizing every moving part of a trip. Flights, stays, ground transport, companions, documents (passport, visa, vaccination cards), reminders, expenses, sharing with travel partners. Single-container deploy (Docker or Podman), MongrelDB storage, encrypted sensitive fields at rest.

Why a self-hosted travel app? Because the existing options are all ad-supported SaaS that monetize your itinerary data, sold to airlines, hotels, and credit-card companies.

If you’ve ever gotten a “based on your recent searches” ad three days after booking a flight, you’ve used one of these. We wanted a tool where the itinerary lives on a server we control, not one that lives on someone else’s ad platform.

Roamarr is the project that taught us the most about the cost of shipping a consumer product versus a developer tool. Developer tools have one buyer (the engineer) who tolerates rough edges because they understand the value. Consumer tools have a buyer (you, on your phone, six hours before a flight) who needs the value to be self-evident in fifteen seconds.

The v1 of Roamarr shipped with too many features and not enough onboarding. We’re still rebalancing.

Grex - the Windows side of the family

Grex is the Windows sibling of Grexa. WinUI 3 and .NET 8, with the Mica-coated shell feel you expect on Windows 11. It also searches Docker containers, WSL distributions, and UNC shares, which are features that don’t translate to Linux but matter a lot on Windows.

We mention it last because it’s the project most likely to be unfamiliar to Linux-first readers. If you live on Windows and need a grep that does what ripgrep does without dropping you into a terminal, Grex is that tool. Same safety guarantees around replacement as Grexa. Same opt-in AI panel, scoped to the search results.

What we open source and what we don’t

There are over 50 public repositories under the visorcraft GitHub organization right now. The five above are the bigger product-grade ones. The rest are smaller things we built along the way: an openrazer fork with patches we needed, a kids’ typing game called SpiderTypes, a Linux dashboard for multi-GPU boxes (LinSight), a diff and merge tool (LinSync), an Android TV client for our home media setup (Sinema), some Orange Pi hardware bring-up, a Docker image for Roamarr, and so on. None of these are strategic. All of them are public.

Mongrel is the commercial product, and it’s what keeps the lights on. We think that’s a fair trade. A company that open sources the thing it sells tends to end up with no company.

So the simple rule is: if we built something for ourselves that doesn’t compete with Mongrel, it goes on GitHub. If it does compete, it stays inside. It’s not a grand philosophy. It’s just what feels right after twenty-odd years of watching the alternative play out.

If you use any of these and you find a bug, file an issue. If you fix one, send a PR. We read all of it. We respond to most of it. We merge more than you might expect.

Where to find us

The repos are at github.com/visorcraft. The main site is at visorcraft.com. MongrelDB, the open source database, lives at github.com/visorcraft/MongrelDB with documentation at mongreldb.com.

We’re around. Say hi.