Books
Improving safety and welfare at sea, one book at a time.
With around 100 years’ experience providing books at sea, our crew libraries supply 20,000 books to ships across the world, so seafarers can have the books they want to read.
With around 100 years’ experience providing books at sea, our crew libraries supply 20,000 books to ships across the world, so seafarers can have the books they want to read.
Learn about our non-returnable paperback library available to seafarers and ships worldwide.
Read MoreWe offer a range of maritime titles and are an authorised distributor of IMO Publishing.
Read MoreWe offer an excellent and prompt service, fulfilling the needs of corporate customers globally.
Read MoreStart typing your email on the grey line below and click the white and blue rectangular 'sign up' button to subscribe to our newsletter
SELECT (`page`.`id`) AS `id`, (`page`.`parent`) AS `parent`, (`page`.`ordinal`) AS `ordinal`, (`page`.`name`) AS `name`, (`page`.`title`) AS `title`, (`page`.`summary`) AS `summary`, (`page`.`content`) AS `content`, (`page`.`theme`) AS `theme`, (`page`.`meta_title`) AS `meta_title`, (`page`.`meta_description`) AS `meta_description`, (`page`.`slug`) AS `slug`, (`page`.`password`) AS `password`, (`page`.`donation_text`) AS `donation_text`, (`page`.`donation_amounts`) AS `donation_amounts`, (`page`.`grid`) AS `grid`, (`page`.`grid_title`) AS `grid_title`, (`page`.`static`) AS `static`, (`page`.`donate`) AS `donate`, (`page`.`publish`) AS `publish`, (`page`.`discard`) AS `discard`, (`page`.`updated`) AS `updated`, ( SELECT `image` FROM `page_image` WHERE `page_image`.`discard` IS FALSE AND `page_image`.`publish` IS TRUE AND `page_image`.`page_id` = `page`.`id` ORDER BY `page_image`.`ordinal` ASC LIMIT 1) AS `image` FROM `page` WHERE `page`.`discard` IS FALSE AND `page`.`publish` IS TRUE ORDER BY `page`.`parent` ASC, `page`.`ordinal` ASC, `page`.`name` ASC, `page`.`id` ASC
Command completed in 0.0032150745391846 seconds - 63 row(s) affected.
SELECT (`page_image`.`id`) AS `id`, (`page_image`.`page_id`) AS `page_id`, (`page_image`.`ordinal`) AS `ordinal`, (`page_image`.`name`) AS `name`, (`page_image`.`title`) AS `title`, (`page_image`.`summary`) AS `summary`, (`page_image`.`url`) AS `url`, (`page_image`.`image`) AS `image`, (`page_image`.`image_mobile`) AS `image_mobile`, (`page_image`.`image_alt`) AS `image_alt`, (`page_image`.`publish`) AS `publish`, (`page_image`.`discard`) AS `discard`, (`page_image`.`updated`) AS `updated` FROM `page_image` WHERE `page_image`.`discard` IS FALSE AND `page_image`.`publish` IS TRUE ORDER BY `page_image`.`ordinal` ASC, `page_image`.`name` ASC, `page_image`.`id` ASC
Command completed in 0.00077915191650391 seconds - 62 row(s) affected.
SELECT (`page_section`.`id`) AS `id`, (`page_section`.`page_id`) AS `page_id`, (`page_section`.`ordinal`) AS `ordinal`, (`page_section`.`type`) AS `type`, (`page_section`.`content`) AS `content`, (`page_section`.`publish`) AS `publish`, (`page_section`.`discard`) AS `discard`, (`page_section`.`updated`) AS `updated`, (`page`.`name`) AS `page_name` FROM `page_section` INNER JOIN `page` ON `page`.`id` = `page_section`.`page_id` AND `page`.`discard` IS FALSE AND `page`.`publish` IS TRUE WHERE `page_section`.`discard` IS FALSE AND `page_section`.`publish` IS TRUE AND `page_section`.`page_id` = 93 ORDER BY `page_section`.`ordinal` ASC, `page_section`.`id` ASC
Command completed in 0.00092506408691406 seconds - 0 row(s) affected.
SELECT (`notice`.`id`) AS `id`, (`notice`.`ordinal`) AS `ordinal`, (`notice`.`name`) AS `name`, (`notice`.`title`) AS `title`, (`notice`.`content`) AS `content`, (`notice`.`image`) AS `image`, (`notice`.`button_text`) AS `button_text`, (`notice`.`button_link`) AS `button_link`, (`notice`.`position`) AS `position`, (`notice`.`icon`) AS `icon`, (`notice`.`publish_date`) AS `publish_date`, (`notice`.`publish_until`) AS `publish_until`, (`notice`.`publish`) AS `publish`, (`notice`.`discard`) AS `discard`, (`notice`.`updated`) AS `updated` FROM `notice` WHERE `notice`.`discard` IS FALSE AND `notice`.`publish` IS TRUE AND `notice`.`publish_until` >= CURRENT_DATE ORDER BY `notice`.`publish_date` DESC, `notice`.`id` DESC LIMIT 1
Command completed in 0.00054693222045898 seconds - 0 row(s) affected.
SELECT (`page_section`.`id`) AS `id`, (`page_section`.`page_id`) AS `page_id`, (`page_section`.`ordinal`) AS `ordinal`, (`page_section`.`type`) AS `type`, (`page_section`.`content`) AS `content`, (`page_section`.`publish`) AS `publish`, (`page_section`.`discard`) AS `discard`, (`page_section`.`updated`) AS `updated`, (`page`.`name`) AS `page_name` FROM `page_section` INNER JOIN `page` ON `page`.`id` = `page_section`.`page_id` AND `page`.`discard` IS FALSE AND `page`.`publish` IS TRUE WHERE `page_section`.`discard` IS FALSE AND `page_section`.`publish` IS TRUE AND `page_section`.`page_id` = 93 ORDER BY `page_section`.`ordinal` ASC, `page_section`.`id` ASC
Command completed in 0.0005340576171875 seconds - 0 row(s) affected.
SELECT (`banner`.`id`) AS `id`, (`banner`.`name`) AS `name`, (`banner`.`url`) AS `url`, (`banner`.`image`) AS `image`, (`banner`.`image_alt`) AS `image_alt`, (`banner`.`publish`) AS `publish`, (`banner`.`discard`) AS `discard`, (`banner`.`updated`) AS `updated`, (`page_banner`.`ordinal`) AS `ordinal` FROM `banner` INNER JOIN `page_banner` ON `page_banner`.`banner_id` = `banner`.`id` AND `page_banner`.`page_id` = 93 WHERE `banner`.`discard` IS FALSE AND `banner`.`publish` IS TRUE AND `banner`.`id` IN ( SELECT `banner_id` FROM `page_banner` WHERE `page_banner`.`page_id` = 93) ORDER BY `page_banner`.`ordinal` ASC, `banner`.`name` ASC
Command completed in 0.00088596343994141 seconds - 0 row(s) affected.