Texas Poker Club Site
Static by default, React only where a page needed state, one Worker for the contact form.
Co-founder & Head of Operations and Strategy · Apr 2026 – Present
A club that meets every week produces the same handful of questions on repeat, and a page answers them more reliably than an officer does. Almost all of it is content, so the site is static by default and only ships JavaScript where a component needs state. Lessons and posts are MDX in typed content collections, which means adding one is writing a file rather than editing a template.
What it does for the club
Two audiences land here wanting different things. A prospective member wants to know when meetings are, whether beginners are welcome, and how to join, so the lesson schedule, a membership page, and a resources section with hand rankings and a glossary are the shortest paths off the home page. A sponsor wants tiers and a way to make contact, which gets its own page and its own form. The rest is the club’s own record: who the officers are, how it started, events past and upcoming, and a lesson library that lets a first-timer show up already knowing what pot odds are.
Architecture
Astro builds every page to static HTML and ships no JavaScript for the pages that need none. React runs as islands for the FAQ accordion, the contact form, the newsletter signup, and a daily challenge component. Lesson and blog content lives in typed content collections as MDX, so the writing stays separate from the layout and a malformed post fails the build rather than the page. Cloudflare Pages deploys on push. The only server-side piece is a Cloudflare Worker behind the contact form, which rate-limits through a KV namespace so the endpoint cannot be turned into a free mailer. No database, no CMS, which for a club site is the right amount of infrastructure.