-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
99 lines (94 loc) · 5.46 KB
/
index.html
File metadata and controls
99 lines (94 loc) · 5.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>instanode · Real infrastructure for AI agents</title>
<meta name="description" content="Zero-setup infrastructure for AI agents. Provision real Postgres, Redis, MongoDB, queues, storage, and deployed apps with a single HTTP call. No account, no Docker, no configuration." />
<link rel="canonical" href="https://instanode.dev/" />
<meta name="theme-color" content="#08080a" />
<!-- color-scheme: dark — tells browser / OS that this site is
dark-only, so native form controls (date pickers, file
inputs, scrollbars) render with dark chrome instead of
flashing a light surface inside our dark page. BugBash
B1-P3-1 / `prefers-color-scheme: light` finding. -->
<meta name="color-scheme" content="dark" />
<!-- Open Graph -->
<meta property="og:title" content="instanode · Real infrastructure for AI agents" />
<meta property="og:description" content="Zero-setup infrastructure for AI agents. Provision real Postgres, Redis, MongoDB, queues, storage, and deployed apps with a single HTTP call." />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://instanode.dev" />
<meta property="og:image" content="https://instanode.dev/apple-touch-icon.png" />
<!-- Twitter -->
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@instanode" />
<meta name="twitter:title" content="instanode · Real infrastructure for AI agents" />
<meta name="twitter:description" content="Zero-setup infrastructure for AI agents. Provision real Postgres, Redis, MongoDB, queues, storage, and deployed apps with a single HTTP call." />
<meta name="twitter:image" content="https://instanode.dev/apple-touch-icon.png" />
<!-- favicon.ico is listed first so the browser's implicit /favicon.ico
request (fired regardless of <link> tags) resolves to a real file
instead of 404ing — BugBash P3 (W5 T10). -->
<link rel="icon" href="/favicon.ico" sizes="any" />
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32.png" />
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16.png" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png" />
<link rel="manifest" href="/site.webmanifest" />
<!-- B3-P1-7 (BugBash 2026-05-20): Atom feeds for /blog and /changelog
emitted by scripts/prerender.mjs. Listed here so feed readers
auto-discover the feeds when a user "adds" instanode.dev. -->
<link rel="alternate" type="application/atom+xml" title="instanode blog" href="/blog/rss.xml" />
<link rel="alternate" type="application/atom+xml" title="instanode changelog" href="/changelog/rss.xml" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<!-- Preload the Bricolage Grotesque stylesheet so the font request races
with the JS bundle parse instead of waiting on it. The print/onload
pattern lets the browser fetch as a low-priority *resource* and
apply once the bundle has hydrated — paint-blocking is avoided. -->
<link
rel="preload"
as="style"
href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap"
onload="this.onload=null;this.rel='stylesheet'"
/>
<noscript>
<link
href="https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,200..800&family=JetBrains+Mono:ital,wght@0,400;0,500;0,600;0,700;1,400&display=swap"
rel="stylesheet"
/>
</noscript>
<!-- Apply the persisted dark/light theme override BEFORE first paint.
Without this snippet, a user who saved "light" mode sees the dark
CSS for ~100ms then a flash to light when React hydrates. Reading
localStorage synchronously here moves the override into the same
frame as the prerendered HTML. Wrapped in try/catch so storage
denial (private mode, sandboxed iframe) is a no-op. -->
<script>
(function () {
try {
var pref = localStorage.getItem('instant.theme');
if (pref === 'light' || pref === 'dark') {
document.documentElement.setAttribute('data-theme', pref);
}
} catch (e) { /* fail silently */ }
})();
</script>
</head>
<body>
<noscript>
<div style="padding:48px 24px;max-width:680px;margin:0 auto;font-family:system-ui,sans-serif;color:#f4f4f6;background:#08080a;line-height:1.6;">
<h1 style="margin:0 0 12px;">instanode.dev — JavaScript required</h1>
<p style="margin:0 0 12px;color:#91919c;">
The dashboard is a single-page React app. The agent API at
<a href="https://api.instanode.dev/openapi.json" style="color:#00e48e;">api.instanode.dev</a>
does not require JavaScript and can be called directly with curl.
</p>
<p style="margin:0;color:#91919c;">
See the <a href="/docs" style="color:#00e48e;">docs</a> for examples, or the
<a href="/pricing" style="color:#00e48e;">pricing page</a> for tier limits.
</p>
</div>
</noscript>
<div id="root"></div>
<script type="module" src="/src/main.tsx"></script>
</body>
</html>