Files
boker/templates/landing.html
T
2026-06-29 16:31:17 -07:00

512 lines
27 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
{% extends "base.html" %}
{% block title %}Free Poker Tracker, Ledger, Stats & Profit/Loss App · myboker.org{% endblock %}
{% block meta_description %}myboker.org, also searched as My Boker, is a free poker tracker and poker ledger for home games: track sessions, buy-ins, cashouts, stats, profits, losses, settlements, and private league bookkeeping.{% endblock %}
{% block meta_keywords %}myboker, my boker, free poker tracker, free poker ledger, poker ledger tracker, poker stats tracker, poker profit loss tracker, poker bookkeeping app, home poker tracker, poker league tracker, poker bankroll tracker{% endblock %}
{% block structured_data %}
<script type="application/ld+json">
{{ {
"@context": "https://schema.org",
"@type": "SoftwareApplication",
"name": "myboker.org",
"alternateName": ["myboker", "My Boker", "my boker", "Boker poker tracker"],
"url": seo_site_url,
"applicationCategory": "FinanceApplication",
"operatingSystem": "Web",
"description": "Free poker tracker and poker ledger for home games, private leagues, player stats, profit and loss tracking, buy-ins, cashouts, settlement records, and poker bookkeeping.",
"keywords": "free poker tracker, poker ledger, poker stats, poker profit tracker, poker loss tracker, poker bookkeeping, home poker tracker, poker league tracker",
"featureList": [
"Poker session tracking",
"Append-only poker ledger",
"Buy-in and cashout records",
"Player profit and loss stats",
"League leaderboards",
"Settlement and bookkeeping totals",
"Private home poker league management"
],
"offers": {
"@type": "Offer",
"price": "0",
"priceCurrency": "USD"
}
} | tojson }}
</script>
<script type="application/ld+json">
{{ {
"@context": "https://schema.org",
"@type": "WebSite",
"name": "myboker.org",
"alternateName": ["myboker", "My Boker", "my boker"],
"url": seo_site_url,
"description": "Free poker tracker for private game ledgers, sessions, settlement, poker stats, profit and loss, and league leaderboards.",
"potentialAction": {
"@type": "SearchAction",
"target": seo_site_url ~ url_for('public.explore') ~ "?q={search_term_string}",
"query-input": "required name=search_term_string"
}
} | tojson }}
</script>
<script type="application/ld+json">
{{ {
"@context": "https://schema.org",
"@type": "FAQPage",
"mainEntity": [
{
"@type": "Question",
"name": "Is myboker.org a free poker tracker?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. myboker.org is free to use for tracking home poker sessions, private leagues, buy-ins, cashouts, player stats, profit and loss, and ledger records."
}
},
{
"@type": "Question",
"name": "What is My Boker used for?",
"acceptedAnswer": {
"@type": "Answer",
"text": "My Boker, written as myboker.org, is used for home poker bookkeeping: it records poker ledger events, calculates session totals, tracks player wins and losses, and builds league leaderboards."
}
},
{
"@type": "Question",
"name": "Can myboker.org track poker profits and losses?",
"acceptedAnswer": {
"@type": "Answer",
"text": "Yes. Each buy-in and cashout feeds player stats such as net profit or loss, ROI, win rate, recent form, and leaderboard rank."
}
}
]
} | tojson }}
</script>
{% endblock %}
{% block page_class %}page--landing{% endblock %}
{% block content %}
<div class="lp-hero">
<div class="lp-hero__content">
<p class="lp-kicker">Home Poker Tracking</p>
<h1 class="lp-h1">
<span class="lp-h1__line">Free poker</span>
<span class="lp-h1__line">tracker</span>
<span class="lp-h1__accent">for home games.</span>
</h1>
<p class="lp-sub">myboker.org, sometimes searched as My Boker, is a free poker ledger for sessions, buy-ins, cashouts, player stats, profit/loss tracking, league leaderboards, and game-night bookkeeping.</p>
<div class="lp-cta">
{% if is_logged_in %}
<a class="btn btn--primary btn--lg" href="{{ url_for('leagues.index') }}">Open my leagues →</a>
{% else %}
<a class="btn btn--primary btn--lg" href="{{ url_for('account.register') }}">Start your league →</a>
<a class="btn btn--ghost btn--lg" href="{{ url_for('account.login') }}">Sign in</a>
{% endif %}
</div>
<div class="lp-trust">
<span>No fees</span>
<span class="lp-trust__sep">·</span>
<span>Append-only ledger</span>
<span class="lp-trust__sep">·</span>
<span>Poker stats</span>
<span class="lp-trust__sep">·</span>
<span>Private by default</span>
{% if not is_logged_in %}
<span class="lp-trust__sep">·</span>
<a href="{{ url_for('public.explore') }}" style="color:inherit;text-decoration:underline;text-decoration-color:rgba(255,255,255,.2);">Search public leagues</a>
{% endif %}
</div>
</div>
<div class="lp-hero__visual" aria-hidden="true">
<div class="lp-demo__card">
<div class="lp-demo__head">
<div>
<span class="lp-demo__kicker">Friday Night Poker · Session #006</span>
<span class="lp-demo__title">Live event log <span class="lp-live-dot">● live</span></span>
</div>
<span class="lp-demo__meta">Jun 21 · 5 players</span>
</div>
<div class="lp-feed__rows">
<div class="lp-feed__row">
<span class="lp-feed__time">10:14</span>
<span class="lp-feed__player">Rivera</span>
<span class="lp-feed__pill lp-feed__pill--buyin">buy-in</span>
<span class="lp-feed__amt">$100</span>
</div>
<div class="lp-feed__row">
<span class="lp-feed__time">10:22</span>
<span class="lp-feed__player">Chen</span>
<span class="lp-feed__pill lp-feed__pill--buyin">buy-in</span>
<span class="lp-feed__amt">$50</span>
</div>
<div class="lp-feed__row">
<span class="lp-feed__time">10:41</span>
<span class="lp-feed__player">Okafor</span>
<span class="lp-feed__pill lp-feed__pill--buyin">buy-in</span>
<span class="lp-feed__amt">$50</span>
</div>
<div class="lp-feed__row">
<span class="lp-feed__time">11:56</span>
<span class="lp-feed__player">Novak</span>
<span class="lp-feed__pill lp-feed__pill--cashout">cashout</span>
<span class="lp-feed__amt lp-demo__num--pos">$160</span>
</div>
<div class="lp-feed__row">
<span class="lp-feed__time">12:02</span>
<span class="lp-feed__player">Rivera</span>
<span class="lp-feed__pill lp-feed__pill--rebuy">re-buy</span>
<span class="lp-feed__amt">$50</span>
</div>
<div class="lp-feed__row lp-demo__row--fade">
<span class="lp-feed__time">12:08</span>
<span class="lp-feed__player">Walsh</span>
<span class="lp-feed__pill lp-feed__pill--cashout">cashout</span>
<span class="lp-feed__amt lp-demo__num--neg">$30</span>
</div>
</div>
<div class="lp-feed__summary">
<div class="lp-feed__summary-cell">
<span class="lp-recon-label">Cash in</span>
<span class="lp-recon-val">$350</span>
</div>
<div class="lp-feed__summary-cell">
<span class="lp-recon-label">Paid out</span>
<span class="lp-recon-val lp-demo__num--pos">$190</span>
</div>
<div class="lp-feed__summary-cell">
<span class="lp-recon-label">House holds</span>
<span class="lp-recon-val lp-demo__num--neg">$160</span>
</div>
</div>
</div>
</div>
</div>
<div class="lp-stats-bar">
<div class="lp-stats-bar__inner">
<div class="lp-stats-bar__item">
<span class="lp-stats-bar__val">$0</span>
<span class="lp-stats-bar__lbl">Platform fee, always</span>
</div>
<span class="lp-stats-bar__sep"></span>
<div class="lp-stats-bar__item">
<span class="lp-stats-bar__val"></span>
<span class="lp-stats-bar__lbl">Sessions &amp; players</span>
</div>
<span class="lp-stats-bar__sep"></span>
<div class="lp-stats-bar__item">
<span class="lp-stats-bar__val">Append-only</span>
<span class="lp-stats-bar__lbl">Tamper-proof ledger</span>
</div>
<span class="lp-stats-bar__sep"></span>
<div class="lp-stats-bar__item">
<span class="lp-stats-bar__val">Private</span>
<span class="lp-stats-bar__lbl">Your data, your league</span>
</div>
</div>
</div>
<section class="lp-features">
<div class="lp-features__inner">
<div class="lp-sec-head">
<span class="lp-eyebrow">What's included</span>
<h2 class="lp-sec-title">A free poker ledger, stats tracker, and league bookkeeper.</h2>
<p class="lp-sec-sub">Everything your group needs to run a real poker league, built from the ground up for home games.</p>
</div>
<div class="lp-feat-grid">
<div class="lp-feat">
<div class="lp-feat__icon">
<svg viewBox="0 0 20 20" fill="none" aria-hidden="true">
<rect x="2" y="4" width="16" height="14" rx="2.5" stroke="currentColor" stroke-width="1.5"/>
<path d="M6 2v4M14 2v4M2 9h16" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
<path d="M6 12.5h3M6 15.5h5" stroke="currentColor" stroke-width="1.4" stroke-linecap="round"/>
</svg>
</div>
<h3 class="lp-feat__title">Free poker session tracker</h3>
<p class="lp-feat__desc">Open a session at the start of the night, log buy-ins and cashouts as they happen, then close it when the last player leaves. Multiple poker sessions on the same date auto-sequence as S1, S2.</p>
</div>
<div class="lp-feat">
<div class="lp-feat__icon">
<svg viewBox="0 0 20 20" fill="none" aria-hidden="true">
<rect x="1.5" y="11" width="4.5" height="7" rx="1.2" stroke="currentColor" stroke-width="1.5"/>
<rect x="7.75" y="7" width="4.5" height="11" rx="1.2" stroke="currentColor" stroke-width="1.5"/>
<rect x="14" y="2" width="4.5" height="16" rx="1.2" stroke="currentColor" stroke-width="1.5"/>
</svg>
</div>
<h3 class="lp-feat__title">Poker stats and leaderboards</h3>
<p class="lp-feat__desc">Set a minimum session count so regulars rank and one-time guests go provisional until they qualify. Sort by net profit, ROI, win rate, or recent form. Every stat is derived directly from raw ledger events.</p>
</div>
<div class="lp-feat">
<div class="lp-feat__icon">
<svg viewBox="0 0 20 20" fill="none" aria-hidden="true">
<rect x="3" y="2" width="14" height="16" rx="2" stroke="currentColor" stroke-width="1.5"/>
<path d="M7 7h6M7 10.5h6M7 14h3.5" stroke="currentColor" stroke-width="1.5" stroke-linecap="round"/>
</svg>
</div>
<h3 class="lp-feat__title">Poker ledger and bookkeeping</h3>
<p class="lp-feat__desc">Every event is logged and kept: buy-ins, cashouts, fronts, corrections, profits, and losses. Nothing is deleted; mistakes get fixed by appending. When a session closes, the house knows exactly what it holds and who is owed what.</p>
</div>
</div>
</div>
</section>
<section class="lp-showcase">
<div class="lp-showcase__inner">
<div class="lp-sec-head">
<span class="lp-eyebrow">In the app</span>
<h2 class="lp-sec-title">Your game. Your data. Always in sync.</h2>
<p class="lp-sec-sub">Every number your group tracks, in one place — from the moment chips hit the table.</p>
</div>
<div class="lp-showcase__grid" aria-hidden="true">
<div class="lp-demo__card">
<div class="lp-demo__head">
<div>
<span class="lp-demo__kicker">Friday Night Poker</span>
<span class="lp-demo__title">Sessions</span>
</div>
<span class="lp-demo__meta">6 total</span>
</div>
<div class="lp-sess-list">
<div class="lp-sess-row">
<div class="lp-sess-date">
<span class="lp-sess-date__mon">Jun</span>
<span class="lp-sess-date__day">21</span>
</div>
<div class="lp-sess-info">
<span class="lp-sess-label">Session 1</span>
<span class="lp-sess-meta">5 players · $250 pot</span>
</div>
<span class="lp-sess-pill lp-sess-pill--open">open</span>
</div>
<div class="lp-sess-row">
<div class="lp-sess-date">
<span class="lp-sess-date__mon">Jun</span>
<span class="lp-sess-date__day">14</span>
</div>
<div class="lp-sess-info">
<span class="lp-sess-label">Session 1</span>
<span class="lp-sess-meta">5 players · $300 pot</span>
</div>
<span class="lp-sess-pill lp-sess-pill--closed">closed</span>
</div>
<div class="lp-sess-row">
<div class="lp-sess-date">
<span class="lp-sess-date__mon">Jun</span>
<span class="lp-sess-date__day">7</span>
</div>
<div class="lp-sess-info">
<span class="lp-sess-label">Session 1</span>
<span class="lp-sess-meta">4 players · $200 pot</span>
</div>
<span class="lp-sess-pill lp-sess-pill--closed">closed</span>
</div>
<div class="lp-sess-row lp-sess-row--fade">
<div class="lp-sess-date">
<span class="lp-sess-date__mon">May</span>
<span class="lp-sess-date__day">31</span>
</div>
<div class="lp-sess-info">
<span class="lp-sess-label">Session 1</span>
<span class="lp-sess-meta">6 players · $350 pot</span>
</div>
<span class="lp-sess-pill lp-sess-pill--closed">closed</span>
</div>
<div class="lp-sess-row lp-sess-row--fade2">
<div class="lp-sess-date">
<span class="lp-sess-date__mon">May</span>
<span class="lp-sess-date__day">24</span>
</div>
<div class="lp-sess-info">
<span class="lp-sess-label">Session 1</span>
<span class="lp-sess-meta">5 players · $250 pot</span>
</div>
<span class="lp-sess-pill lp-sess-pill--closed">closed</span>
</div>
</div>
</div>
<div class="lp-demo__card">
<div class="lp-demo__head">
<div>
<span class="lp-demo__kicker">Friday Night Poker</span>
<span class="lp-demo__title">Session #006 · Jun 21</span>
</div>
<span class="lp-demo__meta">5 players · open</span>
</div>
<div class="lp-recon-grid">
<div class="lp-recon-cell">
<span class="lp-recon-label">Cash in</span>
<span class="lp-recon-val">$300</span>
</div>
<div class="lp-recon-cell">
<span class="lp-recon-label">Paid out</span>
<span class="lp-recon-val lp-demo__num--pos">$190</span>
</div>
<div class="lp-recon-cell">
<span class="lp-recon-label">House owes players</span>
<span class="lp-recon-val lp-demo__num--neg">$110</span>
</div>
<div class="lp-recon-cell">
<span class="lp-recon-label">Players owe house</span>
<span class="lp-recon-val">$0</span>
</div>
</div>
<div class="lp-result-thead">
<span>Player</span>
<span>Invested</span>
<span>Net</span>
<span>Open</span>
</div>
<div class="lp-result-row">
<span class="lp-demo__player">Rivera</span>
<span class="lp-demo__num">$50</span>
<span class="lp-demo__num lp-demo__num--pos">+$120</span>
<span class="lp-result-due">due $120</span>
</div>
<div class="lp-result-row">
<span class="lp-demo__player">Chen</span>
<span class="lp-demo__num">$100</span>
<span class="lp-demo__num lp-demo__num--pos">+$90</span>
<span class="lp-result-due">due $90</span>
</div>
<div class="lp-result-row">
<span class="lp-demo__player">Walsh</span>
<span class="lp-demo__num">$50</span>
<span class="lp-demo__num lp-demo__num--neg">-$50</span>
<span class="lp-result-settled">settled</span>
</div>
<div class="lp-result-row lp-demo__row--fade">
<span class="lp-demo__player">Okafor</span>
<span class="lp-demo__num">$50</span>
<span class="lp-demo__num lp-demo__num--pos">+$30</span>
<span class="lp-result-due">due $30</span>
</div>
<div class="lp-result-row lp-demo__row--fade2">
<span class="lp-demo__player">Novak</span>
<span class="lp-demo__num">$100</span>
<span class="lp-demo__num lp-demo__num--neg">-$100</span>
<span class="lp-result-settled">settled</span>
</div>
</div>
</div>
</div>
</section>
<section class="lp-callout">
<div class="lp-callout__inner">
<div class="lp-callout__text">
<span class="lp-eyebrow">Leaderboards</span>
<h2 class="lp-callout__title">Rankings built on raw data, not trust.</h2>
<p class="lp-callout__body">Every leaderboard stat is computed directly from the same append-only ledger that records each buy-in and cashout. Net profit, ROI, and win rate update the moment a session closes — no manual entry, no formulas to break.</p>
<ul class="lp-callout__list">
<li>Set a session minimum before a player earns a rank</li>
<li>Track rank movement with live ▲▼ deltas</li>
<li>Multiple sort modes: net, ROI, win rate, recent form</li>
<li>Provisional players shown separately until they qualify</li>
</ul>
</div>
<div class="lp-callout__demo" aria-hidden="true">
<div class="lp-demo__card">
<div class="lp-demo__head">
<div>
<span class="lp-demo__kicker">Friday Night Poker</span>
<span class="lp-demo__title">Leaderboard · Sort: Net</span>
</div>
<span class="lp-demo__meta">18 sessions · eligible</span>
</div>
<div class="lp-demo__table">
<div class="lp-demo__thead lp-demo__thead--lb">
<span class="lp-demo__th">#</span>
<span class="lp-demo__th">Player</span>
<span class="lp-demo__th">Δ</span>
<span class="lp-demo__th">Net</span>
<span class="lp-demo__th">Win%</span>
<span class="lp-demo__th">ROI</span>
</div>
<div class="lp-demo__row lp-demo__row--lb">
<span class="lp-demo__rank lp-demo__rank--1">1</span>
<span class="lp-demo__player">Rivera</span>
<span class="lp-demo__delta lp-demo__delta--up">▲1</span>
<span class="lp-demo__num lp-demo__num--pos">+$1,420</span>
<span class="lp-demo__num lp-demo__num--pos">72%</span>
<span class="lp-demo__num lp-demo__num--pos">+46%</span>
</div>
<div class="lp-demo__row lp-demo__row--lb">
<span class="lp-demo__rank lp-demo__rank--2">2</span>
<span class="lp-demo__player">Chen</span>
<span class="lp-demo__delta"></span>
<span class="lp-demo__num lp-demo__num--pos">+$640</span>
<span class="lp-demo__num lp-demo__num--pos">56%</span>
<span class="lp-demo__num lp-demo__num--pos">+18%</span>
</div>
<div class="lp-demo__row lp-demo__row--lb">
<span class="lp-demo__rank lp-demo__rank--3">3</span>
<span class="lp-demo__player">Okafor</span>
<span class="lp-demo__delta lp-demo__delta--down">▼1</span>
<span class="lp-demo__num lp-demo__num--neg">$210</span>
<span class="lp-demo__num lp-demo__num--neg">43%</span>
<span class="lp-demo__num lp-demo__num--neg">7%</span>
</div>
<div class="lp-demo__row lp-demo__row--lb lp-demo__row--fade">
<span class="lp-demo__rank">4</span>
<span class="lp-demo__player">Walsh</span>
<span class="lp-demo__delta"></span>
<span class="lp-demo__num lp-demo__num--neg">$850</span>
<span class="lp-demo__num lp-demo__num--neg">31%</span>
<span class="lp-demo__num lp-demo__num--neg">27%</span>
</div>
<div class="lp-demo__row lp-demo__row--lb lp-demo__row--fade2">
<span class="lp-demo__rank">5</span>
<span class="lp-demo__player">Novak</span>
<span class="lp-demo__delta lp-demo__delta--down">▼2</span>
<span class="lp-demo__num lp-demo__num--neg">$1,000</span>
<span class="lp-demo__num lp-demo__num--neg">25%</span>
<span class="lp-demo__num lp-demo__num--neg">42%</span>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="lp-seo">
<div class="lp-seo__inner">
<div class="lp-sec-head">
<span class="lp-eyebrow">Free poker tracker</span>
<h2 class="lp-sec-title">Poker records without a spreadsheet.</h2>
<p class="lp-sec-sub">myboker.org is a poker ledger tracker for home games that need simple, reliable records for money in, money out, and every player's results.</p>
</div>
<div class="lp-seo__grid">
<article class="lp-seo__item">
<h3>Track poker profits and losses</h3>
<p>Record each buy-in, re-buy, cashout, correction, and note so every player's poker profit or loss is calculated from the source ledger instead of copied into a spreadsheet later.</p>
</article>
<article class="lp-seo__item">
<h3>Keep a clean poker ledger</h3>
<p>The append-only ledger gives your home game an auditable bookkeeping trail for sessions, settlements, fronts, and payouts while preserving the history behind every total.</p>
</article>
<article class="lp-seo__item">
<h3>Build poker stats automatically</h3>
<p>League leaderboards, net winnings, ROI, win rate, session counts, recent form, and rank movement update from the same data your group enters on game night.</p>
</article>
<article class="lp-seo__item">
<h3>Find My Boker by name</h3>
<p>The product is myboker.org, also written as My Boker or my boker. It is built for poker tracking, not insurance, brokerage, or general finance workflows.</p>
</article>
</div>
</div>
</section>
{% if not is_logged_in %}
<section class="lp-bottom-cta">
<div class="lp-bottom-cta__inner">
<h2 class="lp-bottom-cta__title">Start tracking your league</h2>
<p class="lp-bottom-cta__sub">Free to use. No payment processor. Your data stays yours.</p>
<div class="lp-cta" style="justify-content:center;">
<a class="btn btn--primary btn--lg" href="{{ url_for('account.register') }}">Create an account →</a>
<a class="btn btn--ghost btn--lg" href="{{ url_for('public.explore') }}">Search public leagues</a>
</div>
</div>
</section>
{% endif %}
{% endblock %}