(function(){ // Only act if we just came back from Stripe var qs = new URLSearchParams(location.search || ""); var sid = qs.get("session_id") || qs.get("cs"); if (!sid) return; // Persist ids if present var uuid = qs.get("uuid") || localStorage.getItem("lm_uuid") || ""; var rid = qs.get("record_id") || qs.get("rid") || localStorage.getItem("lm_record_id") || ""; try { if (uuid) localStorage.setItem("lm_uuid", uuid); } catch(e){} try { if (rid) localStorage.setItem("lm_record_id", rid); } catch(e){} // Build canonical URL: query BEFORE hash, and land on #create-account var base = location.origin + "/"; var qp = new URLSearchParams(); if (uuid) qp.set("uuid", uuid); if (rid) qp.set("record_id", rid); qp.set("session_id", sid); var target = base + "?" + qp.toString() + "#create-account"; if (location.href !== target) location.replace(target); })();
(function(){ if (window.__LM_ONCE__) return; window.__LM_ONCE__ = true; /* Rename the Home CTA + wire link to #writingroom; shorten Writing Room CTAs to "Start" */ function renameCTA(){ var nodes = Array.from(document.querySelectorAll('a, button')); nodes.forEach(function(n){ var text = (n.textContent || '').trim().toLowerCase(); // Home page primary CTA → "Start Your Story" + link to #writingroom if (n.closest('#home')) { if (text.includes('start')) { n.textContent = 'Start Your Story'; n.setAttribute('href', '#writingroom'); } } // Writing Room chapter CTAs → just "Start" if (n.closest('#writingroom')) { if (text.includes('start your story') || text.includes('begin') || text.includes('go') || text === 'start chapter 1' || text === 'start chapter') { n.textContent = 'Start'; } // ensure the button gets the consistent style n.classList.add('wr-btn'); } }); } /* Move “Chapter 1 — Where It All Began” into the Back/Next row (footer) */ function relocateChapterTitle(){ var s = document.querySelector('#ch1q2a'); if (!s) return; var h1 = s.querySelector('h1');          // "Chapter 1" var h2 = s.querySelector('h2');          // "Where It All Began" var title = (h1 ? h1.textContent.trim() : '') || ''; var sub   = (h2 ? h2.textContent.trim() : '') || ''; if (!title && !sub) return; // Try to find the actual Back/Next row that holds both buttons var prev = document.getElementById('prevBtn'); var next = document.getElementById('nextBtn'); if (!prev || !next) return; // Climb to their shared container var row = prev; for (var i=0; i<6 && row; i++){ if (row.contains(next) && row.nodeType===1 && row.tagName!=='BUTTON') break; row = row.parentElement; } if (!row || !row.contains(next)) return; row.classList.add('lm-actions'); if (!row.querySelector('.lm-footer-title')) { var span = document.createElement('span'); span.className = 'lm-footer-title'; span.textContent = sub ? (title + ' — ' + sub) : title; row.appendChild(span); } // Hide the top headings so they don’t duplicate if (h1) h1.style.display = 'none'; if (h2) h2.style.display = 'none'; } /* DOM ready helper */ function ready(fn){ if (document.readyState === 'loading') { document.addEventListener('DOMContentLoaded', fn, { once:true }); } else { fn(); } } ready(function(){ renameCTA(); relocateChapterTitle(); }); // Re-run after potential Carrd defers / anchor navigation window.addEventListener('load', function(){ setTimeout(function(){ renameCTA(); relocateChapterTitle(); }, 50); setTimeout(function(){ renameCTA(); relocateChapterTitle(); }, 400); }); })();

LifeMine Stories

Write your life story — one chapter at a time.

How it works

  • Write your life story in 7 chapters, each dedicated to a different era of your life.
  • Answer a set of questions designed specifically for each chapter.
  • Your responses will generate a "rough draft" in story form.
  • Review the draft and edit to make any changes or fine tune the details.
  • Once you're satisfied, save your edits, choose a narrator, and finalize.
  • Complete all 7 chapters for your full life story, yours to share with family and friends.
    Each chapter will be delivered in 3 formats:
    • An Online version for easy viewing and sharing
    • A Printable PDF
    • An MP3 audiobook professionally narrated by AI

Writing Room

Choose a chapter. Start anywhere, save your progress, and return anytime.
CHAPTER 1

Where It All Began

First memories and the seasons of early childhood

Start
CHAPTER 2

Between Recess and Reality

School years — friends, teachers, milestones, and lessons learned.

Soon
CHAPTER 3

On My Own

Stepping into adulthood — jobs, independence, and early challenges.

Soon
CHAPTER 4

Love, in All Its Seasons

Relationships, romance, and the people who shaped your heart.

Soon
CHAPTER 5

The Daily Grind

Work, passions, and the path that shaped your purpose and identity.

Soon
CHAPTER 6

My Family, My Foundation

Heritage and the people you call family.

Soon
CHAPTER 7

What I’ve Come to Know

Perspective and lessons — turning points and hopes for the future.

Soon

Unlock Your Full Story

Shareable Link & Email

$4

We'll deliver a viewable web link and an email copy of your complete chapter. No downloads included.

Buy
Pricing is per chapter

PDF Bundle

$8

Shareable web link, email copy, and a printable, formatted PDF.

Buy
Pricing is per chapter

Audio / PDF Bundle

$12

Everything above plus a narrated MP3 in a lifelike AI voice.

Buy
Pricing is per chapter

Your Voice • Audio / PDF

$16

Read a 60-second sample; we'll voice the chapter with your tone, plus PDF and web link.

Buy
Pricing is per chapter
/* */
Create your account


We’ll save your purchase to your account so you can work at your own pace and return anytime to complete your chapter.

You’ll be returned here after you sign up or log in.
(function(){ // === CONFIG === const MAKE_BRIDGE_URL = "YOUR_MAKE_WEBHOOK_URL"; // <- paste your Make webhook URL for the "link account" step // Show this block only at #create-account const wantCreate = location.hash.replace('#','') === 'create-account'; const el = document.getElementById('lm-create-account'); if (!el) return; if (wantCreate) el.style.display = 'block'; // Helper: read URL params const qp = new URLSearchParams(location.search); const payloadFromURL = { uuid:         qp.get('uuid') || '', product_type: qp.get('product_type') || '', price:        qp.get('price') || '', session_id:   qp.get('session_id') || '' }; // Persist them in case the modal redirects try { localStorage.setItem('lm_checkout_params', JSON.stringify(payloadFromURL)); } catch(e) {} // When the member is ready (logged in or after signup), bridge data to Make function linkAccountIfPossible(ms){ if (!wantCreate) return; const member = ms?.member; if (!member || !member["email"]) return; // not logged in yet let params = payloadFromURL; try { if (!params.uuid) { const saved = JSON.parse(localStorage.getItem('lm_checkout_params') || '{}'); params = Object.assign({}, saved, params); } }catch(e){} // Require uuid + session_id at minimum if (!params.uuid || !params.session_id) return; // Build bridge payload const body = { action: "link_purchase_to_member", member_id: member.id, email: member["email"], uuid: params.uuid, product_type: params.product_type || '', price: params.price || '', session_id: params.session_id }; // Post to Make once (idempotent-ish with session_id) fetch(MAKE_BRIDGE_URL, { method: "POST", headers: { "Content-Type":"application/json" }, body: JSON.stringify(body), credentials: "omit", cache: "no-store", }).catch(()=>{}); } // Memberstack hook window.MemberStack?.onReady.then(function(ms){ // If user logs in or signs up via modal, Memberstack sets ms.member linkAccountIfPossible(ms); // Also listen for changes (some sites need this) try { ms.on('member.login', () => linkAccountIfPossible(ms)); ms.on('member.updated', () => linkAccountIfPossible(ms)); } catch(e){} }); })();
1 of 13

    0 / 10000
    Chapter 1 — Where It All Began

    My Life

    by —
    Chapter 1
    Where It All Began

    Loading your chapter…