PageSourceSearch

https://fmwebsolutions.org/

html fmwebsolutions.org collected 2026-10-07 04:02:08 UTC 14,248 bytes, 268 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/6932faec2ab0587dea6ed5f1/c0a01dbd9_ChatGPTImageMay3202609_29_23PM.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   FM Web Solutions
10  </title>
11  <meta content="FM Web Solutions manages 5 data types including contact submissions. Helps you organize, track, and share your work in 1 place for teams and solo users." name="description"/>
12  <meta content="website" property="og:type"/>
13  <meta content="en_US" property="og:locale"/>
14  <meta content="FM Web Solutions" property="og:site_name"/>
15  <meta content="YOUR_FACEBOOK_APP_ID" property="fb:app_id"/>
16  <meta content="FM Web Solutions" property="og:title"/>
17  <meta content="FM Web Solutions manages 5 data types including contact submissions. Helps you organize, track, and share your work in 1 place for teams and solo users." property="og:description"/>
18  <meta content="https://media.base44.com/images/public/6932faec2ab0587dea6ed5f1/c0a01dbd9_ChatGPTImageMay3202609_29_23PM.png/v1/fill/w_1200,h_630/c0a01dbd9_ChatGPTImageMay3202609_29_23PM.png" property="og:image"/>
19  <meta content="1200" property="og:image:width"/>
20  <meta content="630" property="og:image:height"/>
21  <meta content="https://fmwebsolutions.org" property="og:url"/>
22  <meta content="summary_large_image" name="twitter:card"/>
23  <meta content="FM Web Solutions" name="twitter:title"/>
24  <meta content="FM Web Solutions manages 5 data types including contact submissions. Helps you organize, track, and share your work in 1 place for teams and solo users." name="twitter:description"/>
25  <meta content="https://media.base44.com/images/public/6932faec2ab0587dea6ed5f1/c0a01dbd9_ChatGPTImageMay3202609_29_23PM.png/v1/fill/w_1200,h_630/c0a01dbd9_ChatGPTImageMay3202609_29_23PM.png" name="twitter:image"/>
26  <!-- Preload critical assets -->
27  <link as="image" href="https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/6932faec2ab0587dea6ed5f1/66b8bc415_ChatGPTImageFeb12202610_28_37AM.png" rel="preload"/>
28  <link as="image" href="https://images.unsplash.com/photo-1460925895917-afdab827c52f?w=800&amp;q=80" rel="preload"/>
29  <!-- Google tag (gtag.js) -->
vendor: 69 bytes, lines 29-30
29
30  <script async="" src="https://www.googletagmanager.com/gtag/js?id=
30G-BN3NFQXYQP
vendor: 17 bytes, lines 30-32
30">
31  </script>
32  
32<script>
33   
vendor: 145 bytes, lines 33-36
33window.dataLayer = window.dataLayer || [];
34      function gtag(){dataLayer.push(arguments);}
35      gtag('js', new Date());
36      gtag('config', '
36G-BN3NFQXYQP
vendor: 6 bytes, lines 36-37
36');
37  
37</script>
37
38  
38<script crossorigin="" src="/assets/index-CGBl_JYw.js" type="module">
39  </script>
39
40  <link crossorigin="" href="/assets/index-Dik8Zmk5.css" rel="stylesheet"/>
41  <meta content="https://fmwebsolutions.org" name="twitter:url"/>
42  
42<script>
43   (function () {
44  var titles = {"/about": "About | FM Web Solutions", "/alert-settings": "Alert Settings | FM Web Solutions", "/alertsettings": "Alert Settings | FM Web Solutions", "/backlinkanalysis": "Backlink Analysis | FM Web Solutions", "/backlink-analysis": "Backlink Analysis | FM Web Solutions", "/competitor-analysis": "Competitor Analysis | FM Web Solutions", "/competitoranalysis": "Competitor Analysis | FM Web Solutions", "/contact": "Contact | FM Web Solutions", "/contactsubmissions": "Contact Submissions | FM Web Solutions", "/contact-submissions": "Contact Submissions | FM Web Solutions", "/googleauthcallback": "Google Auth Callback | FM Web Solutions", "/google-auth-callback": "Google Auth Callback | FM Web Solutions", "/google-auth-setup": "Google Auth Setup | FM Web Solutions", "/googleauthsetup": "Google Auth Setup | FM Web Solutions", "/portfolio": "Portfolio | FM Web Solutions", "/seoaudit": "SEO Audit | FM Web Solutions", "/seo-audit": "SEO Audit | FM Web Solutions", "/services": "Services | FM Web Solutions", "/submit-ticket": "Submit Ticket | FM Web Solutions", "/submitticket": "Submit Ticket | FM Web Solutions", "/tickets": "Tickets | FM Web Solutions", "/about-us": "About Us | FM Web Solutions", "/our-clients": "Our Clients | FM Web Solutions", "/leads": "Leads | FM Web Solutions", "/": "FM Web Solutions", "/analytics": "Analytics | FM Web Solutions", "/admindashboard": "Admin Dashboard | FM Web Solutions", "/admin-dashboard": "Admin Dashboard | FM Web Solutions", "/blog": "Blog | FM Web Solutions", "/gscdashboard": "GSC Dashboard | FM Web Solutions", "/gsc-dashboard": "GSC Dashboard | FM Web Solutions", "/seo-dashboard": "SEO Dashboard | FM Web Solutions", "/seodashboard": "SEO Dashboard | FM Web Solutions", "/ga-dashboard": "GA Dashboard | FM Web Solutions", "/gadashboard": "GA Dashboard | FM Web Solutions", "/home": "FM Web Solutions"};
45  // PascalCase boundaries -> "-", mirroring _PASCAL_BOUNDARY_RE without lookbehind
46  // (old Safari fails to PARSE a lookbehind, taking the whole script down).
47  var dashed = function (s) {
48    return s.replace(/([a-z0-9])([A-Z])/g, "$1-$2").replace(/([A-Z])([A-Z][a-z])/g, "$1-$2");
49  };
50  var decode = function (s) {
51    // A %2F inside ONE segment must not become a structural separator: /blog/foo%2Fbar is a
52    // dynamic slug, and letting it split would match a static /blog/foo/bar and write ITS title.
53    try { var d = decodeURIComponent(s); return d.indexOf("/") < 0 ? d : s; } catch (e) { return s; }
54  };
55  var segments = function (path) { return path.split("/").filter(Boolean).map(decode); };
56  var norm = function (path) {
57    var parts = segments(path).map(function (s) { return dashed(s).toLowerCase(); });
58    return parts.length ? "/" + parts.join("/") : "/";
59  };
60  var lastPath = location.pathname, written = document.title, on = true;
61  var sync = function () {
62    // Path only: a hash/query change is the same page, and the SDK strips its own auth
63    // params with replaceState -- neither must clobber a server-rendered title in place.
64    if (!on || location.pathname === lastPath) return;
65    lastPath = location.pathname;
66    if (document.title !== written) { on = false; return; }
67    // Write ONLY a title the map proves. An unmapped path is a dynamic route (/blog/:slug) the
68    // map cannot carry, and writing a placeholder there is destructive, not merely vague: the
69    // prerender worker runs no setUserAgent, so its capture browser reads as human and executes
70    // this script, and coordinator.js's settle wait explicitly tolerates a full navigation --
71    // a redirect landing on an unmapped path would bake the placeholder into the stored
72    // snapshot. Leaving the title alone degrades to today's behavior instead.
73    // Exact lookup only. A dash-stripped retry here would let a genuinely different /set-up
74    // claim /setup: the map carries a dash-free key only where a PascalCase boundary put the
75    // dashes there, and the client cannot tell the two apart. The map emits every reachable
76    // shape per segment instead (_client_url_variants).
77    var title = titles[norm(location.pathname)];
78    if (title === undefined) return;
79    document.title = title;
80    // Re-read: the setter stores verbatim but the getter strips and collapses whitespace, so
81    // keeping the assigned string would make the next sync() read our own write as the app's.
82    written = document.title;
83  };
84  var wrap = function (fn) {
85    // The history entry is already pushed by the time sync() runs, so a throw here would
86    // surface inside the host app's router and break navigation. This is injected into apps
87    // we cannot test, so it swallows rather than trusting the trace.
88    return function () {
89      var r = fn.apply(this, arguments);
90      try { sync(); } catch (e) {}
91      return r;
92    };
93  };
94  history.pushState = wrap(history.pushState);
95  history.replaceState = wrap(history.replaceState);
96  window.addEventListener("popstate", sync);
97})();
98  </script>
98
99  <meta content="yes" name="mobile-web-app-capable"/>
100  <meta content="black" name="apple-mobile-web-app-status-bar-style"/>
101  <meta content="FM Web Solutions" name="apple-mobile-web-app-title"/>
102  <link href="https://fmwebsolutions.org" rel="canonical"/>
103  
103<script data-seo-source="builder" type="application/ld+json">
104   {"name": "FM Web Solutions", "@context": "https://schema.org", "@type": "WebSite", "url": "https://fmwebsolutions.org"}
105  </script>
105
106  
106<script data-seo-source="builder" type="application/ld+json">
107   {"name": "FM Web Solutions", "logo": "https://qtrypzzcjebvfcihiynt.supabase.co/storage/v1/object/public/base44-prod/public/6932faec2ab0587dea6ed5f1/cb70a68bc_logo.png", "@context": "https://schema.org", "@type": "Organization", "url": "https://fmwebsolutions.org"}
108  </script>
108
109  
109<script data-seo-source="builder" type="application/ld+json">
110   {"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"name": "What is FM Web Solutions?", "@type": "Question", "acceptedAnswer": {"@type": "Answer", "text": "Professional website design and development services to help businesses establish a strong online presence and achieve their digital goals."}}]}
111  </script>
111
112 </head>
113 <body>
114  <div id="root">
115   <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;">
116    <main>
117     <header>
118      <h1>
119       FM Web Solutions
120      </h1>
121      <p>
122       FM Web Solutions manages 5 data types including contact submissions. Helps you organize, track, and share your work in 1 place for teams and solo users.
123      </p>
124     </header>
125     <nav aria-label="Pages">
126      <h2>
127       Pages
128      </h2>
129      <ul>
130       <li>
131        <a href="/About">
132         About
133        </a>
134        — About on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
135       </li>
136       <li>
137        <a href="/AlertSettings">
138         Alert Settings
139        </a>
140        — Alert Settings on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
141       </li>
142       <li>
143        <a href="/BacklinkAnalysis">
144         Backlink Analysis
145        </a>
146        — Backlink Analysis on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
147       </li>
148       <li>
149        <a href="/CompetitorAnalysis">
150         Competitor Analysis
151        </a>
152        — Competitor Analysis on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
153       </li>
154       <li>
155        <a href="/Contact">
156         Contact
157        </a>
158        — Contact on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
159       </li>
160       <li>
161        <a href="/ContactSubmissions">
162         Contact Submissions
163        </a>
164        — Contact Submissions on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
165       </li>
166       <li>
167        <a href="/GoogleAuthCallback">
168         Google Auth Callback
169        </a>
170        — Google Auth Callback on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
171       </li>
172       <li>
173        <a href="/GoogleAuthSetup">
174         Google Auth Setup
175        </a>
176        — Google Auth Setup on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
177       </li>
178       <li>
179        <a href="/Portfolio">
180         Portfolio
181        </a>
182        — Portfolio on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
183       </li>
184       <li>
185        <a href="/SEOAudit">
186         SEO Audit
187        </a>
188        — SEO Audit on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
189       </li>
190       <li>
191        <a href="/Services">
192         Services
193        </a>
194        — Services on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
195       </li>
196       <li>
197        <a href="/SubmitTicket">
198         Submit Ticket
199        </a>
200        — Submit Ticket on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
201       </li>
202       <li>
203        <a href="/Tickets">
204         Tickets
205        </a>
206        — Tickets on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
207       </li>
208       <li>
209        <a href="/about-us">
210         About Us
211        </a>
212        — About Us on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
213       </li>
214       <li>
215        <a href="/our-clients">
216         Our Clients
217        </a>
218        — Our Clients on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
219       </li>
220       <li>
221        <a href="/Leads">
222         Leads
223        </a>
224        — Leads on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
225       </li>
226       <li>
227        <a href="/Analytics">
228         Analytics
229        </a>
230        — Analytics on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
231       </li>
232       <li>
233        <a href="/AdminDashboard">
234         Admin Dashboard
235        </a>
236        — Admin Dashboard on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
237       </li>
238       <li>
239        <a href="/Blog">
240         Blog
241        </a>
242        — Blog on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
243       </li>
244       <li>
245        <a href="/GSCDashboard">
246         GSC Dashboard
247        </a>
248        — GSC Dashboard on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
249       </li>
250       <li>
251        <a href="/SEODashboard">
252         SEO Dashboard
253        </a>
254        — SEO Dashboard on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
255       </li>
256       <li>
257        <a href="/GADashboard">
258         GA Dashboard
259        </a>
260        — GA Dashboard on FM Web Solutions. FM Web Solutions manages 5 data types including contact submissions.
261       </li>
262      </ul>
263     </nav>
264    </main>
265   </div>
266  </div>
267 </body>
268</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.