# Kuroba Experimental replaces the stack behind an imageboard browser

> Kuroba Experimental, shipped as KurobaEx, is a GPLv3 Android client for 4chan and a dozen other imageboards that is a fork of Kuroba but not much else from it. The rewrite swaps in Kotlin, Coroutines and Room, moves posting into a foreground service, and rebuilds the media viewer, the bookmarks and the downloader around on demand loading.

**K1rakishou/Kuroba-Experimental** — Free and open source image board browser

- Repository: https://github.com/K1rakishou/Kuroba-Experimental
- Stars: 809 · Forks: 60
- Language: Kotlin
- License: GPL-3.0
- Published: 2026-10-20 · Updated: 2026-10-20 · Language: en
- Canonical page: https://hysenlabs.com/projects/k1rakishou-kuroba-experimental

## A fork of Kuroba with the technology stack swapped out

Kuroba Experimental is described as a fork of Kuroba, and the project's own summary calls the result a fast Android app for browsing imageboards such as 4chan and 8chan. The fork label understates the change, because the stack is the headline: Kotlin, RxJava and Coroutines, and Room are listed as the new technological stack, replacing the Java and SQLite shape of the original.

The repository layout backs that up. The top level contains a `Kuroba/` directory that holds the application code, a `docs/` directory, a `fastlane/` directory that carries the English screenshots and store metadata under `fastlane/metadata/android/en-US/images/phoneScreenshots/`, and a `COPYING.txt` at the root holding the licence text. The default branch is `develop`, which matters later, because that is where the stable and the beta lines diverge.

The user visible changes follow from the stack rather than sitting beside it. Thread navigation became tabs, and a bottom navigation bar was added for in app navigation. Themes are fully dynamic and follow the Android Q day and night mode, and an edge to edge theme is supported. 4chan global search is built in, and each site can be given its own proxy, which is the setting that decides whether the app can reach a board at all in a restricted network.

## Content arrives on demand, with prefetched metadata

The most structural feature listed is on demand content loading, and the examples given are metadata fetches rather than media: prefetching, YouTube video titles and durations fetching, and inlined file size fetching. The distinction matters for anyone on a metered connection, because the app can learn the title and length of an embedded YouTube video and the size of an inlined file before deciding to pull the whole item.

Those fetches sit on top of a new downloader, which is described separately. The new image downloader allows downloading images while the app is in the background, retrying downloads that failed, and resolving duplicates. Combined with on demand loading, the intended behaviour is that a thread opens quickly with placeholders and metadata, then fills in as the images arrive, rather than the app blocking on every post in a long thread before rendering anything.

There is also a thread downloader with the ability to export threads as HTML pages with all downloaded media. That export path is what makes the app usable for archiving rather than only browsing, and it is separate from the third party archive support, which is about reading existing archives rather than producing new ones.

## Bookmarks rewritten to drop wakelocks and per thread notifications

Bookmarks are described as fully rewritten from scratch, and the specific claims attached to that rewrite are memory use, wakelocks and notifications. The new implementation uses less memory, does not use wakelocks, and shows separate notifications per thread, with notifications that can be swiped away. The wakelock point is the one to notice: an imageboard client that keeps a screen awake while it syncs threads is a battery complaint waiting to happen, and the rewrite removes that behaviour rather than making it configurable.

The notification model also changes what a bookmark means in practice. With one notification per thread, a user following several active threads can dismiss the ones that are not interesting without losing the others, and the swiping gesture means a notification is a live queue rather than a single rolling summary that you either read or ignore.

On top of that sits bookmark groups, where you can set up regex matchers that automatically move newly created bookmarks into the right group. The regex work is client side and applied to new bookmarks as they are created, which makes it a triage tool for a heavy user rather than a query over old history.

## Posting moved into a foreground service

The posting code was moved into a foreground service, and the documented consequences are that the app can queue multiple replies across different threads, with only one reply per thread at a time. The foreground service is the important structural change. Posting is a long operation that can be interrupted by the network, and running it as a foreground service means the work continues while the app is in the background instead of being tied to a visible screen.

The queueing rule is specific enough to plan around: several replies can be pending across several threads, but no thread accumulates a backlog of two replies. A user posting sequentially in one thread therefore still has to wait for each reply to complete before starting the next, while a user posting in two threads can have both in flight.

Media attachment was extended alongside this. A reply can attach multiple media files, can attach media shared in from other apps, including from some keyboards, and can attach remote media files by URL. The last one matters for anyone scripting a post, since a URL avoids passing bytes through the share sheet.

## The media viewer lives in its own activity now

The media viewer was rewritten from scratch and now lives in a separate activity, which changes how the app handles a full screen image. A separate activity means the viewer is its own task on the Android side, so opening a picture and going back is a task switch rather than a fragment transition inside the thread list. The rewritten viewer also supports viewing links to media files shared into the app, so a media link that arrives from another app can be opened directly in the viewer instead of being handed to a browser.

