Skip to content
Search
Cart

Adelaide's Newest Book Club

One Book. One Bunch. $60 a Month.

A different genre every month, always paired with a fresh, locally grown market bunch.

East End Flower Market's Bloomin' Book Club takes the guesswork out of a good night in. Each month, for one simple price of $60, we pair a hand-picked read — fiction, romance, mystery, thriller, and everything in between — with a fresh market bunch chosen to match. Delivered straight to your door in the first few days of the month.

East End Flower Market Bloomin' Book Club: November bloominbookclub

November: The Midnight Estate by Kelly Rimmer

Everyone voted and the winning genre was for a thriller/mystery, we had five books in the running, and the The Midnight Estate by Kelly Rimmer was chosen as our book. 

Fiona Winslow retreats to Wurimbirra, her crumbling family estate, determined to restore it. Then she picks up a book called The Midnight Estate that mirrors her own life, and as the lines between fiction and reality blur, she has to ask how well she really knows her family. It’s a gothic, generation-spanning mystery with a book-within-a-book twist. 

It’s perfect timing after Halloween to dig into something a bit spookier, so I’m really looking forward to this one.

Help us choose our December book

A little information about each book we are thinking about for next month. 

We can't wait to see which one wins! Voting below - open until November 5th!

  • People Like Us by Sally Piper

    After losing her family home in a bitter divorce, Tina Lamb finds herself living in a caravan on the city’s fringes. When she takes a job caring for a wealthy, sharp-tongued older woman, an unlikely friendship begins. It’s a warm story about female friendship and fresh starts.

  • Common Decency by Tom Allen

    A darkly comic debut novel from the beloved comedian. The neighbours of a tidy English cul-de-sac band together to save their beloved oak tree from developers, and as tensions rise, the secrets of Oak Drive start to spill out.

  • It’s a Scorcher! by William McInnes

    A nostalgic, funny and heartfelt collection of stories about the Australian summer. Think backyard cricket, endless family road trips, Boxing Day Tests and sunburnt shoulders.

  • How Can My Manager Be So Stupid? by Kazumasa Hayami

    Kyoko Tanihara still loves books, but life at her bookstore is wearing thin, mostly thanks to her infuriating, self-help-obsessed manager. Then she reads a book that makes her wonder if he’s not so stupid after all. It’s a funny, relatable translation from Japanese, especially if you’ve ever worked in a customer-facing job.

  • No One’s Looking by Brooke Davis

    It’s a stinking-hot January in suburban Australia, and two middle-aged sisters, Susan and Vicki, are each on the verge of something unravelling. It’s a comedic, uplifting novel about rage, family and finding out it’s never too late to change who people expect you to be.

East End Flower Market The Names by Florence Knapp

October: The Names by Florence Knapp

In October we're reading The Names by Florence Knapp. It sounds fascinating: a story about how a name can shape a life, following three different possible names for one baby and the three very different futures each one creates.

Plus, a bonus read. We have a handful of copies of Look What You Made Me Do by John Lanchester, a close second in our September vote, so we know it's on plenty of TBR piles. We know one book a month isn't enough for a lot of us, or this is a potential option for anyone who has already read The Names but still wants to get involved.

Happy reading!

Book club suggestions

Have a book you'd love to see featured in our book club? Share your suggestions with us!

How it Works

We choose your book. Each month, our team picks (or opens it up to a member vote) — spanning fiction, romance, mystery/thriller and everything in between.

We pair it with a bunch. A fresh, locally grown market bunch, chosen to match the mood of that month's read.

It lands on your door. Delivered in the first few days of each month — perfect timing for a cosy night in. All for one simple price: $60.

Join us every month automatically with our Bloomin' Book Club Subscription — free delivery included — or pick and choose which months suit you with a once-off order, no commitment required.

September: The Correspondent by Virginia Evans

The Correspondent by Virginia Evans is an epistolary novel told entirely through letters and emails. It follows Sybil Van Antwerp, a sharp-tongued retired lawyer in her seventies, as she manages family grief, failing eyesight, and hidden secrets from her desk.

This was pretty much a 5-star read from everyone! A great story, and an even better way for us to officially kick off our Bloomin' Book Club!

See what our book club thought below:

Got Questions?

Everything you need to know about East End Flower Market's Bloomin' Book Club, from delivery to discussion.

What genres of books will we read?

A mix! General fiction, romance, mystery/thriller — you name it, we'll give it a go. We want the club to feel like a fun surprise each month, not just one genre on repeat.

How are the books chosen?

Some months our team will pick for you, and other months we'll open it up to a member vote. Either way, we'll always send an email letting you know that month's pick.

When will my book and flowers arrive?

In the first few days of the month, following the previous month's pre-order cut-off. You'll receive tracking information once it's on its way.

Is delivery included?

Free delivery is included for subscription members. One-off orders are subject to standard delivery pricing.

Can I skip a month?

Absolutely! You can manage your subscription through your portal, so if you're going to be away — or just not feeling that month's book — skipping is easy.

