<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/i-built-kintara-because-apparently-having-too-many-hobbies-eventually-leads-to-building-your-own-doc-9rgcqybj7" -->

---
title: I built Kintara because apparently having too many...
description: Kintara is a self-hosted, Docker-based document library and reader that watches a folder for PDFs, Markdown, and text files, automatically indexing, extracting...
canonical: https://daily.dev/posts/i-built-kintara-because-apparently-having-too-many-hobbies-eventually-leads-to-building-your-own-doc-9rgcqybj7
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: I built Kintara because apparently having too many hobbies eventually leads to building your own document management system. | daily.dev
og:description: Kintara is a self-hosted, Docker-based document library and reader that watches a folder for PDFs, Markdown, and text files, automatically indexing, extracting...
og:url: https://daily.dev/posts/i-built-kintara-because-apparently-having-too-many-hobbies-eventually-leads-to-building-your-own-doc-9rgcqybj7
og:image: https://api.daily.dev/og/posts/9RGcqYbJ7.png
og:image:alt: I built Kintara because apparently having too many hobbies eventually leads to building your own document management system.
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# I built Kintara because apparently having too many hobbies eventually leads to building your own document management system.

**[Showcase](https://daily.dev/sources/showcase)** · [@sizzlebop](https://daily.dev/sizzlebop) · 3 min read · 4 upvotes · 4 comments

## Summary

Kintara is a self-hosted, Docker-based document library and reader that watches a folder for PDFs, Markdown, and text files, automatically indexing, extracting text/metadata, generating thumbnails, and offering full-text search, highlights, collections, and PWA access. The author rebuilt it from a Tauri desktop app into a single Rust server serving both API and frontend, so the library can be accessed from any device. Optional AI features (OpenAI or Gemini) can summarize documents, suggest metadata, generate cover images, and answer questions with verified page-numbered quotes rather than vague references. The project is open source with a published Docker image.

## Content

Kintara is a self-hosted document library and reader that runs in Docker and watches a folder you already have. Drop PDFs, Markdown, or text files into the directory and it indexes them automatically, extracts searchable text and metadata, generates thumbnails, and makes the whole library available through a browser or installable PWA. It has libraries, collections, tags, full-text search, highlights, favorites, reading progress, private library sharing, and GitHub OAuth.

I have been working on Kintara for a few months, and the architecture actually changed pretty dramatically while I was building it. Kintara originally had a Tauri desktop shell, but I eventually realized that isn't what I wanted at all. So I ripped the desktop layer out and rebuilt it around one Rust server that serves both the API and frontend. Now I can point Kintara at a NAS folder and open the same library from my desktop, laptop, tablet, or phone.

The thing I really love about this app is the optional AI features. I added an option to use OpenAI or Gemini, and with so few tokens being spent, it's a fraction of a cent to use most of them, aside from the cover image generation, which is bit more, but makes the library look so much prettier! 😄

Anyway, I wanted AI to be a tool inside the library rather than taking the thing over, and I wanted it to be fully optional, so if you're one of those "Ew, AI is in this app" people, you just don't turn it on and it's like it doesn't exist. What the AI can do is summarize documents, suggest metadata and fill in those blank spaces, generate cover images for docs that don't have a cover, search the library for docs, or you can just chat with it about your docs.

Find is a pretty great AI feature I think. Instead of letting the model vaguely tell you that something appears "somewhere in the document," Kintara asks for actual passages with page numbers, verifies the quote against extracted page text on the server, then verifies it again against the rendered PDF. If the quote cannot actually be located, it gets dropped.

But I think the thing I’ve ended up appreciating most is the AI metadata suggestions. A lot of my library consists of documents with incomplete, inconsistent, or completely useless embedded metadata, and fixing that manually gets old super fast. Kintara can read the document and suggest a title, author, summary, keywords, DOI, ISBN, and publication year. Then it displays the suggestions and I choose which fields I want, apply them to the form. It sounds like a stupidly small convenience until you’re staring at a library with hundreds of files. Then it’s kinda just amazing.

At this point Kintara has grown into one of those projects where I started out thinking, "I just want a nice way to organize my documents that's not overcomplicated", and somehow I ended up with filesystem watching, OAuth, multi-user permissions, and threw in image generation cause why not?

So if you have accumulated an actual ton of pdfs and markdown files, and it sounds interesting to you, try it out and let me know what ya think! It's open source I've published a Docker image too.

GitHub: [https://github.com/pinkpixel-dev/kintara](https://github.com/pinkpixel-dev/kintara)
Docker Hub: [https://hub.docker.com/r/pinkpixeldev/kintara](https://hub.docker.com/r/pinkpixeldev/kintara)

## Community discussion

Top comments from developers on daily.dev.

**@webkmsyed** · 2 upvotes

> This is such a relatable story.
>
> Having too many hobbies and ending up building your own tool is peak developer energy. Kudos on shipping Kintara.

**@agustinbarrientos** · 0 upvotes

> Could both verification passes appear beside each citation so a dropped quote stays debuggable without trusting the model's explanation?

## Similar posts on daily.dev

- [GitHub - refactoringhq/tolaria](https://daily.dev/posts/github---refactoringhq-tolaria-n8n5mm0em) · Hacker News · 2 upvotes · 0 comments
- [I ditched Pocket for Karakeep, and my research library finally became searchable](https://daily.dev/posts/i-ditched-pocket-for-karakeep-and-my-research-library-finally-became-searchable-uumprntl5) · XDA Developers · 0 upvotes · 0 comments
- [I wanted a private AI app hosting platform, so I built one.](https://daily.dev/posts/i-wanted-a-private-ai-app-hosting-platform-so-i-built-one--zetuay0vw) · Medium · 1 upvotes · 0 comments
- [Tauri tutorial: build a desktop app with web technologies](https://daily.dev/posts/tauri-tutorial-build-a-desktop-app-with-web-technologies-ijnx4nydb) · Flavio Copes · 1 upvotes · 0 comments
- [GitHub - linuxrebel/DocuBrowser: This does for Documents what repo-browser does for repos. A local AI powered Document search engine](https://daily.dev/posts/github---linuxrebel-docubrowser-this-does-for-documents-what-repo-browser-does-for-repos-a-local-a-hdhy6ckpd) · Hacker News · 1 upvotes · 1 comments

---

Tags: [#docker](https://daily.dev/tags/docker), [#rust](https://daily.dev/tags/rust)

[View this post on daily.dev](https://daily.dev/posts/i-built-kintara-because-apparently-having-too-many-hobbies-eventually-leads-to-building-your-own-doc-9rgcqybj7)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"DiscussionForumPosting","mainEntityOfPage":"https://daily.dev/posts/i-built-kintara-because-apparently-having-too-many-hobbies-eventually-leads-to-building-your-own-doc-9rgcqybj7","headline":"I built Kintara because apparently having too many hobbies eventually leads to building your own document management system.","text":"Kintara is a self-hosted, Docker-based document library and reader that watches a folder for PDFs, Markdown, and text files, automatically indexing, extracting text/metadata, generating thumbnails, and offering full-text search, highlights, collections, and PWA access. The author rebuilt it from a Tauri desktop app into a single Rust server serving both API and frontend, so the library can be accessed from any device. Optional AI features (OpenAI or Gemini) can summarize documents, suggest metadata, generate cover images, and answer questions with verified page-numbered quotes rather than vague references. The project is open source with a published Docker image.","url":"https://daily.dev/posts/i-built-kintara-because-apparently-having-too-many-hobbies-eventually-leads-to-building-your-own-doc-9rgcqybj7","datePublished":"2026-08-23T20:06:21.634Z","dateModified":"2026-09-13T20:54:23.594Z","author":{"@type":"Person","name":"Jessica Doering","url":"https://daily.dev/sizzlebop","image":"https://media.daily.dev/image/upload/s--eHrmTnkb--/f_auto/v1791022089/avatars/avatar_J54Tds4tCXZZYo9fUnnch?_a=BAMAMicg0","description":"Developer, maker, experimenter, and perpetual project starter.","worksFor":{"@type":"Organization","name":"Pink Pixel","logo":"https://media.daily.dev/image/upload/s--nTLLDJmi--/f_auto/v1771311286/companies/pinkpixel"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"EndorseAction"},"userInteractionCount":230}},"image":"https://media.daily.dev/image/upload/s--95LoQzgo--/f_auto/v1787515163/posts/THgxGiDCp?_a=BAMAMicg0","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":4},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":4}],"comment":[{"@type":"Comment","text":"This is such a relatable story.\nHaving too many hobbies and ending up building your own tool is peak developer energy. Kudos on shipping Kintara.","datePublished":"2026-08-29T08:50:23.607Z","url":"https://daily.dev/posts/9RGcqYbJ7#c-IqQgXqggu","author":{"@type":"Person","name":"Khishamuddin Syed","url":"https://daily.dev/webkmsyed","image":"https://media.daily.dev/image/upload/s--xXLX9Wi9--/f_auto/v1777551874/avatars/avatar_VqsDuiiXz6AnTS1eKLMWz?_a=BAMAMiWQ0"},"interactionStatistic":{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":2}},{"@type":"Comment","text":"Could both verification passes appear beside each citation so a dropped quote stays debuggable without trusting the model’s explanation?","datePublished":"2026-08-30T06:21:44.749Z","url":"https://daily.dev/posts/9RGcqYbJ7#c-25zZvJwiv","author":{"@type":"Person","name":"Agustin Barrientos","url":"https://daily.dev/agustinbarrientos","image":"https://media.daily.dev/image/upload/s--5ayxQnqn--/f_auto/v1788281802/avatars/avatar_wQYYVe5Tbj0NJ7C7qPoa8?_a=BAMAMicg0"}}],"isPartOf":{"@type":"WebPage","url":"https://daily.dev/squads/showcase","name":"Showcase"}}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Showcase","item":"https://daily.dev/squads/showcase"},{"@type":"ListItem","position":3,"name":"I built Kintara because apparently having too many hobbies eventually leads to building your own document management system."}]}
```

