PageSourceSearch

https://marintennisclub.com/

html marintennisclub.com collected 2026-10-09 00:04:06 UTC 18,476 bytes, 359 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3 <head>
4  <meta charset="utf-8"/>
5  <link href="https://media.base44.com/images/public/69cea7c8eb1a631fac37c36d/42bfa172a_logo.png" rel="icon" type="image/svg+xml"/>
6  <meta content="width=device-width, initial-scale=1.0" name="viewport"/>
7  <link href="/manifest.json" rel="manifest"/>
8  <title>
9   Marin Tennis Club Portal
10  </title>
11  <meta content="An elegant membership and events platform for the Marin Tennis Club, featuring easy class bookings, summer camp registrations, and community event management." name="description"/>
12  
12<script crossorigin="" src="/assets/index-CTHDlfXj.js" type="module">
13  </script>
13
14  <link crossorigin="" href="/assets/index-BSkEnx32.css" rel="stylesheet"/>
15  
15<script type="module">
16   if (window.self === window.top) {
17  let lastPath = "";
18  function getPageNameFromPath(path) {
19    const segments = path.split("/").filter(Boolean);
20    return segments[0] || null;
21  }
22  function trackPageView() {
23    const path = window.location.pathname;
24    if (path === lastPath) return;
25    lastPath = path;
26    const pageName = getPageNameFromPath(path) || "home";
27    const appId = "69cea7c8eb1a631fac37c36d";
28    if (!appId) return;
29    fetch(`/api/app-logs/${appId}/log-user-in-app/${pageName}`, {
30      method: "POST",
31    }).catch(() => {});
32  }
33  const originalPushState = history.pushState.bind(history);
34  history.pushState = function (...args) {
35    originalPushState(...args);
36    trackPageView();
37  };
38  const originalReplaceState = history.replaceState.bind(history);
39  history.replaceState = function (...args) {
40    originalReplaceState(...args);
41    trackPageView();
42  };
43  window.addEventListener("popstate", trackPageView);
44  trackPageView();
45}
46  </script>
46
47  <meta content="Marin Tennis Club Portal" property="og:title"/>
48  <meta content="An elegant membership and events platform for the Marin Tennis Club, featuring easy class bookings, summer camp registrations, and community event management." property="og:description"/>
49  <meta content="https://media.base44.com/images/public/69cea7c8eb1a631fac37c36d/42bfa172a_logo.png/v1/fill/w_1200,h_630/42bfa172a_logo.png" property="og:image"/>
50  <meta content="https://marintennisclub.com" property="og:url"/>
51  <meta content="website" property="og:type"/>
52  <meta content="Marin Tennis Club Portal" property="og:site_name"/>
53  <meta content="Marin Tennis Club Portal" name="twitter:title"/>
54  <meta content="An elegant membership and events platform for the Marin Tennis Club, featuring easy class bookings, summer camp registrations, and community event management." name="twitter:description"/>
55  <meta content="https://media.base44.com/images/public/69cea7c8eb1a631fac37c36d/42bfa172a_logo.png/v1/fill/w_1200,h_630/42bfa172a_logo.png" name="twitter:image"/>
56  <meta content="summary_large_image" name="twitter:card"/>
57  <meta content="https://marintennisclub.com" name="twitter:url"/>
58  
58<script>
59   (function () {
60  var titles = {"/": "Marin Tennis Club Portal", "/member-login": "External Redirect | Marin Tennis Club Portal", "/events": "Events | Marin Tennis Club Portal", "/tennis-program": "Tennis Program | Marin Tennis Club Portal", "/juniors": "Tennis Program | Marin Tennis Club Portal", "/tennis-instruction/programs/camps": "Tennis Program | Marin Tennis Club Portal", "/contact": "Contact | Marin Tennis Club Portal", "/blog": "Blog | Marin Tennis Club Portal", "/cafe": "Cafe | Marin Tennis Club Portal", "/about": "About Us | Marin Tennis Club Portal", "/amenities": "Amenities | Marin Tennis Club Portal", "/members/play": "Play | Marin Tennis Club Portal", "/members/book-court": "Book Court | Marin Tennis Club Portal", "/members/court-schedule": "Court Schedule | Marin Tennis Club Portal", "/suggestions": "Suggestions | Marin Tennis Club Portal", "/waiver": "Waiver | Marin Tennis Club Portal", "/members/my-bookings": "My Bookings | Marin Tennis Club Portal", "/members/challenge-ladder": "Challenge Ladder | Marin Tennis Club Portal", "/members/book-conference-room": "Book Conference Room | Marin Tennis Club Portal", "/admin": "Admin / Dashboard | Marin Tennis Club Portal", "/admin/whats-on": "Admin / Whats On Manager | Marin Tennis Club Portal", "/admin/media": "Admin / Media Library | Marin Tennis Club Portal", "/admin/members": "Admin / Member Manager | Marin Tennis Club Portal", "/admin/events": "Admin / Events Manager | Marin Tennis Club Portal", "/admin/recurring-events": "Admin / Recurring Events Manager | Marin Tennis Club Portal", "/admin/teaching-pros": "Admin / Teaching Pros Manager | Marin Tennis Club Portal", "/admin/lesson-inquiries": "Admin / Lesson Inquiry Manager | Marin Tennis Club Portal", "/admin/membership-inquiries": "Admin / Membership Inquiry Manager | Marin Tennis Club Porta", "/admin/testimonials": "Admin / Testimonials Manager | Marin Tennis Club Portal", "/admin/notification-emails": "Admin / Notification Emails | Marin Tennis Club Portal", "/admin/suggestions": "Admin / Suggestions Manager | Marin Tennis Club Portal", "/admin/blog": "Admin / Blog Manager | Marin Tennis Club Portal", "/admin/junior-programs": "Admin / Junior Programs Manager | Marin Tennis Club Portal", "/admin/about": "Admin / About Manager | Marin Tennis Club Portal", "/admin/contact": "Admin / Contact Manager | Marin Tennis Club Portal", "/admin/camp-registrations": "Admin / Camp Registration Manager | Marin Tennis Club Portal", "/admin/call-log": "Admin / Call Log Manager | Marin Tennis Club Portal", "/admin/waivers": "Admin / Waiver Manager | Marin Tennis Club Portal", "/home": "Marin Tennis Club Portal"};
61  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
62  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
63  var dashed = function (s) {
64    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
65  };
66  var decode = function (s) {
67    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
68    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
69    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
70  };
71  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
72  var norm = function (path) {
73    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
74    return parts.length ? "/" + parts.join("/") : "/";
75  };
76  var lastPath = location.pathname, written = document.title, on = true;
77  var sync = function () {
78    // Path only: a hash/query change is the same page, and the SDK strips its own auth
79    // params with replaceState -- neither must clobber a server-rendered title in place.
80    if (!on || location.pathname === lastPath) return;
81    lastPath = location.pathname;
82    if (document.title !== written) { on = false; return; }
83    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
84    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
85    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
86    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
87    // a redirect landing on an unmapped path would bake the placeholder into the stored
88    // snapshot. Leaving the title alone degrades to today's behavior instead.
89    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
90    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
91    // dashes there, and the client cannot tell the two apart. The map emits every reach
91able
92    // shape per segment instead (_client_url_variants).
93    var title = titles[norm(location.pathname)];
94    if (title === undefined) return;
95    document.title = title;
96    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
97    // keeping the assigned string would make the next sync() read our own write as the app's.
98    written = document.title;
99  };
100  var wrap = function (fn) {
101    // The history entry is already pushed by the time sync() runs, so a throw here would
102    // surface inside the host app's router and break navigation. This is injected into apps
103    // we cannot test, so it swallows rather than trusting the trace.
104    return function () {
105      var r = fn.apply(this, arguments);
106      try { sync(); } catch (e) {}
107      return r;
108    };
109  };
110  history.pushState = wrap(history.pushState);
111  history.replaceState = wrap(history.replaceState);
112  window.addEventListener("popstate", sync);
113})();
114  </script>
114
115  <meta content="yes" name="mobile-web-app-capable"/>
116  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
117  <meta content="Marin Tennis Club Portal" name="apple-mobile-web-app-title"/>
118  <link href="https://marintennisclub.com" rel="canonical"/>
119  
119<script data-seo-source="builder" type="application/ld+json">
120   {"@context": "https://schema.org", "@type": "WebSite", "name": "Marin Tennis Club Portal", "url": "https://marintennisclub.com"}
121  </script>
121
122  
122<script data-seo-source="builder" type="application/ld+json">
123   {"@context": "https://schema.org", "@type": "Organization", "name": "Marin Tennis Club Portal", "url": "https://marintennisclub.com", "logo": "https://media.base44.com/images/public/69cea7c8eb1a631fac37c36d/ee981d765_logo.png"}
124  </script>
124
125 </head>
126 <body>
127  <div id="root">
128   <div data-seo-source="builder" id="seo-snapshot" style="position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;">
129    <main>
130     <header>
131      <h1>
132       Marin Tennis Club Portal
133      </h1>
134      <p>
135       An elegant membership and events platform for the Marin Tennis Club, featuring easy class bookings, summer camp registrations, and community event management.
136      </p>
137     </header>
138     <nav aria-label="Pages">
139      <h2>
140       Pages
141      </h2>
142      <ul>
143       <li>
144        <a href="/member-login">
145         External Redirect
146        </a>
147        — External Redirect on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
148       </li>
149       <li>
150        <a href="/events">
151         Events
152        </a>
153        — Events on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
154       </li>
155       <li>
156        <a href="/tennis-program">
157         Tennis Program
158        </a>
159        — Tennis Program on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
160       </li>
161       <li>
162        <a href="/contact">
163         Contact
164        </a>
165        — Contact on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
166       </li>
167       <li>
168        <a href="/blog">
169         Blog
170        </a>
171        — Blog on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
172       </li>
173       <li>
174        <a href="/cafe">
175         Cafe
176        </a>
177        — Cafe on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
178       </li>
179       <li>
180        <a href="/about">
181         About Us
182        </a>
183        — About Us on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
184       </li>
185       <li>
186        <a href="/amenities">
187         Amenities
188        </a>
189        — Amenities on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
190       </li>
191       <li>
192        <a href="/members/play">
193         Play
194        </a>
195        — Play on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
196       </li>
197       <li>
198        <a href="/members/book-court">
199         Book Court
200        </a>
201        — Book Court on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
202       </li>
203       <li>
204        <a href="/members/court-schedule">
205         Court Schedule
206        </a>
207        — Court Schedule on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
208       </li>
209       <li>
210        <a href="/suggestions">
211         Suggestions
212        </a>
213        — Suggestions on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
214       </li>
215       <li>
216        <a href="/waiver">
217         Waiver
218        </a>
219        — Waiver on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
220       </li>
221       <li>
222        <a href="/members/my-bookings">
223         My Bookings
224        </a>
225        — My Bookings on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
226       </li>
227       <li>
228        <a href="/members/challenge-ladder">
229         Challenge Ladder
230        </a>
231        — Challenge Ladder on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
232       </li>
233       <li>
234        <a href="/members/book-conference-room">
235         Book Conference Room
236        </a>
237        — Book Conference Room on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
238       </li>
239       <li>
240        <a href="/admin">
241         Admin Dashboard
242        </a>
243        — Admin / Dashboard on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
244       </li>
245       <li>
246        <a href="/admin/whats-on">
247         Whats On Manager
248        </a>
249        — Admin / Whats On Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
250       </li>
251       <li>
252        <a href="/admin/media">
253         Media Library
254        </a>
255        — Admin / Media Library on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
256       </li>
257       <li>
258        <a href="/admin/members">
259         Member Manager
260        </a>
261        — Admin / Member Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
262       </li>
263       <li>
264        <a href="/admin/events">
265         Events Manager
266        </a>
267        — Admin / Events Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
268       </li>
269       <li>
270        <a href="/admin/recurring-events">
271         Recurring Events Manager
272        </a>
273        — Admin / Recurring Events Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
274       </li>
275       <li>
276        <a href="/admin/teaching-pros">
277         Teaching Pros Manager
278        </a>
279        — Admin / Teaching Pros Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
280       </li>
281       <li>
282        <a href="/admin/lesson-inquiries">
283         Lesson Inquiry Manager
284        </a>
285        — Admin / Lesson Inquiry Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
286       </li>
287       <li>
288        <a href="/admin/membership-inquiries">
289         Membership Inquiry Manager
290        </a>
291        — Admin / Membership Inquiry Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
292       </li>
293       <li>
294        <a href="/admin/testimonials">
295         Testimonials Manager
296        </a>
297        — Admin / Testimonials Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
298       </li>
299       <li>
300        <a href="/admin/notification-emails">
301         Notification Emails
302        </a>
303        — Admin / Notification Emails on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
304       </li>
305       <li>
306        <a href="/admin/suggestions">
307         Suggestions Manager
308        </a>
309        — Admin / Suggestions Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
310       </li>
311       <li>
312        <a href="/admin/blog">
313         Blog Manager
314        </a>
315        — Admin / Blog Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
316       </li>
317       <li>
318        <a href="/admin/junior-programs">
319         Junior Programs Manager
320        </a>
321        — Admin / Junior Programs Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
322       </li>
323       <li>
324        <a href="/admin/about">
325         About Manager
326        </a>
327        — Admin / About Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
328       </li>
329       <li>
330        <a href="/admin/contact">
331         Contact Manager
332        </a>
333        — Admin / Contact Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
334       </li>
335       <li>
336        <a href="/admin/camp-registrations">
337         Camp Registration Manager
338        </a>
339        — Admin / Camp Registration Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
340       </li>
341       <li>
342        <a href="/admin/call-log">
343         Call Log Manager
344        </a>
345        — Admin / Call Log Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
346       </li>
347       <li>
348        <a href="/admin/waivers">
349         Waiver Manager
350        </a>
351        — Admin / Waiver Manager on Marin Tennis Club Portal. An elegant membership and events platform for the Marin Tennis Club, featuring.
352       </li>
353      </ul>
354     </nav>
355    </main>
356   </div>
357  </div>
358 </body>
359</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.