PageSourceSearch

https://flatrocklabs.ai/

html flatrocklabs.ai collected 2026-10-05 15:33:34 UTC 5,490 bytes, 148 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3  <head>
4    <meta charset="UTF-8" />
5    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, viewport-fit=cover" />
6    <title>FlatRock Labs AI - Turn Ideas Into Interactive Prototypes</title>
7    <meta name="description" content="Transform your concept into working prototypes in minutes with AI-powered tools. From ideation to MVP development with Flat Rock Technology." />
8    <meta name="author" content="Flat Rock Technology" />
9    <meta name="keywords" content="AI prototyping, MVP development, interactive prototypes, product design, Flat Rock Technology" />
10
11    <meta property="og:title" content="FlatRock Labs AI - AI-Powered Prototype Generation" />
12    <meta property="og:description" content="Transform your concept into working prototypes in minutes. From ideation to MVP development." />
13    <meta property="og:type" content="website" />
14    <meta property="og:image" content="" />
15
16    <meta name="twitter:card" content="summary_large_image" />
17    <meta name="twitter:site" content="" />
18    <meta name="twitter:image" content="" />
19    <!-- Google Analytics Consent Mode -->
20    
20<script>
21    window.dataLayer = window.dataLayer || [];
22    function gtag() {
23        dataLayer.push(arguments);
24    }
25    gtag("consent", "default", {
26        ad_storage: "denied",
27        ad_user_data: "denied",
28        ad_personalization: "denied",
29        analytics_storage: "denied",
30        functionality_storage: "denied",
31        personalization_storage: "denied",
32        security_storage: "granted",
33        wait_for_update: 2000,
34    });
35    gtag("set", "ads_data_redaction", true);
36    gtag("set", "url_passthrough", true);
37</script>
37
38<!-- End Google Analytics Consent Mode -->
39
40<!-- Google Tag Manager -->
41<script>
vendor: 327 bytes, lines 41-45
41(function(w,d,s,l,i){w[l]=w[l]||[];w[l].push({'gtm.start':
42new Date().getTime(),event:'gtm.js'});var f=d.getElementsByTagName(s)[0],
43j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';j.async=true;j.src=
44'https://www.googletagmanager.com/gtm.js?id='+i+dl;f.parentNode.insertBefore(j,f);
45})(window,document,'script','dataLayer','
45GTM-K7LW5SV3
vendor: 3 bytes, line 45
45');
45</script>
45
46<!-- End Google Tag Manager -->
47
48    <!-- Start cookieyes banner -->
49    
49<script id="cookieyes" type="text/javascript" src="https://cdn-cookieyes.com/client_data/f102e840de717233e9882b43/script.js"></script>
49
50    <!-- End cookieyes banner -->
51
52    <!-- Clutch widget -->
53    
53<script type="text/javascript" src="https://widget.clutch.co/static/js/widget.js"></script>
53
54    <!-- End Clutch widget -->
55    
55<script src="//code.tidio.co/2fuvmuever1lceedj4oqojtubmwp8aon.js" async></script>
55
56    <style id="sienna-inline-overrides">
57      :root {
58        --sienna-accent-color: #ff5858;
59      }
60
61      .asw-container .asw-menu-btn {
62        width: 45px !important;
63        height: 45px !important;
64        left: 15px !important;
65        right: auto !important;
66        bottom: 80px !important;
67        border-color: #ff5858 !important;
68        outline: none !important;
69        background: var(--sienna-accent-color) !important;
70        background-image: none !important;
71      }
72
73      .asw-container .asw-menu-btn svg {
74        width: 26px !important;
75        height: 26px !important;
76        min-width: 26px !important;
77        min-height: 26px !important;
78        max-width: 26px !important;
79        max-height: 26px !important;
80      }
81
82      .asw-container .asw-menu-header,
83      .asw-container .asw-menu-reset-footer-btn {
84        background-color: var(--sienna-accent-color) !important;
85        color: #fff !important;
86      }
87
88      .asw-container .asw-menu-header svg,
89      .asw-container .asw-menu-reset svg,
90      .asw-container .asw-menu-close svg {
91        fill: var(--sienna-accent-color) !important;
92      }
93
94      .asw-container .asw-menu-reset,
95      .asw-container .asw-menu-close {
96        border: 2px solid var(--sienna-accent-color) !important;
97      }
98
99      .asw-container .asw-menu-reset:hover,
100      .asw-container .asw-menu-close:hover,
101      .asw-container .asw-menu-reset:focus,
102      .asw-container .asw-menu-close:focus {
103        outline: 3px solid rgba(197, 0, 47, 0.2) !important;
104      }
105
106      .asw-container .asw-plus,
107      .asw-container .asw-minus,
108      .asw-container .asw-btn {
109        border-color: var(--sienna-accent-color) !important;
110      }
111
112      .asw-container .asw-btn:hover,
113      .asw-container .asw-btn.asw-selected {
114        border-color: var(--sienna-accent-color) !important;
115      }
116
117      .asw-container .asw-btn.asw-selected svg,
118      .asw-container .asw-btn.asw-selected span {
119        fill: var(--sienna-accent-color) !important;
120        color: var(--sienna-accent-color) !important;
121      }
122
123      .asw-container .asw-btn.asw-selected:after {
124        background-color: var(--sienna-accent-color) !important;
125      }
126
127      .asw-container .asw-footer {
128        display: none !important;
129      }
130
131      @media (max-width: 640px) {
132        .asw-container .asw-menu-btn {
133          width: 46.4px !important;
134          height: 46.4px !important;
135          bottom: 80px !important;
136        }
137      }
138    </style>
139     <!-- Sienna Accessibility Tool -->
140     
140<script src="https://cdn.jsdelivr.net/npm/sienna-accessibility@latest/dist/sienna-accessibility.umd.js" defer></script>
140
141    
141<script type="module" crossorigin src="/assets/index-4T-kT5k4.js"></script>
141
142    <link rel="stylesheet" crossorigin href="/assets/index-Ds_vOxh3.css">
143  </head>
144
145  <body>
146    <div id="root"></div>
147  </body>
148</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.