forked from 0xSaikat/pluto-ai
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
406 lines (376 loc) · 22.3 KB
/
Copy pathindex.html
File metadata and controls
406 lines (376 loc) · 22.3 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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Pluto AI — AI-Powered Code Security Analyzer</title>
<meta name="description" content="Pluto detects vulnerabilities in your codebase using Claude, OpenAI, or local Ollama models — before attackers do. Scan files, directories, or entire GitHub repos in seconds." />
<meta name="keywords" content="code security, vulnerability scanner, AI security, static analysis, SAST, CLI tool, open source, Claude AI, OpenAI, Ollama" />
<meta name="author" content="0xSaikat" />
<meta name="robots" content="index, follow" />
<link rel="canonical" href="https://0xsaikat.github.io/pluto-ai/" />
<meta property="og:type" content="website" />
<meta property="og:url" content="https://0xsaikat.github.io/pluto-ai/" />
<meta property="og:title" content="Pluto AI — AI-Powered Code Security Analyzer" />
<meta property="og:description" content="Detect vulnerabilities in your codebase using Claude, OpenAI, or local Ollama models. Scan files, directories, or GitHub repos in seconds. Free & open source." />
<meta property="og:image" content="https://0xsaikat.github.io/pluto-ai/assets/cover.png" />
<meta property="og:image:width" content="1200" />
<meta property="og:image:height" content="630" />
<meta property="og:site_name" content="Pluto AI" />
<meta property="og:locale" content="en_US" />
<meta name="twitter:card" content="summary_large_image" />
<meta name="twitter:site" content="@0xSaikat" />
<meta name="twitter:creator" content="@0xSaikat" />
<meta name="twitter:title" content="Pluto AI — AI-Powered Code Security Analyzer" />
<meta name="twitter:description" content="Detect vulnerabilities in your codebase using Claude, OpenAI, or local Ollama models. Scan files, directories, or GitHub repos in seconds. Free & open source." />
<meta name="twitter:image" content="https://0xsaikat.github.io/pluto-ai/assets/cover.png" />
<link rel="icon" type="image/png" href="assets/Pluto-logo.png" />
<link rel="apple-touch-icon" href="assets/Pluto-logo.png" />
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link href="https://fonts.googleapis.com/css2?family=Space+Mono:ital,wght@0,400;0,700;1,400&family=Syne:wght@400;600;700;800&display=swap" rel="stylesheet" />
<link rel="stylesheet" href="styles.css" />
</head>
<body>
<canvas id="bg-canvas"></canvas>
<nav>
<div class="container">
<a href="#" class="logo">
<div class="logo-icon">
<img src="assets/Pluto-logo.png" alt="Pluto Logo" />
</div>
<span class="logo-text">Pluto<span>AI</span></span>
</a>
<ul>
<li><a href="#features">Features</a></li>
<li><a href="#demo">Demo</a></li>
<li><a href="#install">Install</a></li>
<li><a href="#providers">Providers</a></li>
<li><a href="https://github.com/0xSaikat/pluto-ai" target="_blank" class="nav-cta">GitHub</a></li>
</ul>
</div>
</nav>
<section class="hero">
<div class="container">
<div class="hero-inner">
<div class="hero-content">
<div class="hero-badge">
<span class="badge-dot"></span>
AI-Powered · Open Source · CLI Tool
</div>
<h1>
Security Analysis<br />
<span class="line-accent">Supercharged</span><br />
<span class="line-dim">by AI</span>
</h1>
<p class="hero-sub">
Pluto detects vulnerabilities in your codebase using Claude, OpenAI, or local Ollama models — before attackers do. Scan files, directories, or entire GitHub repos in seconds.
</p>
<div class="hero-actions">
<a href="#install" class="btn btn-primary">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="8 17 12 21 16 17"/><line x1="12" y1="3" x2="12" y2="21"/></svg>
Install Pluto
</a>
<a href="https://github.com/0xSaikat/pluto-ai" target="_blank" class="btn btn-ghost">
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"/></svg>
View on GitHub
</a>
</div>
</div>
<div class="hero-terminal">
<div class="terminal scanline">
<div class="terminal-bar">
<span class="dot dot-r"></span>
<span class="dot dot-y"></span>
<span class="dot dot-g"></span>
<span class="terminal-title">pluto — security scan</span>
</div>
<div class="terminal-body" id="terminal-output">
<div><span class="t-prompt">$</span> <span class="t-cmd">pluto scan -dir ./backend --provider claude</span></div>
<div class="t-comment"># Initializing Pluto AI Security Scanner...</div>
<div> </div>
<div><span class="t-out">🛡️ Pluto v1.0.0 | AI-Powered Code Scanner</span></div>
<div><span class="t-out">→ Provider: claude-sonnet-4-20250514</span></div>
<div><span class="t-out">→ Target: ./backend (23 files found)</span></div>
<div> </div>
<div><span class="t-warn">⚠ [CRITICAL] SQL Injection — auth.py:142</span></div>
<div><span class="t-warn">⚠ [HIGH] Hardcoded Secret — config.py:31</span></div>
<div><span class="t-warn">⚠ [HIGH] Path Traversal — api.py:88</span></div>
<div><span class="t-out">✓ [LOW] Missing rate limit — routes.py:204</span></div>
<div> </div>
<div><span class="t-danger">✗ 3 Critical/High issues found</span></div>
<div><span class="t-ok">→ Report saved: security_report.pdf</span></div>
<div> </div>
<div><span class="t-prompt">$</span> <span class="cursor"></span></div>
</div>
</div>
</div>
</div>
</div>
</section>
<!-- STATS -->
<div class="stats-strip">
<div class="container">
<div class="stats-grid">
<div class="stat-item">
<span class="stat-num" data-target="15">0</span>
<span class="stat-label">Vulnerability Types</span>
</div>
<div class="stat-item">
<span class="stat-num" data-target="11">0</span>
<span class="stat-label">Languages Supported</span>
</div>
<div class="stat-item">
<span class="stat-num" data-target="3">0</span>
<span class="stat-label">AI Providers</span>
</div>
<div class="stat-item">
<span class="stat-num" data-target="4">0</span>
<span class="stat-label">Report Formats</span>
</div>
</div>
</div>
</div>
<!-- FEATURES -->
<section class="features" id="features">
<div class="container">
<div class="features-header reveal">
<span class="section-tag">Why Pluto</span>
<h2 class="section-title">Everything you need to<br/>secure your codebase</h2>
<p class="section-desc">From solo devs to enterprise teams — Pluto fits right into your workflow with zero friction.</p>
</div>
<div class="features-grid reveal">
<div class="feature-card">
<div class="feature-icon">🤖</div>
<h3>Multi-Provider AI</h3>
<p>Choose Claude, OpenAI, or local Ollama models. Full flexibility with zero vendor lock-in for your security analysis workflow.</p>
</div>
<div class="feature-card">
<div class="feature-icon">📁</div>
<h3>Flexible Input</h3>
<p>Scan single files, entire directories, or remote GitHub repositories directly from the CLI — no configuration headaches.</p>
</div>
<div class="feature-card">
<div class="feature-icon">📊</div>
<h3>Rich Reports</h3>
<p>Get output as a beautiful PDF, structured JSON for CI/CD, clean Markdown, or colorful terminal output with severity highlighting.</p>
</div>
<div class="feature-card">
<div class="feature-icon">🔒</div>
<h3>Privacy-First Mode</h3>
<p>Use Ollama for 100% local, offline analysis. Your code never leaves your machine — perfect for proprietary codebases.</p>
</div>
<div class="feature-card">
<div class="feature-icon">🎯</div>
<h3>Severity Filtering</h3>
<p>Focus on what matters. Filter findings by CRITICAL, HIGH, MEDIUM, or LOW and cut through the noise instantly.</p>
</div>
<div class="feature-card">
<div class="feature-icon">⚡</div>
<h3>CI/CD Ready</h3>
<p>Drop Pluto into your pipeline with JSON output mode. Gate deployments on security findings automatically.</p>
</div>
</div>
</div>
</section>
<!-- VIDEO SECTION -->
<section class="video-section" id="demo">
<div class="container">
<div class="video-inner">
<div class="reveal">
<span class="section-tag">See it in Action</span>
<h2 class="section-title">Watch Pluto<br/>secure your code</h2>
<p class="section-desc">
See how Pluto scans a real-world codebase, surfaces critical vulnerabilities, and generates a professional security report — all in under a minute.
</p>
<div style="margin-top: 32px; display: flex; flex-direction: column; gap: 16px;">
<div style="display: flex; align-items: center; gap: 12px;">
<div style="width: 32px; height: 32px; border-radius: 50%; background: rgba(246,132,1,0.1); border: 1px solid rgba(246,132,1,0.2); display: flex; align-items: center; justify-content: center; font-size: 14px;">✓</div>
<span style="font-size: 15px; color: var(--text);">Live scan of a vulnerable Flask app</span>
</div>
<div style="display: flex; align-items: center; gap: 12px;">
<div style="width: 32px; height: 32px; border-radius: 50%; background: rgba(246,132,1,0.1); border: 1px solid rgba(246,132,1,0.2); display: flex; align-items: center; justify-content: center; font-size: 14px;">✓</div>
<span style="font-size: 15px; color: var(--text);">AI-generated vulnerability explanations</span>
</div>
<div style="display: flex; align-items: center; gap: 12px;">
<div style="width: 32px; height: 32px; border-radius: 50%; background: rgba(246,132,1,0.1); border: 1px solid rgba(246,132,1,0.2); display: flex; align-items: center; justify-content: center; font-size: 14px;">✓</div>
<span style="font-size: 15px; color: var(--text);">PDF report generation in action</span>
</div>
</div>
</div>
<div class="reveal">
<div class="video-wrapper">
<div class="video-placeholder" onclick="this.innerHTML='<iframe src=\'https://youtu.be/gQKubYsUaCI\' width=\'100%\' height=\'100%\' frameborder=\'0\' allowfullscreen></iframe>'">
<div class="play-btn">
<svg width="28" height="28" viewBox="0 0 24 24" fill="#000"><polygon points="5 3 19 12 5 21 5 3"/></svg>
</div>
<p>▶ Watch Demo Video</p>
</div>
</div>
<p style="margin-top: 14px; font-size: 12px; color: var(--muted); font-family: 'Space Mono', monospace; text-align: center;">
</p>
</div>
</div>
</div>
</section>
<section class="install-section" id="install">
<div class="container">
<div class="install-inner">
<div class="reveal">
<span class="section-tag">Get Started</span>
<h2 class="section-title">Up and running<br/>in 60 seconds</h2>
<p class="section-desc">Install from PyPI, set your API key, and start scanning. It really is that simple.</p>
<div class="install-steps">
<div class="step">
<div class="step-num">1</div>
<div class="step-content">
<h4>Install from PyPI</h4>
<p>Requires Python 3.7+ and pip</p>
</div>
</div>
<div class="step">
<div class="step-num">2</div>
<div class="step-content">
<h4>Set your API key</h4>
<p>Export your Anthropic or OpenAI key as an environment variable</p>
</div>
</div>
<div class="step">
<div class="step-num">3</div>
<div class="step-content">
<h4>Run your first scan</h4>
<p>Point Pluto at any file, directory, or GitHub repo</p>
</div>
</div>
</div>
</div>
<div class="reveal">
<div class="code-block">
<div class="code-header">
<span>bash</span>
<button class="copy-btn" onclick="copyCode(this)">Copy</button>
</div>
<div class="code-body">
<div><span class="l-comment"># Install Pluto</span></div>
<div><span class="l-cmd">pip install</span> <span class="l-arg">pluto-ai</span></div>
<div> </div>
<div><span class="l-comment"># Set your API key (Claude recommended)</span></div>
<div><span class="l-cmd">export</span> <span class="l-arg">ANTHROPIC_API_KEY</span>=<span class="l-str">'your-key-here'</span></div>
<div> </div>
<div><span class="l-comment"># Scan a file</span></div>
<div><span class="l-cmd">pluto scan</span> <span class="l-arg">-code</span> app.py</div>
<div> </div>
<div><span class="l-comment"># Scan a directory, get PDF report</span></div>
<div><span class="l-cmd">pluto scan</span> <span class="l-arg">-dir</span> ./src <span class="l-arg">--report</span> pdf</div>
<div> </div>
<div><span class="l-comment"># Scan a GitHub repo</span></div>
<div><span class="l-cmd">pluto scan</span> <span class="l-arg">-git</span> <span class="l-str">https://github.com/user/repo</span></div>
<div> </div>
<div><span class="l-comment"># Use local Ollama (100% offline)</span></div>
<div><span class="l-cmd">pluto scan</span> <span class="l-arg">-code</span> app.py <span class="l-arg">--provider</span> ollama</div>
</div>
</div>
</div>
</div>
</div>
</section>
<section class="checks-section" id="checks">
<div class="container">
<div class="reveal" style="text-align: center; margin-bottom: 0;">
<span class="section-tag">What Pluto Detects</span>
<h2 class="section-title">Comprehensive vulnerability coverage</h2>
<p class="section-desc" style="margin: 16px auto 0;">Every check you need across languages, frameworks, and attack surfaces.</p>
</div>
<div class="checks-grid reveal">
<div class="check-item"><span class="check-dot"></span><span>SQL Injection</span></div>
<div class="check-item"><span class="check-dot"></span><span>XSS / Cross-Site Scripting</span></div>
<div class="check-item"><span class="check-dot"></span><span>Authentication Flaws</span></div>
<div class="check-item"><span class="check-dot"></span><span>Hardcoded Secrets</span></div>
<div class="check-item"><span class="check-dot"></span><span>Insecure Cryptography</span></div>
<div class="check-item"><span class="check-dot"></span><span>Path Traversal</span></div>
<div class="check-item"><span class="check-dot"></span><span>Command Injection</span></div>
<div class="check-item"><span class="check-dot"></span><span>CSRF Vulnerabilities</span></div>
<div class="check-item"><span class="check-dot"></span><span>Insecure Dependencies</span></div>
<div class="check-item"><span class="check-dot"></span><span>Authorization Flaws</span></div>
<div class="check-item"><span class="check-dot"></span><span>SSRF Vulnerabilities</span></div>
<div class="check-item"><span class="check-dot"></span><span>Sensitive Data Exposure</span></div>
</div>
</div>
</section>
<section class="providers-section" id="providers">
<div class="container">
<div class="reveal" style="text-align: center;">
<span class="section-tag">AI Providers</span>
<h2 class="section-title">Powered by the<br/>best AI models</h2>
<p class="section-desc" style="margin: 16px auto 0;">Choose the provider that fits your privacy, cost, and performance needs.</p>
</div>
<div class="providers-grid reveal">
<div class="provider-card featured">
<div class="provider-icon">🧠</div>
<h3>Claude</h3>
<p>Anthropic's Claude offers exceptional security reasoning and code understanding. The default and most accurate choice for code scanning.</p>
<span class="provider-tag">Best Accuracy</span>
</div>
<div class="provider-card">
<div class="provider-icon">⚡</div>
<h3>OpenAI</h3>
<p>Use GPT-4 and GPT-4o for fast, reliable vulnerability detection. Great alternative if you're already in the OpenAI ecosystem.</p>
<span class="provider-tag">Fast & Reliable</span>
</div>
<div class="provider-card">
<div class="provider-icon">🏠</div>
<h3>Ollama (Local)</h3>
<p>Run fully offline with models like Phi, Llama, or Mistral. Your code never leaves your machine — ideal for air-gapped or sensitive environments.</p>
<span class="provider-tag">100% Private</span>
</div>
</div>
</div>
</section>
<section class="cta-section">
<div class="cta-glow"></div>
<div class="container">
<div class="cta-inner reveal">
<span class="section-tag" style="display: block; text-align: center;">Open Source · MIT License</span>
<h2>Start securing your code today</h2>
<p>Built by hackers, for hackers. Free forever. Open source on GitHub.</p>
<div class="cta-btns">
<a href="#install" class="btn btn-primary">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2.5"><polyline points="8 17 12 21 16 17"/><line x1="12" y1="3" x2="12" y2="21"/></svg>
Install Now
</a>
<a href="https://github.com/0xSaikat/pluto-ai" target="_blank" class="btn btn-ghost">
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"/></svg>
Star on GitHub
</a>
</div>
</div>
</div>
</section>
<footer>
<div class="container">
<div class="footer-inner">
<div>
<div class="footer-text" style="margin-bottom: 6px;">
Built by <a href="https://hackbit.org" target="_blank">0xSaikat</a> — By the Hackers, For the Hackers.
</div>
<div class="footer-text">MIT License · <a href="https://github.com/0xSaikat/pluto-ai" target="_blank">github.com/0xSaikat/pluto-ai</a></div>
</div>
<div class="social-links">
<a href="https://github.com/0xSaikat" target="_blank" class="social-link" title="GitHub">
<svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M12 2C6.477 2 2 6.484 2 12.017c0 4.425 2.865 8.18 6.839 9.504.5.092.682-.217.682-.483 0-.237-.008-.868-.013-1.703-2.782.605-3.369-1.343-3.369-1.343-.454-1.158-1.11-1.466-1.11-1.466-.908-.62.069-.608.069-.608 1.003.07 1.531 1.032 1.531 1.032.892 1.53 2.341 1.088 2.91.832.092-.647.35-1.088.636-1.338-2.22-.253-4.555-1.113-4.555-4.951 0-1.093.39-1.988 1.029-2.688-.103-.253-.446-1.272.098-2.65 0 0 .84-.27 2.75 1.026A9.564 9.564 0 0112 6.844c.85.004 1.705.115 2.504.337 1.909-1.296 2.747-1.027 2.747-1.027.546 1.379.202 2.398.1 2.651.64.7 1.028 1.595 1.028 2.688 0 3.848-2.339 4.695-4.566 4.943.359.309.678.92.678 1.855 0 1.338-.012 2.419-.012 2.747 0 .268.18.58.688.482A10.019 10.019 0 0022 12.017C22 6.484 17.522 2 12 2z"/></svg>
</a>
<a href="https://twitter.com/0xSaikat" target="_blank" class="social-link" title="Twitter/X">
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
</a>
<a href="https://www.linkedin.com/in/0xsaikat/" target="_blank" class="social-link" title="LinkedIn">
<svg width="16" height="16" viewBox="0 0 24 24" fill="currentColor"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
</a>
<a href="https://findme.hackbit.org" target="_blank" class="social-link" title="Website">
<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="2" y1="12" x2="22" y2="12"/><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"/></svg>
</a>
</div>
</div>
</div>
</footer>
<script src="main.js"></script>
</body>
</html>