Skip to content
A fully-functioning book tracking website—my own LibraryThing, basically.
Branch: master
Clone or download
Latest commit 92fdca4 Mar 17, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
.vscode Update debugger launch Feb 9, 2019
react-redux fix single quotes from prettier Mar 15, 2019
.gitignore book offline sync moved to GraphQL Nov 27, 2018 readme tweaks Feb 9, 2018
app.js update esm Jun 30, 2018
favicon.ico New favicon Apr 11, 2016
moveHttpCovers.js start conversion util Nov 23, 2017
nodemon.json adding nodemon config file for easy restarting when server-side files… Dec 23, 2015
package.json Mongo endpoint updated Mar 15, 2019


A fully functioning book collection website hosted at

I made this as a way to learn and try out modern development tools I'm interested in, and also to track my own library. Progress is limited to whatever time I can find, which means parts of this may be incomplete at any given time. Currently you can create an account; scan in books, which are looked up via AWS; view, edit, filter, and tag your books with (hierarchical) subjects as desired; and most recently I've added a drag and drop UI to manage these hierarchical subjects. I've just started adding in some settings management, like enabling (if you want) public read-only access to your library, password reset, etc.

The books view looks something like this

main desktop table view

and there's a somewhat decent mobile view

mobile friendly view 1

I initially made this with the goal of creating iterations of the site with React, Angular, Aurelia, etc. So far I've felt no desire to leave React or stop iterating on the (single) React version. Nonetheless, it's designed so that all iterations will share the same data, data access, controllers, and AWS access code. Most controllers are sniffed out and wired with my easy-express-controllers , though that's slowly but surely being converted to GraphQL with my mongo-graphql-starter and micro-graphql-react projects. Data access is through Mongo, and all book info is looked up with my own AWS credentials, subject to an unfortunate one-request-per-second limit imposed by Amazon.

The current React iteration uses Redux, and is in the react-redux directory, with TypeScript recently added to help keep my reducers and selectors straight. My own, simple-react-bootstrap provides React bindings for the Bootstrap components Modal, NavBar and Tab. I've also added react-dropzone to support uploading book cover images (for when AWS doesn't have it for some reason), and drag and drop via react-dnd for the subjects screen. Lastly, the homepage has some very basic D3 visualizations of your library.

Future iterations may potentially look at ... whatever is thriving whenever the React version is done, if it ever is...

You can’t perform that action at this time.