What makes you think she is a witch? – Monty Python and the Holy Grail

La Table Grise (library)

Published on

|

Updated on

From

25/10/2023

to

now

Bear with It, but the website is only in french (I’m the only user so IDC)

For this project, I wanted to create a comprehensive digital library management system to catalog and organize my personal collection of books, comics, mangas, board games, CDs, and DVDs. What started as a simple inventory tool quickly evolved into a full-featured library platform with advanced filtering, borrowing tracking, and even a randomizer to help decide what to read, watch, or play next.

The Challenge

Managing a diverse collection across multiple media types (BDs, Mangas, Books, Board Games, CDs, DVDs) with different owners, categories, and borrowing statuses required a flexible and powerful system. I needed something that could:

  • Handle multiple post types with custom taxonomies
  • Track ownership across different family members
  • Manage borrowing status for individual volumes
  • Provide advanced filtering and search capabilities
  • Offer a fun way to discover new content through randomization
  • Display everything in a clean, user-friendly interface

The Solution

WordPress with the Simppple full site editing theme proved to be the perfect foundation. I built a custom child theme that extends Simppple’s capabilities with specialized Gutenberg blocks and custom post types.

Custom Gutenberg Blocks

I developed several custom blocks to power the library’s functionality:

Posts Filters Block
The heart of the library interface. This block provides:

  • Multi-faceted filtering by owner, media type, and categories
  • Real-time search functionality
  • URL-based filter state management
  • AJAX-powered pagination
  • Duplicate detection and filtering
  • Responsive filter UI with toggle functionality

Posts Roulette Block
A playful randomizer that helps users discover content when they can’t decide what to read, watch, or play. Users can select a media type and let the roulette pick something random from the collection.

Borrows Block
Tracks all currently borrowed items, organized by owner. It intelligently handles different media types:

Post Single Block
A dynamic single post template that adapts its display based on the post type, showing relevant metadata, volume information, and borrowing status.

Search Results Block
Custom search results display with filtering capabilities integrated into the search experience.

Bongo Cat Block
A fun easter egg block that adds personality to the site (because every project needs a bit of whimsy).

Technical Stack

The project leverages modern web development tools and best practices:

  • WordPress 6.4+ with Full Site Editing
  • Simppple Child Theme as the foundation
  • Timber/Twig for templating (clean separation of logic and presentation)
  • Advanced Custom Fields (ACF) for flexible content management

Key Features

Advanced Filtering System
The filtering system is built with performance and user experience in mind. It uses WordPress REST API endpoints with custom query parameters, supports URL-based state management for shareable filtered views, and includes intelligent duplicate detection to prevent showing the same item multiple times.

Borrowing Management
The system tracks borrowing at the volume level for series (comics, mangas, books) and at the item level for board games. Each borrowed item shows who borrowed it and which specific volumes are out, making it easy to see what’s available and what’s not.

Responsive Design
The entire interface is built mobile-first, ensuring the library is accessible and usable on any device. Filter panels collapse on mobile, and the grid layouts adapt gracefully to different screen sizes.

Developer Experience
The codebase follows WordPress coding standards and includes comprehensive linting, formatting, and type checking. The build process uses Vite for lightning-fast development with hot module replacement, and the project structure makes it easy to add new blocks or extend functionality.

The Result

La Table Grise is now a fully functional library management system that handles hundreds of items across multiple media types. The filtering system makes it easy to find specific items, the borrowing tracker keeps everything organized, and the roulette feature adds a fun element to content discovery.

The project demonstrates how WordPress can be extended beyond traditional blogging to create specialized applications. By leveraging custom post types, taxonomies, ACF, and custom Gutenberg blocks, I was able to build a solution that’s both powerful and maintainable.

Check out the site here.