ukbook — Rak Buku Online
A personal reading archive, kept in public: the books I’ve read, the one I’m reading now, and the lines worth coming back to.
About
ukbook is a bookshelf you can walk around in. Every page borrows from the physical book: the current read lies open at its page, finished books stand on a shelf, and saved passages sit in a commonplace book with their page numbers in the margin.
Pages
Home
The book I’m reading right now lies open on the desk. The pages stacked under each side show how far I’ve got, and a ribbon marks the page.
Book
Each book is drawn as a page block seen from the top. Flags stick out of it at the pages where I saved a passage, and a ribbon marks the current page of a book in progress. Below it sit the summary, the details (publisher, genre, language, dates, ISBN), and every saved passage.
Browse
The whole library, split by status: reading, finished, to read, and wishlist. Search by title or author, sort by title, author, or finish date, and narrow down by genre, sub-genre, author, language, or the year and month a book was finished. Every filter has its own link, such as /browse/status/completed or /browse/language/id.
Authors
Every writer on the shelf, from A to Z, each with a small fan of their books. Jump to a letter from the rail, or open an author to see all of their books.
Quotes
A commonplace book of the passages I’ve saved, filed under the book they came from with the page number in the margin. Filter by book, topic, or favourites, or search for a line. Any passage can be saved as a story-sized image to share.
The shelf
Every page ends on a shelf of the whole library. Each spine’s width follows the book’s page count. Wishlist books are drawn in outline, and the current read carries a bookmark.
Also
- Share images: quotes and books can be saved as story-sized images that use the same colours, dots, and shelf as the site.
- Light and dark: both themes follow your system setting, and the toggle remembers your choice.
- Reading tracker:
/trackis still being worked out.
Built with
Next.js 16 (App Router), React 19, TypeScript, Tailwind CSS v4, and Supabase. Type is set in Newsreader and Geist.