What if I don't like the book?

We'd love for you to share your thoughts with us over on our dedicated book club social channels — the good, the bad, all of it! If you already know a book's not going to be your thing, we'd recommend skipping that month if you're a subscriber. As it comes down to personal taste, we're not able to offer a refund or exchange in this case.

How will we discuss the books?

For now, we'll have a dedicated social media channel where members can chat about each month's read, and we'll share some of our favourite comments on our socials too. As the club grows, the way we connect might evolve — but we'll always keep you in the loop.

Shop Our Favourite Collections

Same day delivery for orders placed before 12pm

`; document.querySelector('body').insertAdjacentHTML('beforeend', snackBarHtml); window.addEventListener('message', toasterEventListener, false); function toasterEventListener(event) { if (!isAppstleLoyaltyMessage(event)) return; if (typeof event.data === 'string' && event.data.startsWith('appstle_message_for_notification|')) { var message = event?.data?.split('|')[1]; showAppstleLoyaltyToaster(message); } } let snackBarIndex = 0; async function showAppstleLoyaltyToaster(msg) { const purifier = await window.appstleLoyaltyLoadSanitizer(); var snackBar = document.getElementById('snackbar'); snackBar.classList.add('show'); snackBar.insertAdjacentHTML('beforeend', `
`); const description = document.getElementById(`elem${snackBarIndex}`).querySelector('.description'); if (purifier) description.innerHTML = purifier.sanitize(String(msg), { ALLOWED_TAGS: ['a', 'b', 'br', 'em', 'i', 'span', 'strong'], ALLOWED_ATTR: ['href', 'title', 'class'], }); else description.textContent = String(msg); const el = snackBarIndex; setTimeout(function() { if (document.getElementById(`elem${el}`)) document.getElementById(`elem${el}`).remove(); }, 5000); snackBarIndex++; } const closeSnackBar = (el) => document.getElementById(el).remove(); document.addEventListener('DOMContentLoaded', () => { }); const executeLoyaltyWidget = () => { window.appstleLoyaltyLauncher?.mount({ escapeAttribute: escapeLoyaltyAttribute, navigationUrl: loyaltyNavigationUrl, sanitizeTitle: title => window.appstleLoyaltyLoadSanitizer().then(p => (p ? sanitizeLoyaltyLabel(title, p, false) : null)), preparePopupWindow: win => { win.__st = window.__st; win.Shopify = { shop: location.host }; win.appstle_public_domain = location.host; } }); } const launcherScript = new Promise(resolve => { const script = document.createElement('script'); script.src = "https:\/\/cdn.shopify.com\/extensions\/01a1839d-8f78-7058-8c23-100012412a28\/appstle-loyalty-1513\/assets\/appstle-loyalty-launcher.js"; script.onload = resolve; script.onerror = resolve; document.head.appendChild(script); }); try { const versionUrl = `${location.origin}/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/app-loyalty-version`; fetch(versionUrl) .then(res => res.json()) .then(data => { if (data) { const widgetJsUrl = new URL(_ALConfig.widgetJsPath); const widgetCssUrl = new URL(_ALConfig.widgetCssPath); widgetJsUrl.searchParams.set('v', data); widgetCssUrl.searchParams.set('v', data); _ALConfig.widgetJsPath = widgetJsUrl.toString(); _ALConfig.widgetCssPath = widgetCssUrl.toString(); } }) .catch(() => { }) .finally(() => { launcherScript.then(executeLoyaltyWidget); }); } catch (err) { launcherScript.then(executeLoyaltyWidget); } const storeCreditMismatch = _ALConfig?.customerId && _ALConfig?.customerStoreCreditBalance >= 0 && _ALConfig?.customerLoyalty?.storeCreditBalance >= 0 && _ALConfig?.customerLoyalty?.storeCreditBalance !== _ALConfig?.customerStoreCreditBalance; if (storeCreditMismatch && _ALConfig.shop === 'olineloyalty27.myshopify.com') { const updateCustomerUrl = `/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/cp/api/update-customer`; try { fetch(updateCustomerUrl, { method: 'POST', headers: { 'X-Requested-With': 'XMLHttpRequest' } }) .then((response) => { if(response.ok) {} }) .catch(() => {}); } catch (err) {} } const dedicatedPageURL = new URL(window.location.href); const decodeUrl = (content) => { if (typeof content !== 'string') return content; try { const htmlDecoded = content?.replace(/\\\//g, '/'); return JSON.parse(`"${htmlDecoded}"`); } catch (error) { console.error('Error parsing content:', error); return content; } }; if (dedicatedPageURL?.searchParams?.get('appstle_referral') && _ALConfig?.widget_setting?.widgetType === 'DEDICATED_PAGE') { const customUrl = decodeUrl(_ALConfig?.widget_setting?.referralCustomRedirectUrl); if (customUrl) { const normalizedCustomPath = customUrl.startsWith('/') ? customUrl : `/${customUrl}`; if (window.location.pathname !== normalizedCustomPath) { const redirectUrl = new URL(window.location.href); redirectUrl.pathname = normalizedCustomPath; window.open(redirectUrl.toString(), '_self'); } } else if (dedicatedPageURL?.searchParams?.get('appstle_referral') && _ALConfig?.widget_setting?.widgetType === 'DEDICATED_PAGE' && !window.location.href.includes(_ALConfig?.proxy_path_prefix)) { window.open(`${window.location.origin}/${_ALConfig?.proxy_path_prefix}${window.location.search}`, '_self'); } } const dedicatedPageEventListener = (event) => { if (event.origin !== window.location.origin || event.source !== window) return; if (event.data === 'refresh_appstle_loyalty_page') { initiateAppstleLoyaltyPage(); console.log('REFRESH PAGE'); } }; window.addEventListener('message', dedicatedPageEventListener, false); function initiateAppstleLoyaltyPage() { if (document.querySelector('#appstleLoyaltyPage')) { const appstleLoyaltyPageElement = document.getElementById('appstleLoyaltyPage'); while (!appstleLoyaltyPageElement.__appstleReactRoot && appstleLoyaltyPageElement.firstChild) { appstleLoyaltyPageElement.firstChild.remove(); } if (appstleLoyaltyPageElement) { const loadDedicatedPageAsset = (createAsset, attempt, onSettle) => { const asset = createAsset(); let settled = false; const settle = () => { if (settled) return; settled = true; if (typeof onSettle === 'function') { onSettle(); } }; asset.onload = settle; asset.onerror = () => { asset.remove(); if (attempt < 4) { setTimeout(() => loadDedicatedPageAsset(createAsset, attempt + 1, onSettle), 1000 * Math.pow(2, attempt - 1)); } else { settle(); } }; } const appendDedicatedPageWidgetScript = () => { loadDedicatedPageAsset(() => { const s = document.createElement('script'); s.setAttribute('src', _ALConfig?.widgetJsPath); s.async = false; document.body.appendChild(s); return s; }, 1); } const executeDedicatedPageScript = () => { let widgetScriptAppended = false; const appendWidgetScriptOnce = () => { if (widgetScriptAppended) return; widgetScriptAppended = true; appendDedicatedPageWidgetScript(); }; try { const preload = document.createElement('link'); preload.rel = 'preload'; preload.as = 'script'; preload.href = _ALConfig?.widgetJsPath; document.head.appendChild(preload); } catch (e) {} loadDedicatedPageAsset(() => { const link = document.createElement('link'); link.type = 'text/css'; link.rel = 'stylesheet'; link.href = _ALConfig?.widgetCssPath; document.head.appendChild(link); return link; }, 1, appendWidgetScriptOnce); setTimeout(appendWidgetScriptOnce, 8000); } try { const versionUrl = `${location.origin}/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/app-loyalty-version`; fetch(versionUrl).then(res => res.json()).then(data => { if (data) { const widgetJsUrl = new URL(_ALConfig.widgetJsPath); const widgetCssUrl = new URL(_ALConfig.widgetCssPath); widgetJsUrl.searchParams.set('v', data); widgetCssUrl.searchParams.set('v', data); _ALConfig.widgetJsPath = widgetJsUrl.toString(); _ALConfig.widgetCssPath = widgetCssUrl.toString(); } }).catch(() => {}).finally(() => { executeDedicatedPageScript(); }); } catch (err) { executeDedicatedPageScript(); } } } else { setTimeout(() => { initiateAppstleLoyaltyPage(); }, 2000); } } const dedicatedPageReferralUrl = new URL(window.location.href)?.searchParams.get('appstle_referral'); if (_ALConfig?.widget_setting?.showWidget === true) { initiateAppstleLoyaltyPage(); } (async function() { const isAvailableVisitShop = _ALConfig?.pointEarnRules?.length > 0 && _ALConfig?.pointEarnRules?.find((rule) => rule?.type === 'VISIT_SHOP' && rule?.status === 'ACTIVE'); if (_ALConfig?.customerId && isAvailableVisitShop) { if (!sessionStorage.getItem('syncVisitStore') && ((_ALConfig?.customerId && isAvailableVisitShop && isAvailableVisitShop?.id) || (_ALConfig?.referralEnabled && _ALConfig?.referralLoyalty?.referralType === 'VISIT_SHOP'))) { try { const response = await fetch(`/${_ALConfig?.proxy_path_prefix || 'apps/loyalty'}/cp/api/customer-visit-store`, { method: 'POST', headers: {'Content-Type': 'application/json', 'X-Requested-With': 'XMLHttpRequest'}, }); if (response?.ok) { sessionStorage.setItem('syncVisitStore', 'true'); } } catch (error) { console.error('Error:', error); } } } })(); const loyaltyCustomStyles = document.createElement('style'); loyaltyCustomStyles.id = 'appstle-loyalty-custom-styles'; loyaltyCustomStyles.textContent = _ALConfig?.widget_setting?.customCss || ''; document.body.appendChild(loyaltyCustomStyles);