Skip to main content
Andypbrowne

Bookshelf

A simple webpage that helps form a reading habit

I finally made a digital bookshelf. Its a simple page that keeps track of all the books I have finished. The best part of having one of these is the built-in motivation. If I were to have a goal of reading one book a month for a year — this helps a lot.

Getting Into Reading #

There are two other things that have helped me start reading more in the last few years. First, in 2014, I got a new sister-in-law who is an author of young-adult books. If you are wondering why both my digital and IRL bookshelf have numerous titles intended for teenagers — it’s because I read them and really enjoyed the fantacy and science fiction elements of her novels. I find that knowing the author really makes it easy to get into the books. Its a contageous process.

The other thing that helped me get into reading even more, starting in 2023, was a book club we started at work. We have this culture and community initiative on the user experience team. Book Club has been one of our most successful activities. We choose a title, typically from our O’Reilly Reading account, and host a zoom call to discuss once-a-month. O’Reilly is all technology and business titles. Luckily it also has a lot of design books. So it has me re-reading some of the classics like: Don't Make Me Think, The Design of Everyday Things, and Articulating Design Decisions.

About the Bookshelf #

I’ve really wanted a digital bookshelf for a while now. I just had a bunch of false starts because of the technology. Setting up a whole content management system was just overkill for what I wanted to do. I would be spending more time coding that I would be reading. Luckily the platform I use to make this blog, Eleventy, has a really handy feature called Global Data Files. You just drop some JSON into a folder and edit the content in plain text.

[  
{
"cover": "https://learning.oreilly.com/covers/9781098168612/500h/",
"coverAlt": "Apparently the 48th A Book Apart Book with forward by Cassidy Williams",
"link": "https://abookapart.com/products/surviving-change-at-work",
"title": "Surviving Change at Work",
"subTitle": "Find clarity as you drive toward the next step in your tech career.",
"author": "Vanessa Gennarelli",
"tags": ["Business", "Technology", "Career Development"],
"description": "This book is great because it also has some practical exercises to complete. I frequently recommmend this title."
}
]

To display that content on a webpage its an even simpler format. You write the template once and it will display all the books. These are some very simple web development patterns. But it makes be proud to make something like this work in one weekend.

<ol class="bookshelf">  
{% for book in books.2024bookList -%}
<li class="filter-grid-item" data-tags="{{ book.tags | join(', ') }}">
<a href="{{ book.link }}"><img loading="lazy" width="180" height="270" src="{{ book.cover }}" alt="{{ book.coverAlt }}" /></a>
<div class="info">
<h3>{{ book.title }}</h3>
<p>{{ book.subTitle }}</p>
<p>{{ book.author }}</p>
{% if book.description %}
<details>
<summary><strong>Notes</strong></summary>
<div class="notes">
<p>{{ book.description }}</p>
</div>
</details>
{% endif %}
</div>
</li>
{% endfor -%}
</ol>

Next Steps #

  1. Read
  2. Add some filtering to the bookshelf based on the tags I have already included
  3. Read more
  4. Experiment with the new popover (or maybe the dialog) html element to display the description data
  5. Read even more
🧐

Related

  1. A group of nine book covers with one spot remaining vacant

    Culture Secrets

  2. A wide shot of the Arc de Triomphe

    Fontana

  3. An illustration of a french bulldog that is apparently from brooklyn

    Fan Art

  4. A collage of water color and text elements

    Hope Act Love

  5. Man holding a strange star-gazing object to the sky

    Cosmos

  6. A printed promotional newsprint sitting on a table alongside other ephemera like a typewriter and hipster magazines

    Caught Mapping

More posts can be found in the archive →