Video handling is delegated rather than built in. The project lists an Mpv video player as downloadable, which means the player is not part of the base install and the app is not responsible for shipping a video decoder of its own.

Catalog composition is the other structural addition here. Composite catalogs let you combine multiple boards of any available site, except archives, into a single catalog. That exception is explicit: archive boards cannot be folded into a composite catalog, so a catalog mixing a live board with an archived board is not something the app will build.

## Boards, archives and the GPLv3 licence

The site list is long and it is the clearest way to judge whether the app is worth installing. Currently supported sites are 4Chan, Dvach, 8Kun, Lainchan, Sushichan, Wired-7, 370chan.info, Endchan, Kohlchan, Krautchan, 8chan.moe, Lefypol and Diochan. Four entries are struck through in the list, 420Chan, YesHoney, Vhschan and Soyjak.party, so the support surface has shrunk as well as grown.

Archive support is a separate list, and it covers 4chan archives: ArchivedMoe, ArchiveOfSins, B4k, DesuArchive, Fireden, 4Plebs and Warosu, with Nyafuu, TokyoChronos, Wakarimasen.moe and RozenArcana struck through. Third party archives support is a listed feature on top of these named ones. For a reader who follows dead threads on several archive hosts, having them in the same app as the live boards is the concrete reason to use this instead of a plain browser.

The licence is GPLv3, with the text of the licences of the used libraries referenced alongside it. The project describes itself as free and open source, and a GPLv3 codebase carries the usual implication for a team shipping a modified build: the derived application is expected to carry the same licence. Check the `COPYING.txt` file at the repository root before redistributing anything built from this code.

## Stable and beta releases live on separate release pages

The release history shows three of the most recent builds and they split into two channels. The stable line published v1.3.47-release on 2026-09-28, and the beta line published v1.3.46.1-beta on 2026-09-19 and v1.3.46.0-beta on 2026-09-15. Two separate release locations are named in the project documentation, one for the latest stable release and one for the latest beta version, with the beta releases coming from a separate repository, Kuroba-Experimental-beta.

The last push to the main repository was on 2026-09-28, the same day as the v1.3.47-release build, and the repository is not archived. The versioning style is worth noting before you plan an upgrade: the beta tags carry a `beta` suffix and a fourth segment, so a beta build is never confused with the stable number it will eventually become.

The upshot for an adopter is that the beta channel is a separate download with its own release page, and the stable channel is the one that tracks the version most people run. Since the app is the only way to get most of these boards in a usable mobile layout, deciding which channel to pin is the first practical question, and it is a question about the release pages rather than about any feature.

## Conclusion

Kuroba Experimental fits Android users who browse several imageboards, want archives and third party archive support in the same app, and want to read threads offline. It does not fit anyone who needs an iOS client, a private or self hosted board network, or a stable channel that never sees a beta build, since the beta line ships separately from the stable release. Before installing, check that the board list still covers the sites you read, whether the beta release page is acceptable for your risk tolerance, and that per site proxies work in your region.

## FAQ

### What is the difference between Kuroba Experimental and the original Kuroba app?

Kuroba Experimental is a fork of Kuroba that replaces the technological stack with Kotlin, RxJava and Coroutines, and Room, and adds features such as on demand content loading, a rewritten media viewer, bookmarks rewritten from scratch, per site proxies and a thread downloader.

### Which imageboards does Kuroba Experimental support?

The listed sites are 4Chan, Dvach, 8Kun, Lainchan, Sushichan, Wired-7, 370chan.info, Endchan, Kohlchan, Krautchan, 8chan.moe, Lefypol and Diochan, plus named 4chan archives including ArchivedMoe, ArchiveOfSins, B4k, DesuArchive, Fireden, 4Plebs and Warosu. Four sites and four archives are marked as struck through in the project documentation.

### Can Kuroba Experimental post replies and upload media?

Yes. The posting code runs in a foreground service, which allows queueing multiple replies in different threads with only one reply per thread. A reply can attach multiple media files, media shared from other apps, and remote media files by URL.

### What licence is Kuroba Experimental released under?

The project is released under GPLv3, with the licence text in the `COPYING.txt` file at the repository root, alongside references to the licences of the libraries it uses.

### Where do I get the stable build and where does the beta build come from?

The project documentation points to two separate release locations, a latest stable release page and a latest beta version page, and the beta releases are published from a separate repository named Kuroba-Experimental-beta. The most recent stable build listed is v1.3.47-release on 2026-09-28.

## Sources

- [Issues](https://github.com/K1rakishou/Kuroba-Experimental/issues)
- [K1rakishou/Kuroba-Experimental on GitHub](https://github.com/K1rakishou/Kuroba-Experimental)
- [License: GPL-3.0](https://github.com/K1rakishou/Kuroba-Experimental/blob/develop/LICENSE)
- [README](https://github.com/K1rakishou/Kuroba-Experimental/blob/develop/README.md)
- [Releases](https://github.com/K1rakishou/Kuroba-Experimental/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/k1rakishou-kuroba-experimental
