diff --git a/boker/app.py b/boker/app.py index 2abffef..e99ad0c 100644 --- a/boker/app.py +++ b/boker/app.py @@ -58,8 +58,14 @@ def create_app(config_overrides: dict | None = None) -> Flask: "seo_site_url": base_url, "seo_canonical_url": f"{base_url}{request.path}", "seo_default_description": ( - "Free home poker league tracker for sessions, ledgers, leaderboards, " - "settlement, buy-ins, cashouts, and private game records." + "myboker.org is a free poker tracker and poker ledger for home games, " + "private leagues, player stats, profit and loss tracking, buy-ins, " + "cashouts, settlements, and bookkeeping records." + ), + "seo_default_keywords": ( + "myboker, my boker, free poker tracker, poker ledger, poker stats, " + "poker profit tracker, poker loss tracker, home poker tracker, " + "poker bankroll tracker, poker bookkeeping, poker league tracker" ), } diff --git a/static/css/style.css b/static/css/style.css index e4cbec0..3d260a1 100644 --- a/static/css/style.css +++ b/static/css/style.css @@ -4622,6 +4622,44 @@ select.control { cursor: pointer; } text-align: right; } +/* ================================================================ + SEO CONTEXT SECTION + ================================================================ */ +.lp-seo { + padding: clamp(48px, 5vw, 72px) clamp(24px, 5vw, 80px); + border-top: 1px solid var(--divider); + background: var(--bg); +} +.lp-seo__inner { + max-width: var(--w-public); + margin: 0 auto; +} +.lp-seo__grid { + display: grid; + grid-template-columns: repeat(4, 1fr); + gap: 1px; + background: var(--border); + border: 1px solid var(--border); + border-radius: var(--r-lg); + overflow: hidden; +} +.lp-seo__item { + background: var(--surface); + padding: 22px 24px; +} +.lp-seo__item h3 { + margin: 0 0 8px; + font-size: .9375rem; + font-weight: 700; + color: var(--text-strong); +} +.lp-seo__item p { + margin: 0; + font-size: .84rem; + line-height: 1.7; + color: var(--muted); +} + /* ================================================================ BOTTOM CTA SECTION ================================================================ */ @@ -4663,10 +4701,12 @@ select.control { cursor: pointer; } .lp-hero__visual { max-width: 100%; width: 100%; } .lp-feat-grid { grid-template-columns: 1fr; } .lp-feat + .lp-feat { border-left: none; border-top: 1px solid var(--border); } + .lp-seo__grid { grid-template-columns: repeat(2, 1fr); } } @media (max-width: 680px) { .lp-hero__visual { display: none; } .lp-showcase__grid { grid-template-columns: 1fr; } + .lp-seo__grid { grid-template-columns: 1fr; } .lp-demo__thead--lb, .lp-demo__row--lb { grid-template-columns: 28px 1fr 32px 80px; } .lp-demo__thead--lb > span:nth-child(5), @@ -4678,6 +4718,7 @@ select.control { cursor: pointer; } .lp-hero { padding-left: 16px; padding-right: 16px; } .lp-features, .lp-showcase, + .lp-seo, .lp-bottom-cta { padding-left: 16px; padding-right: 16px; } .lp-feat-grid { border-radius: var(--r-md); } } diff --git a/templates/base.html b/templates/base.html index be15448..be3180e 100644 --- a/templates/base.html +++ b/templates/base.html @@ -3,10 +3,14 @@ {% set page_title %}{% block title %}myboker.org{% endblock %}{% endset %} {% set page_description %}{% block meta_description %}{{ seo_default_description }}{% endblock %}{% endset %} + {% set page_keywords %}{% block meta_keywords %}{{ seo_default_keywords }}{% endblock %}{% endset %} {{ page_title | trim }} + + + diff --git a/templates/landing.html b/templates/landing.html index 22b9308..ba2aa65 100644 --- a/templates/landing.html +++ b/templates/landing.html @@ -1,16 +1,28 @@ {% extends "base.html" %} -{% block title %}Free Home Poker Tracker, Ledger & League Leaderboards · myboker.org{% endblock %} -{% block meta_description %}Track home poker sessions, buy-ins, cashouts, settlements, player stats, and league leaderboards with a free append-only poker ledger built for private games.{% endblock %} +{% 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 %} + {% endblock %} @@ -35,11 +85,11 @@

Home Poker Tracking

- Your - league, - on record. + Free poker + tracker + for home games.

-

Sessions, leaderboards, and settlement tracking for home poker groups. No fees, no payment apps in the way.

+

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.

{% if is_logged_in %} Open my leagues → @@ -53,6 +103,8 @@ · Append-only ledger · + Poker stats + · Private by default {% if not is_logged_in %} · @@ -154,8 +206,8 @@
What's included -

No spreadsheets. No Venmo math. No guessing.

-

Everything your group needs to run a real poker league — built from the ground up for home games.

+

A free poker ledger, stats tracker, and league bookkeeper.

+

Everything your group needs to run a real poker league, built from the ground up for home games.

@@ -166,8 +218,8 @@
-

Game-night sessions

-

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 sessions on the same date auto-sequence as S1, S2.

+

Free poker session tracker

+

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.

@@ -177,8 +229,8 @@
-

Rankings that earn their spot

-

Set a minimum session count so regulars rank and one-time guests go provisional until they qualify. Sort by net, ROI, win rate, or recent form. Every number is derived directly from raw ledger events.

+

Poker stats and leaderboards

+

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.

@@ -187,8 +239,8 @@
-

Settlement without the spreadsheet

-

Every event is logged and kept: buy-ins, cashouts, fronts, corrections. Nothing is deleted; mistakes get fixed by appending. When a session closes, the house knows exactly what it holds and who is owed what.

+

Poker ledger and bookkeeping

+

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.

@@ -415,6 +467,34 @@
+
+
+
+ Free poker tracker +

Poker records without a spreadsheet.

+

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.

+
+
+
+

Track poker profits and losses

+

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.

+
+
+

Keep a clean poker ledger

+

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.

+
+
+

Build poker stats automatically

+

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.

+
+
+

Find My Boker by name

+

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.

+
+
+
+
+ {% if not is_logged_in %}