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" /> 6 <link rel="icon" href="/favicon.svg" type="image/svg+xml" /> 7 <meta name="theme-color" content="#fbfaf7" /> 8 9 <!-- 10 THE SITE-WIDE HALF OF THE HEAD. Everything here is true of every URL. 11 12 THIS IS A TEMPLATE, NOT A FILE THAT SHIPS AS-IS. `vite build` writes it 13 to dist/index.html and then scripts/prerender.ts reads it and writes two 14 kinds of file from it: 15 16 - dist/app.html â this, byte for byte. It is what the `**` rewrite in 17 firebase.json serves, so every route without a file of its own gets 18 exactly what it always got. 19 - dist/index.html, dist/product/<id>/index.html, dist/mcp/index.html, 20 dist/for-builders/index.html â this, with the title, the description, 21 the card tags, a canonical, an og:url and a readable body filled in. 22 Hosting serves a matching static file before it applies a rewrite, 23 so those URLs never reach app.html. 24 25 THE FRONT PAGE IS ONE OF THEM NOW, and that is why the split exists. Until 26 it was, dist/index.html was both the home page and the fallback for every 27 other route, so nothing could be written into it that was true of only one 28 URL â and the home page shipped to crawlers as an empty `<div id="root">`. 29 Splitting the fallback out is what lets `/` carry its own canonical, its 30 own ItemList and its own list of the catalogue. 31 32 What is deliberately NOT here: `<link rel="canonical">`. app.html is still 33 served at many routes, so a canonical baked in here would tell Google that 34 /communities is the home page â not a missing optimisation, a request to 35 drop those pages from search results. The canonical, and the per-page 36 description, are set per route by src/lib/meta.ts, which Google reads 37 because it renders the page before indexing it. 38 39 What is here and cannot move: the `og:` and `twitter:` tags. Slack, X, 40 LinkedIn and WhatsApp read those and none of them runs JavaScript, so 41 setting them from the bundle would change nothing about a shared link. 42 The HTML has to differ before the bundle exists, which is why listing 43 pages are not served from this file at all. 44 45 SO THE VALUES BELOW ARE THE FALLBACK, NOT THE WHOLE STORY â what the 46 routes with no file of their own get, plus any listing approved since the 47 last deploy, which falls through to the SPA and renders client-side 48 exactly as it always did. 49 50 There is no `<meta name="keywords">`. Google has ignored it since 2009 and 51 Bing treats it as a spam signal; the words that matter are in the title, 52 the description and the page. 53 --> 54 <meta name="description" content="Free Image Compressor, Resizer & Converter Built by Jaydip Patel. On WhatAreYouBuilding.AI." /> 55 56 <!-- Pre-launch. Remove both of these at launch, along with public/robots.txt. --> 57 58 <!-- 59 The sharing card. `summary_large_image` is the wide one; the small square 60 card is what you get by omitting it, and it reads as a link somebody did 61 not bother with. 62 63 No `og:url` in this file. It would have to name one URL, and the only 64 honest value for a file served at many paths is none â a shared listing 65 whose card claimed to be the home page would send everyone who clicked it 66 to the home page. Left out, the consumer uses the URL that was actually 67 shared. The prerendered pages do set it, the front page included, because 68 each of those is served at exactly one URL and can say which. 69 --> 70 <meta property="og:type" content="website" /> 71 <meta property="og:site_name" content="WhatAreYouBuilding.AI" /> 72 <meta property="og:title" content="ImgKit: Free Image Compressor, Resizer & Converter â WhatAreYouBuilding.AI" /> 73 <meta property="og:description" content="Free Image Compressor, Resizer & Converter Built by Jaydip Patel. On WhatAreYouBuilding.AI." /> 74 <meta property="og:image" content="https://whatareyoubuilding.ai/og/product/kImkv9NdlMH21fnwmwYY.png" />
75 <meta property="og:image:width" content="1200" /> 76 <meta property="og:image:height" content="630" /> 77 <meta property="og:image:alt" content="ImgKit: Free Image Compressor, Resizer & Converter on WhatAreYouBuilding.AI" /> 78 <meta property="og:locale" content="en_US" /> 79 80 <meta name="twitter:card" content="summary_large_image" /> 81 <meta name="twitter:title" content="ImgKit: Free Image Compressor, Resizer & Converter â WhatAreYouBuilding.AI" /> 82 <meta name="twitter:description" content="Free Image Compressor, Resizer & Converter Built by Jaydip Patel. On WhatAreYouBuilding.AI." /> 83 <meta name="twitter:image" content="https://whatareyoubuilding.ai/og/product/kImkv9NdlMH21fnwmwYY.png" /> 84 <!-- The person behind it, not a brand account: there is no brand account, 85 and inventing a handle in a meta tag is a broken link with a byline. --> 86 <!-- 87 `twitter:site` is the account the CARD is attributed to, and `creator` is 88 the byline. They are different accounts here on purpose: the directory 89 posts as @whatrubuilding and is built by @netadror. 90 --> 91 <meta name="twitter:site" content="@whatrubuilding" /> 92 <meta name="twitter:creator" content="@netadror" /> 93 <!-- 94 TWO FAMILIES, AND A THIRD WAS TRIED AND SENT BACK. 95 96 Instrument Sans is the interface. Instrument Serif is the editorial voice: 97 the wordmark, every page title, every section head. It ships ONE WEIGHT â 98 `ital@0;1` is all Google has of it, there is no weight axis â which is why 99 `font-weight: 600` anywhere near it produces a synthesised smear rather 100 than a bolder face. 101 102 Newsreader was loaded here for one afternoon on 2026-09-13, because the 103 SEO template's headings wanted real weight and the serif could not give 104 it. She looked at it and preferred the sans, which has a true 700 already 105 in this request and is the more readable of the two at heading size. So 106 those headings are sans and there is no third family to fetch. 107 --> 108 <!-- 109 SELF-HOSTED SINCE 2026-09-16, from public/fonts/. The Google Fonts 110 stylesheet was a render-blocking request to a second origin (780ms in a 111 PageSpeed run), and then a third origin for the files. These are the 112 same files Google served for that exact request (latin and latin-ext 113 subsets, the sans's full 400-700 axis), under the SIL Open Font License, 114 so the rendering is unchanged. The @font-face rules are inline so the 115 browser knows about them without waiting for any stylesheet, and the two 116 faces the first screen uses are preloaded. File names carry Google's 117 version, and /fonts/** is cached as immutable, so a new version is a new 118 file name. 119 --> 120 <link rel="preload" href="/fonts/instrument-sans-normal-latin-v4.woff2" as="font" type="font/woff2" crossorigin /> 121 <link rel="preload" href="/fonts/instrument-serif-normal-latin-v5.woff2" as="font" type="font/woff2" crossorigin /> 122 <style> 123 @font-face { 124 font-family: 'Instrument Sans'; 125 font-style: italic; 126 font-weight: 400 700; 127 font-display: swap; 128 src: url(/fonts/instrument-sans-italic-latin-ext-v4.woff2) format('woff2'); 129 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 130 } 131 @font-face { 132 font-family: 'Instrument Sans'; 133 font-style: italic; 134 font-weight: 400 700; 135 font-display: swap; 136 src: url(/fonts/instrument-sans-italic-latin-v4.woff2) format('woff2'); 137 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 138 } 139 @font-face { 140 font-family: 'Instrument Sans'; 141 font-style: normal; 142 font-weight: 400 700; 143 font-display: swap; 144 src: url(/fonts/instrument-sans-normal-latin-ext-v4.woff2) format('woff2'); 145 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1D
145BF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 146 } 147 @font-face { 148 font-family: 'Instrument Sans'; 149 font-style: normal; 150 font-weight: 400 700; 151 font-display: swap; 152 src: url(/fonts/instrument-sans-normal-latin-v4.woff2) format('woff2'); 153 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 154 } 155 @font-face { 156 font-family: 'Instrument Serif'; 157 font-style: italic; 158 font-weight: 400; 159 font-display: swap; 160 src: url(/fonts/instrument-serif-italic-latin-ext-v5.woff2) format('woff2'); 161 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 162 } 163 @font-face { 164 font-family: 'Instrument Serif'; 165 font-style: italic; 166 font-weight: 400; 167 font-display: swap; 168 src: url(/fonts/instrument-serif-italic-latin-v5.woff2) format('woff2'); 169 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 170 } 171 @font-face { 172 font-family: 'Instrument Serif'; 173 font-style: normal; 174 font-weight: 400; 175 font-display: swap; 176 src: url(/fonts/instrument-serif-normal-latin-ext-v5.woff2) format('woff2'); 177 unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; 178 } 179 @font-face { 180 font-family: 'Instrument Serif'; 181 font-style: normal; 182 font-weight: 400; 183 font-display: swap; 184 src: url(/fonts/instrument-serif-normal-latin-v5.woff2) format('woff2'); 185 unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD; 186 } 187 </style> 188 <title>ImgKit: Free Image Compressor, Resizer & Converter â WhatAreYouBuilding.AI</title> 189 190 <!-- 191 Who and what the site is, for the knowledge panel and for anything that 192 reads structured data without running the bundle. Per-page structured 193 data â the listing, the directory as an ItemList â is added per route by 194 src/lib/meta.ts. 195 196 `SearchAction` names a real, working URL: `/?q=` is the query the filter 197 bar itself produces, so the search box a result can show is the search 198 the site actually has. A made-up one renders a box that returns nothing. 199 --> 200
200<script type="application/ld+json"> 201 { 202 "@context": "https://schema.org", 203 "@type": "WebSite", 204 "@id": "https://whatareyoubuilding.ai/#website", 205 "name": "WhatAreYouBuilding.AI", 206 "alternateName": "wayb", 207 "url": "https://whatareyoubuilding.ai/", 208 "description": "WhatAreYouBuilding.AI is a free, worldwide directory of what independent builders are shipping â AI, SaaS and dev tools, by country, category and funding stage.", 209 "inLanguage": "en", 210 "potentialAction": { 211 "@type": "SearchAction", 212 "target": { 213 "@type": "EntryPoint", 214 "urlTemplate": "https://whatareyoubuilding.ai/?q={search_term_string}" 215 }, 216 "query-input": "required name=search_term_string" 217 } 218 } 219 </script>
219 220
220<script> 221 // Apply the stored theme before first paint, so someone who chose dark 222 // does not get a light flash on reload. 223 // 224 // `prefers-color-scheme` is deliberately NOT consulted. Light is the 225 // product's default and dark is an opt-in flip, so only an explicit 226 // stored choice produces dark. This must agree with resolveTheme() in 227 // src/lib/theme.ts: if one reads the OS and the other does not, every 228 // dark-preference visitor watches the page flip after first paint. 229 (function () { 230 try { 231 var t = localStorage.getItem('bi:theme'); 232 document.documentElement.dataset.theme = t === 'dark' ? 'dark' : 'light'; 233 } catch (e) { 234 document.documentElement.dataset.theme = 'light'; 235 } 236 })(); 237 </script>
237 238
238<script> 239 // SAY THAT JAVASCRIPT IS RUNNING, BEFORE THE FIRST PAINT. 240 // 241 // `#root` ships with two children on a prerendered page: the crawler's 242 // copy of the content, and a placeholder shaped like the real header and 243 // hero. Exactly one is ever seen â see `.boot-seo` / `.boot-splash` in 244 // app.css, and `bootSplash()` in src/lib/prerender.ts. 245 // 246 // Without this the prerendered body â a heading and a list of every 247 // listing in the directory â painted unstyled for the half second before 248 // React mounted and wiped it, which read as a broken page and cost a 249 // large layout shift on every load. 250 // 251 // IT MUST STAY A SYNCHRONOUS SCRIPT IN THE HEAD. Deferred, async, or 252 // moved into the bundle, it runs after the first paint and the flash it 253 // exists to prevent happens anyway. 254 document.documentElement.dataset.boot = 'js'; 255 </script>
255 256
256<script> 257 // Google Consent Mode v2, denied by default, declared before anything 258 // that could load gtag.js. Firebase Analytics reuses an existing 259 // window.gtag / window.dataLayer rather than replacing them, so this 260 // default is still in force when it configures the measurement ID. 261 // 262 // It is the second lock, not the first: src/lib/analytics does not call 263 // getAnalytics() at all until consent is granted, so on an undecided or 264 // declined visit gtag.js is never fetched. This is what catches anything 265 // that ever loads it by another route. 266 (function () { 267 window.dataLayer = window.dataLayer || []; 268 window.gtag = 269 window.gtag || 270 function () { 271 window.dataLayer.push(arguments); 272 }; 273 window.gtag('consent', 'default', { 274 analytics_storage: 'denied', 275 ad_storage: 'denied', 276 ad_user_data: 'denied', 277 ad_personalization: 'denied' 278 }); 279 })(); 280 </script>
280 281
281<script type="module" crossorigin src="/assets/index-C4E0xGvw.js"></script>
281 282 <link rel="stylesheet" crossorigin href="/assets/index-CN5-0dbE.css"> 283 <link rel="canonical" href="https://whatareyoubuilding.ai/product/kImkv9NdlMH21fnwmwYY" /> 284 <meta property="og:url" content="https://whatareyoubuilding.ai/product/kImkv9NdlMH21fnwmwYY" /> 285
285<script type="application/ld+json" id="route-jsonld">[{"@context":"https://schema.org","@type":"SoftwareApplication","name":"ImgKit","description":"ImgKit is a static website with no backend. Every tool reads the file you choose with the browser's own File API, does the work on the page using Canvas, WebAssembly and WebGPU, and hands you the result. There is no upload endpoint, no storage bucket, no account and no watermark.","applicationCategory":"Design","url":"https://whatareyoubuilding.ai/product/kImkv9NdlMH21fnwmwYY","sameAs":["https://imgkit.xyz"],"author":{"@type":"Person","name":"Jaydip Patel"}},{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","name":"Home","item":"https://whatareyoubuilding.ai/","position":1},{"@type":"ListItem","name":"Design","item":"https://whatareyoubuilding.ai/design-products","position":2},{"@type":"ListItem","name":"ImgKit","item":"https://whatareyoubuilding.ai/product/kImkv9NdlMH21fnwmwYY","position":3}]}]</script>
285 286 </head> 287 <body> 288 <div id="root"><div class="boot-seo"><main><div class="shell"><article><h1 dir="auto">ImgKit</h1><p dir="auto">Free Image Compressor, Resizer & Converter</p><p dir="auto">ImgKit is a static website with no backend. Every tool reads the file you choose with the browser's own File API, does the work on the page using Canvas, WebAssembly and WebGPU, and hands you the result. There is no upload endpoint, no storage bucket, no account and no watermark.</p><p>Built by Jaydip Patel.</p><dl><dt>Category</dt><dd>Design</dd><dt>Location</dt><dd>India</dd><dt>Funding stage</dt><dd>Not disclosed</dd></dl><p><a href="https://imgkit.xyz/?utm_source=whatareyoubuilding.ai&utm_medium=listing&utm_campaign=directory&utm_content=kImkv9NdlMH21fnwmwYY" target="_blank" rel="noopener">imgkit.xyz</a></p><h2>More Design products from India</h2><ul><li><a href="/product/LgyGdOSzjL8DBKMktq4l">cuedesign</a></li><li><a href="/product/4NEvAGO8veA1vQtrj7l8">Design Index</a></li><li><a href="/product/9fUFo7pwFSjZ8XXiCxQM">Aether Gallery</a></li><li><a href="/product/pFQqFbpMSQxfg96uJe0o">ArchBuilder Blender Addon</a></li><li><a href="/product/ROWT7ftNWy0NChjlYj89">Designer's Little Helper</a></li></ul><p><a href="/">More builders on WhatAreYouBuilding.AI</a></p></article></div></main> 289 <footer><nav aria-label="Directory"> 290 <a href="/">Browse the directory</a> 291 <a href="/builders">The builders behind the products</a> 292 <a href="/for-builders">Why list your product</a> 293 <a href="/submit">Submit a product</a> 294 <a href="/communities">Builder communities</a> 295 <a href="/investors">For investors</a> 296 <a href="/mcp">API and MCP for agents</a> 297 <a href="/guides">Guides for builders</a> 298 <a href="/llms-txt-checker">Check if AI can read your site</a> 299 </nav></footer></div><div class="boot-splash" aria-hidden="true"><header class="topbar"><div class="topbar__inner"><span class="wordmark">wayb</span></div></header><div class="main"><div class="shell"><div></div><div class="shell__content"><section class="hero hero--index"><p class="voice hero__mark">WhatAreYouBuilding.AI</p><p class="hero__line">a worldwide directory of what independent builders are shipping.</p></section></div><div></div></div></div></div></div>
299<script type="application/json" id="boot-product-context">{"id":"kImkv9NdlMH21fnwmwYY","builderSlug":"jaydip-patel-kimkv9","categoryHub":"/design-products","related":[{"id":"A4nL97CV6j8RgsBKxJ6r","name":"Portfolio Frame","oneLiner":"Screenshot & code mockup editor for Chrome","websiteUrl":"https://portfolioframe.com/","logoUrl":"https://firebasestorage.googleapis.com/v0/b/builders-directory-app.firebasestorage.app/o/listings%2F7J0pyr9bmMVvpcA9ai7DbYShMJp1%2Flogo-e68ad8d7740e4b80b2f00170.webp?alt=media&token=8785e688-33c0-40d1-bd26-82e20c2b36da","markUrl":"https://firebasestorage.googleapis.com/v0/b/builders-directory-app.firebasestorage.app/o/marks%2FA4nL97CV6j8RgsBKxJ6r.webp?alt=media&token=ae05cff9-7ec2-4822-8273-0de516995c1f","markLogo":"https://firebasestorage.googleapis.com/v0/b/builders-directory-app.firebasestorage.app/o/listings%2F7J0pyr9bmMVvpcA9ai7DbYShMJp1%2Flogo-e68ad8d7740e4b80b2f00170.webp?alt=media&token=8785e688-33c0-40d1-bd26-82e20c2b36da","category":"Design","region":"Global","city":null,"fundingStage":"undisclosed","activelyRaising":null,"openTo":["beta-users"],"mrr":null,"verified":false,"claimedByUid":null,"approved":true,"stats":{"impressions":1,"clicks":0,"shares":1,"referrals":0,"upvotes":1},"leaderboard":{"weekKey":"2026-W39","rank":null,"rankChange":null,"velocity":null,"streakWeeks":0,"streakDays":0,"topMoverWeeks":[],"gains":{"day":{"impressions":0,"clicks":0,"shares":0,"referrals":0,"upvotes":0},"week":{"impressions":null,"clicks":null,"shares":null,"referrals":null,"upvotes":null},"month":{"impressions":null,"clicks":null,"shares":null,"referrals":null,"upvotes":null}}},"builder":{"name":"buildwithsud","avatarUrl":null,"region":"Global","socials":{"x":{"handle":"buildwithsud"}},"photoUrl":"https://unavatar.io/x/buildwithsud?fallback=false","photoCopyUrl":"https://firebasestorage.googleapis.com/v0/b/builders-directory-app.firebasestorage.app/o/photos%2Fx%2Fbuildwithsud.jpg?alt=media"},"createdAt":"2026-09-22T07:32:06.908Z","updatedAt":"2026-09-22T07:32:17.227Z"},{"id":"oeSugvpoAiMNzIh7TbLJ","name":"Matrix Desktop","oneLiner":"Live Matrix digital rain wallpaper and screensaver for Mac.","websiteUrl":"https://matrix.watch/","logoUrl":null,"markUrl":"https://firebasestorage.googleapis.com/v0/b/builders-directory-app.firebasestorage.app/o/marks%2FoeSugvpoAiMNzIh7TbLJ.webp?alt=media&token=09602b93-2270-4047-b264-2c68466b4393","markLogo":null,"category":"Design","region":"United States","city":null,"fundingStage":"bootstrapped","activelyRaising":null,"openTo":[],"mrr":null,"verified":false,"claimedByUid":null,"approved":true,"stats":{"impressions":1,"clicks":0,"shares":0,"referrals":0,"upvotes":1},"leaderboard":{"weekKey":"2026-W39","rank":null,"rankChange":null,"velocity":0,"streakWeeks":0,"streakDays":0,"topMoverWeeks":[],"gains":{"day":{"impressions":0,"clicks":0,"shares":0,"referrals":0,"upvotes":0},"week":{"impressions":0,"clicks":0,"shares":0,"referrals":0,"upvotes":0},"month":{"impressions":null,"clicks":null,"shares":null,"referrals":null,"upvotes":null}}},"builder":{"name":"Chris Doyle","avatarUrl":null,"region":"United States","socials":{"x":{"handle":"djfunboy"}},"photoUrl":"https://unavatar.io/x/djfunboy?fallback=false","photoCopyUrl":"https://firebasestorage.googleapis.com/v0/b/builders-directory-app.firebasestorage.app/o/photos%2Fx%2Fdjfunboy.jpg?alt=media"},"createdAt":"2026-09-19T17:37:43.259Z","updatedAt":"2026-09-19T17:40:11.677Z"},{"id":"yrPv8kprvXXD05LVmLqs","name":"Vagalumes","oneLiner":"A night sky of 413 fireflies, one for each Nova victim, kept glowing by memory.","websiteUrl":"https://vagalumes.co.il/","logoUrl":"https://firebasestorage.googleapis.com/v0/b/builders-directory-app.firebasestorage.app/o/listings%2FVqJLaO4nI4eCylgwp5CoeWLqRcZ2%2Flogo-25690c23621a4ee088fc10e0.webp?alt=media&token=8de6a795-e8e2-4c3e-9fb5-ed7ee4c7b716","markUrl":"https://firebasestorage.googleapis.com/v0/b/builders-directory-app.firebasestorage.app/o/marks%2FyrPv8kprvXXD05LVmLqs.webp?alt=media&token=8e38d27c-88da-4921-9cf7-5a0652ab7f9d","markLogo":"https://firebasestorage.googleapis.com/v0/b/builders-directory-app.firebasestorage.app/o/listings%2FVqJLaO4nI4eCylgwp5CoeWLqRcZ2%2Flogo-25690c23621a4ee088fc10e0.webp?alt=media&token=8de6a795-e8e2-4c3e-9fb5-ed7ee4c7b716","category":"Design","region":"Germany","city":null,"fundingStage":"bootstrapped","activelyRaising":null,"openTo":[],"mrr":null,"verified":false,"claimedByUid":null,"approved":true,"stats":{"impressions":8,"clicks":2,"shares":0,"referrals":0,"upvotes":2},"leaderboard":{"weekKey":"2026-W39","rank":163,"rankChange":-7,"velocity":0,"streakWeeks":0,"streakDays":0,"topMoverWeeks":[],"gains":{"day":{"impressions":0,"clicks":0,"shares":0,"referrals":0,"upvotes":0},"week":{"impressions":0,"clicks":0,"shares":0,"referrals":0,"upvotes":0},"month":{"impressions":null,"clicks":null,"shares":null,"referrals":null,"upvotes":null}}},"builder":{"name":"Hagara Ben","avatarUrl":null,"region":"Germany","socials":{},"photoUrl":null,"photoCopyUrl":null},"createdAt":"2026-09-15T15:54:56.283Z","updatedAt":"2026-09-18T18:14:19.892Z"},{"id":"P1P4x0hs3rAuXq0Xbamv","name":"The Robot and Me","oneLiner":"What happens in the room when a de
299signer and a machine actually work together.","websiteUrl":"https://therobotand.me","logoUrl":null,"markUrl":"https://firebasestorage.googleapis.com/v0/b/builders-directory-app.firebasestorage.app/o/marks%2FP1P4x0hs3rAuXq0Xbamv.webp?alt=media&token=f4b8e9de-8f27-4293-9b8b-39b19a321eae","markLogo":null,"category":"Design","region":"Germany","city":null,"fundingStage":"bootstrapped","activelyRaising":null,"openTo":["investment","hiring","partnerships"],"mrr":null,"verified":false,"claimedByUid":null,"approved":true,"stats":{"impressions":3,"clicks":0,"shares":0,"referrals":0,"upvotes":0},"leaderboard":{"weekKey":"2026-W39","rank":null,"rankChange":null,"velocity":0,"streakWeeks":0,"streakDays":0,"topMoverWeeks":[],"gains":{"day":{"impressions":0,"clicks":0,"shares":0,"referrals":0,"upvotes":0},"week":{"impressions":0,"clicks":0,"shares":0,"referrals":0,"upvotes":0},"month":{"impressions":null,"clicks":null,"shares":null,"referrals":null,"upvotes":null}}},"builder":{"name":"Hagara Ben","avatarUrl":null,"region":"Germany","socials":{},"photoUrl":null,"photoCopyUrl":null},"createdAt":"2026-09-15T15:46:08.348Z","updatedAt":"2026-09-15T15:46:13.251Z"}],"byBuilder":[]}</script>
299 300 </body> 301</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.