Spaces:
Running
Running
Enhance and optimize the provided HTML code for the 'IndieCoder' platform, focusing on improving performance, maintainability, and user experience. Instructions: Begin by reviewing the existing HTML structure, identifying areas for optimization, such as reducing redundant code and improving semantic markup. Assess the embedded CSS styles and JavaScript functions for potential enhancements, including refactoring styles for better readability and modularity, and optimizing scripts for performance. Next, evaluate the integration of external libraries like Tailwind CSS and Font Awesome, ensuring they are being used effectively and considering minimizing their footprint if necessary. Ensure the HTML follows best practices for accessibility, including appropriate use of ARIA attributes and semantic tags. Additionally, consider implementing responsive design improvements to enhance mobile and desktop experiences, and ensure the code is well-documented for future developers and maintainers. Finally, conduct a thorough test of the enhanced code across different browsers and devices to ensure compatibility and functionality. Provide detailed documentation on the changes made and any new features or improvements introduced. - Follow Up Deployment
Browse files- index.html +814 -321
index.html
CHANGED
@@ -1,391 +1,884 @@
|
|
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.0">
|
6 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
7 |
<script src="https://cdn.tailwindcss.com"></script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
8 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
|
|
|
|
9 |
<style>
|
10 |
-
|
11 |
-
|
|
|
|
|
|
|
12 |
}
|
13 |
-
|
14 |
-
|
|
|
|
|
|
|
15 |
}
|
16 |
-
|
17 |
-
|
18 |
}
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
}
|
23 |
-
|
24 |
-
|
25 |
-
overflow-y: auto;
|
26 |
}
|
27 |
-
|
28 |
-
|
|
|
|
|
|
|
29 |
}
|
30 |
-
.
|
31 |
-
|
32 |
-
}
|
33 |
-
.animate-pulse {
|
34 |
-
animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
|
35 |
-
}
|
36 |
-
@keyframes pulse {
|
37 |
-
0%, 100% {
|
38 |
-
opacity: 1;
|
39 |
-
}
|
40 |
-
50% {
|
41 |
-
opacity: 0.5;
|
42 |
-
}
|
43 |
}
|
44 |
</style>
|
45 |
</head>
|
46 |
-
<body class="bg-gray-
|
47 |
-
<!--
|
48 |
-
<
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
<
|
61 |
-
|
62 |
-
</a>
|
63 |
-
<a href="#" class="border-transparent text-gray-500 hover:border-gray-300 hover:text-gray-700 inline-flex items-center px-1 pt-1 border-b-2 text-sm font-medium">
|
64 |
-
Community
|
65 |
-
</a>
|
66 |
-
</div>
|
67 |
</div>
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
-
</div>
|
82 |
-
</div>
|
83 |
-
</div>
|
84 |
</div>
|
85 |
-
|
86 |
-
|
|
|
|
|
87 |
<span class="sr-only">Open main menu</span>
|
88 |
-
<i class="fas fa-bars"></i>
|
89 |
</button>
|
90 |
</div>
|
91 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
</div>
|
93 |
-
</
|
94 |
-
|
95 |
<!-- Main Content -->
|
96 |
-
<
|
97 |
-
<!--
|
98 |
-
<
|
99 |
-
<div class="
|
100 |
-
<div class="
|
101 |
-
<
|
102 |
-
|
103 |
-
|
104 |
-
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
-
|
109 |
-
<
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
-
<
|
|
|
|
|
119 |
</div>
|
120 |
</div>
|
121 |
-
<div class="
|
122 |
-
<
|
123 |
-
|
124 |
-
|
125 |
-
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
|
|
|
|
|
|
132 |
</div>
|
133 |
</div>
|
134 |
</div>
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
140 |
</div>
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
151 |
</div>
|
152 |
</div>
|
153 |
-
</
|
154 |
-
|
155 |
-
<!--
|
156 |
-
<
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
<
|
161 |
-
|
162 |
-
|
163 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
164 |
</div>
|
165 |
-
<div class="
|
166 |
-
|
|
|
|
|
167 |
</div>
|
168 |
-
|
169 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
170 |
</div>
|
171 |
</div>
|
172 |
</div>
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
180 |
</div>
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
<
|
191 |
-
<
|
192 |
-
|
193 |
-
|
194 |
-
<
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
<span class="
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
<span class="text-gray-500"
|
212 |
-
<
|
213 |
-
|
214 |
-
|
215 |
-
<
|
216 |
-
<span
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
<span class="text-gray-500"># Run the application</span>
|
221 |
-
<span class="text-purple-600">if</span> __name__ == <span class="text-green-600">'__main__'</span>:
|
222 |
-
app.run(debug=<span class="text-purple-600">True</span>)</pre>
|
223 |
</div>
|
224 |
</div>
|
225 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
226 |
</div>
|
227 |
-
|
228 |
-
|
229 |
-
|
230 |
-
|
231 |
-
|
232 |
-
|
233 |
-
|
234 |
-
<
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
235 |
</div>
|
236 |
-
<div class="ml-4 text-sm font-medium">Terminal</div>
|
237 |
-
</div>
|
238 |
-
<div class="p-3 font-mono text-sm">
|
239 |
-
<div class="text-green-400">$ python main.py</div>
|
240 |
-
<div class="text-gray-400">* Serving Flask app 'main'</div>
|
241 |
-
<div class="text-gray-400">* Debug mode: on</div>
|
242 |
-
<div class="text-gray-400">WARNING: This is a development server. Do not use it in a production deployment.</div>
|
243 |
-
<div class="text-gray-400">* Running on http://127.0.0.1:5000</div>
|
244 |
-
<div class="text-gray-400">Press CTRL+C to quit</div>
|
245 |
-
<div class="text-green-400">$</div>
|
246 |
-
<div class="animate-pulse">|</div>
|
247 |
</div>
|
248 |
</div>
|
249 |
-
</
|
250 |
-
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
-
|
255 |
-
|
256 |
-
|
257 |
-
|
258 |
-
|
259 |
-
|
260 |
-
|
261 |
-
|
262 |
-
</div>
|
263 |
-
<div class="flex items-center">
|
264 |
-
<i class="fab fa-docker text-blue-400 mr-1"></i>
|
265 |
-
<span>Docker Ready</span>
|
266 |
-
</div>
|
267 |
-
</div>
|
268 |
-
<div class="flex items-center space-x-4">
|
269 |
-
<div class="flex items-center">
|
270 |
-
<i class="fas fa-memory text-yellow-500 mr-1"></i>
|
271 |
-
<span>256MB / 2GB</span>
|
272 |
-
</div>
|
273 |
-
<div class="flex items-center">
|
274 |
-
<i class="fas fa-microchip text-purple-400 mr-1"></i>
|
275 |
-
<span>CPU: 12%</span>
|
276 |
-
</div>
|
277 |
-
<div class="flex items-center">
|
278 |
-
<i class="fas fa-circle text-green-500 mr-1"></i>
|
279 |
-
<span>Localhost</span>
|
280 |
-
</div>
|
281 |
-
</div>
|
282 |
-
</div>
|
283 |
-
|
284 |
-
<!-- Mobile Menu (hidden by default) -->
|
285 |
-
<div class="hidden sm:hidden" id="mobile-menu">
|
286 |
-
<div class="pt-2 pb-3 space-y-1">
|
287 |
-
<a href="#" class="bg-indigo-50 border-indigo-500 text-indigo-700 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Editor</a>
|
288 |
-
<a href="#" class="border-transparent text-gray-500 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-700 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Projects</a>
|
289 |
-
<a href="#" class="border-transparent text-gray-500 hover:bg-gray-50 hover:border-gray-300 hover:text-gray-700 block pl-3 pr-4 py-2 border-l-4 text-base font-medium">Community</a>
|
290 |
-
</div>
|
291 |
-
</div>
|
292 |
-
|
293 |
-
<!-- Welcome Modal -->
|
294 |
-
<div id="welcome-modal" class="fixed inset-0 bg-black bg-opacity-50 flex items-center justify-center z-50">
|
295 |
-
<div class="bg-white rounded-lg shadow-xl max-w-2xl w-full">
|
296 |
-
<div class="p-6">
|
297 |
-
<div class="flex justify-between items-start">
|
298 |
-
<div>
|
299 |
-
<h2 class="text-2xl font-bold text-indigo-600 mb-2">Welcome to IndieCoder</h2>
|
300 |
-
<p class="text-gray-600 mb-4">Your privacy-first, self-hostable coding platform</p>
|
301 |
-
</div>
|
302 |
-
<button id="close-modal" class="text-gray-400 hover:text-gray-500">
|
303 |
-
<i class="fas fa-times"></i>
|
304 |
-
</button>
|
305 |
</div>
|
306 |
|
307 |
-
<div class="
|
308 |
-
|
309 |
-
|
310 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
311 |
</div>
|
312 |
-
<h3 class="font-semibold mb-1">Privacy First</h3>
|
313 |
-
<p class="text-sm text-gray-600">Your code never leaves your infrastructure. No telemetry, no tracking.</p>
|
314 |
</div>
|
315 |
-
|
316 |
-
|
317 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
318 |
</div>
|
319 |
-
<h3 class="font-semibold mb-1">Self-Hostable</h3>
|
320 |
-
<p class="text-sm text-gray-600">Run on your own server with Docker. Full control over your environment.</p>
|
321 |
</div>
|
322 |
-
|
323 |
-
|
324 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
325 |
</div>
|
326 |
-
<h3 class="font-semibold mb-1">Full Stack</h3>
|
327 |
-
<p class="text-sm text-gray-600">Flask backend, React frontend, SQLite/Postgres support out of the box.</p>
|
328 |
</div>
|
329 |
</div>
|
330 |
-
|
331 |
-
|
332 |
-
|
333 |
-
|
334 |
-
|
335 |
-
|
336 |
-
|
337 |
-
|
338 |
-
<
|
339 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
340 |
</div>
|
341 |
</div>
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
347 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
348 |
</div>
|
349 |
</div>
|
350 |
-
</
|
351 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
352 |
<script>
|
353 |
-
//
|
354 |
-
document.
|
355 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
356 |
});
|
357 |
-
|
358 |
-
//
|
359 |
-
document.
|
360 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
361 |
});
|
362 |
-
|
363 |
-
|
364 |
-
|
365 |
-
|
|
|
|
|
366 |
});
|
367 |
-
|
368 |
-
//
|
369 |
-
document.querySelectorAll('
|
370 |
-
|
371 |
-
|
372 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
373 |
});
|
374 |
});
|
375 |
-
|
376 |
-
//
|
377 |
-
const
|
378 |
-
|
379 |
-
|
380 |
-
|
381 |
-
|
382 |
-
// Process command here
|
383 |
-
const command = this.textContent.trim();
|
384 |
-
console.log('Command executed:', command);
|
385 |
-
this.textContent = '$ ';
|
386 |
}
|
387 |
});
|
388 |
-
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
389 |
</script>
|
390 |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=S-Dreamer/indiecoder" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
391 |
</html>
|
|
|
1 |
<!DOCTYPE html>
|
2 |
+
<html lang="en" class="scroll-smooth">
|
3 |
<head>
|
4 |
<meta charset="UTF-8">
|
5 |
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6 |
+
<meta name="description" content="IndieCoder - A platform for independent developers to showcase projects, collaborate, and grow their skills">
|
7 |
+
<title>IndieCoder | Developer Community</title>
|
8 |
+
|
9 |
+
<!-- Preload critical resources -->
|
10 |
+
<link rel="preload" href="https://cdn.tailwindcss.com" as="script">
|
11 |
+
<link rel="preload" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css" as="style">
|
12 |
+
|
13 |
+
<!-- Tailwind CSS -->
|
14 |
<script src="https://cdn.tailwindcss.com"></script>
|
15 |
+
<script>
|
16 |
+
tailwind.config = {
|
17 |
+
theme: {
|
18 |
+
extend: {
|
19 |
+
colors: {
|
20 |
+
primary: '#4F46E5',
|
21 |
+
secondary: '#10B981',
|
22 |
+
dark: '#1F2937',
|
23 |
+
light: '#F9FAFB',
|
24 |
+
},
|
25 |
+
fontFamily: {
|
26 |
+
sans: ['Inter', 'sans-serif'],
|
27 |
+
mono: ['Fira Code', 'monospace'],
|
28 |
+
},
|
29 |
+
}
|
30 |
+
}
|
31 |
+
}
|
32 |
+
</script>
|
33 |
+
|
34 |
+
<!-- Font Awesome -->
|
35 |
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css">
|
36 |
+
|
37 |
+
<!-- Custom CSS (minimal) -->
|
38 |
<style>
|
39 |
+
/* Smooth transitions for interactive elements */
|
40 |
+
.transition-all {
|
41 |
+
transition-property: all;
|
42 |
+
transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
|
43 |
+
transition-duration: 200ms;
|
44 |
}
|
45 |
+
|
46 |
+
/* Custom scrollbar */
|
47 |
+
::-webkit-scrollbar {
|
48 |
+
width: 8px;
|
49 |
+
height: 8px;
|
50 |
}
|
51 |
+
::-webkit-scrollbar-track {
|
52 |
+
background: #f1f1f1;
|
53 |
}
|
54 |
+
::-webkit-scrollbar-thumb {
|
55 |
+
background: #888;
|
56 |
+
border-radius: 4px;
|
57 |
}
|
58 |
+
::-webkit-scrollbar-thumb:hover {
|
59 |
+
background: #555;
|
|
|
60 |
}
|
61 |
+
|
62 |
+
/* Animation for featured cards */
|
63 |
+
@keyframes float {
|
64 |
+
0%, 100% { transform: translateY(0); }
|
65 |
+
50% { transform: translateY(-10px); }
|
66 |
}
|
67 |
+
.float-animation {
|
68 |
+
animation: float 4s ease-in-out infinite;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
69 |
}
|
70 |
</style>
|
71 |
</head>
|
72 |
+
<body class="bg-gray-50 font-sans text-gray-800 antialiased">
|
73 |
+
<!-- Skip to content link for accessibility -->
|
74 |
+
<a href="#main-content" class="sr-only focus:not-sr-only focus:fixed focus:top-4 focus:left-4 focus:bg-primary focus:text-white focus:px-4 focus:py-2 focus:rounded-md focus:z-50">
|
75 |
+
Skip to content
|
76 |
+
</a>
|
77 |
+
|
78 |
+
<!-- Header/Navigation -->
|
79 |
+
<header class="sticky top-0 z-40 bg-white shadow-sm">
|
80 |
+
<nav class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
81 |
+
<div class="flex justify-between h-16 items-center">
|
82 |
+
<!-- Logo -->
|
83 |
+
<div class="flex-shrink-0 flex items-center">
|
84 |
+
<a href="#" class="flex items-center space-x-2">
|
85 |
+
<i class="fas fa-code text-primary text-2xl"></i>
|
86 |
+
<span class="text-xl font-bold text-dark">Indie<span class="text-primary">Coder</span></span>
|
87 |
+
</a>
|
|
|
|
|
|
|
|
|
|
|
88 |
</div>
|
89 |
+
|
90 |
+
<!-- Desktop Navigation -->
|
91 |
+
<div class="hidden md:flex space-x-8">
|
92 |
+
<a href="#features" class="text-gray-600 hover:text-primary px-3 py-2 font-medium transition-all">Features</a>
|
93 |
+
<a href="#projects" class="text-gray-600 hover:text-primary px-3 py-2 font-medium transition-all">Projects</a>
|
94 |
+
<a href="#community" class="text-gray-600 hover:text-primary px-3 py-2 font-medium transition-all">Community</a>
|
95 |
+
<a href="#pricing" class="text-gray-600 hover:text-primary px-3 py-2 font-medium transition-all">Pricing</a>
|
96 |
+
</div>
|
97 |
+
|
98 |
+
<!-- Auth Buttons -->
|
99 |
+
<div class="hidden md:flex items-center space-x-4">
|
100 |
+
<a href="#" class="px-4 py-2 font-medium text-gray-600 hover:text-primary transition-all">Log In</a>
|
101 |
+
<a href="#" class="px-4 py-2 bg-primary text-white font-medium rounded-md hover:bg-opacity-90 transition-all">Sign Up</a>
|
|
|
|
|
|
|
102 |
</div>
|
103 |
+
|
104 |
+
<!-- Mobile menu button -->
|
105 |
+
<div class="md:hidden">
|
106 |
+
<button id="mobile-menu-button" type="button" class="inline-flex items-center justify-center p-2 rounded-md text-gray-600 hover:text-primary hover:bg-gray-100 focus:outline-none focus:ring-2 focus:ring-inset focus:ring-primary" aria-expanded="false" aria-label="Toggle menu">
|
107 |
<span class="sr-only">Open main menu</span>
|
108 |
+
<i class="fas fa-bars text-xl"></i>
|
109 |
</button>
|
110 |
</div>
|
111 |
</div>
|
112 |
+
</nav>
|
113 |
+
|
114 |
+
<!-- Mobile menu -->
|
115 |
+
<div id="mobile-menu" class="hidden md:hidden bg-white shadow-lg">
|
116 |
+
<div class="px-2 pt-2 pb-3 space-y-1 sm:px-3">
|
117 |
+
<a href="#features" class="block px-3 py-2 rounded-md text-base font-medium text-gray-600 hover:text-primary hover:bg-gray-50">Features</a>
|
118 |
+
<a href="#projects" class="block px-3 py-2 rounded-md text-base font-medium text-gray-600 hover:text-primary hover:bg-gray-50">Projects</a>
|
119 |
+
<a href="#community" class="block px-3 py-2 rounded-md text-base font-medium text-gray-600 hover:text-primary hover:bg-gray-50">Community</a>
|
120 |
+
<a href="#pricing" class="block px-3 py-2 rounded-md text-base font-medium text-gray-600 hover:text-primary hover:bg-gray-50">Pricing</a>
|
121 |
+
<div class="pt-4 border-t border-gray-200">
|
122 |
+
<a href="#" class="block w-full px-3 py-2 rounded-md text-base font-medium text-gray-600 hover:text-primary hover:bg-gray-50">Log In</a>
|
123 |
+
<a href="#" class="block w-full px-3 py-2 mt-2 rounded-md text-base font-medium text-white bg-primary hover:bg-opacity-90">Sign Up</a>
|
124 |
+
</div>
|
125 |
+
</div>
|
126 |
</div>
|
127 |
+
</header>
|
128 |
+
|
129 |
<!-- Main Content -->
|
130 |
+
<main id="main-content">
|
131 |
+
<!-- Hero Section -->
|
132 |
+
<section class="bg-gradient-to-br from-indigo-50 to-blue-50 py-16 md:py-24">
|
133 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
134 |
+
<div class="lg:grid lg:grid-cols-12 lg:gap-8">
|
135 |
+
<div class="sm:text-center md:max-w-2xl md:mx-auto lg:col-span-6 lg:text-left">
|
136 |
+
<h1 class="text-4xl tracking-tight font-extrabold text-gray-900 sm:text-5xl md:text-6xl">
|
137 |
+
<span class="block">Build, Share,</span>
|
138 |
+
<span class="block text-primary">Grow Together</span>
|
139 |
+
</h1>
|
140 |
+
<p class="mt-3 text-base text-gray-600 sm:mt-5 sm:text-lg sm:max-w-xl sm:mx-auto md:mt-5 md:text-xl lg:mx-0">
|
141 |
+
Join a community of independent developers creating amazing projects, sharing knowledge, and accelerating their careers.
|
142 |
+
</p>
|
143 |
+
<div class="mt-8 sm:max-w-lg sm:mx-auto sm:text-center lg:text-left lg:mx-0">
|
144 |
+
<div class="flex flex-col sm:flex-row space-y-4 sm:space-y-0 sm:space-x-4">
|
145 |
+
<a href="#" class="px-6 py-3 border border-transparent text-base font-medium rounded-md text-white bg-primary hover:bg-opacity-90 shadow-sm transition-all">
|
146 |
+
Get Started
|
147 |
+
</a>
|
148 |
+
<a href="#" class="px-6 py-3 border border-transparent text-base font-medium rounded-md text-primary bg-white hover:bg-gray-50 shadow-sm transition-all">
|
149 |
+
Learn More
|
150 |
+
</a>
|
151 |
+
</div>
|
152 |
+
<p class="mt-3 text-sm text-gray-500">
|
153 |
+
Free forever for individual developers. No credit card required.
|
154 |
+
</p>
|
155 |
</div>
|
156 |
</div>
|
157 |
+
<div class="mt-12 relative sm:max-w-lg sm:mx-auto lg:mt-0 lg:max-w-none lg:mx-0 lg:col-span-6 lg:flex lg:items-center">
|
158 |
+
<div class="relative mx-auto w-full rounded-lg shadow-lg lg:max-w-md">
|
159 |
+
<div class="relative block w-full bg-white rounded-lg overflow-hidden focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-primary">
|
160 |
+
<img class="w-full" src="https://images.unsplash.com/photo-1551434678-e076c223a692?ixlib=rb-1.2.1&auto=format&fit=crop&w=1000&q=80" alt="Developers collaborating">
|
161 |
+
<div class="absolute inset-0 bg-gradient-to-t from-black/60 to-transparent"></div>
|
162 |
+
<div class="absolute bottom-0 left-0 right-0 p-6">
|
163 |
+
<p class="text-sm font-medium text-white">
|
164 |
+
<span class="float-animation inline-flex items-center">
|
165 |
+
<i class="fas fa-heart mr-2"></i> 1.2k developers love IndieCoder
|
166 |
+
</span>
|
167 |
+
</p>
|
168 |
+
</div>
|
169 |
+
</div>
|
170 |
+
</div>
|
171 |
</div>
|
172 |
</div>
|
173 |
</div>
|
174 |
+
</section>
|
175 |
+
|
176 |
+
<!-- Features Section -->
|
177 |
+
<section id="features" class="py-16 bg-white">
|
178 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
179 |
+
<div class="lg:text-center">
|
180 |
+
<h2 class="text-base text-primary font-semibold tracking-wide uppercase">Features</h2>
|
181 |
+
<p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
|
182 |
+
Everything you need to grow as a developer
|
183 |
+
</p>
|
184 |
+
<p class="mt-4 max-w-2xl text-xl text-gray-600 lg:mx-auto">
|
185 |
+
Our platform provides tools and resources to help you build better projects and connect with like-minded developers.
|
186 |
+
</p>
|
187 |
</div>
|
188 |
+
|
189 |
+
<div class="mt-16">
|
190 |
+
<div class="grid grid-cols-1 gap-12 md:grid-cols-2 lg:grid-cols-3">
|
191 |
+
<!-- Feature 1 -->
|
192 |
+
<div class="group relative bg-white p-6 focus-within:ring-2 focus-within:ring-inset focus-within:ring-primary rounded-lg shadow-sm hover:shadow-md transition-all">
|
193 |
+
<div>
|
194 |
+
<span class="rounded-lg inline-flex p-3 bg-indigo-50 text-primary ring-4 ring-white">
|
195 |
+
<i class="fas fa-project-diagram text-2xl"></i>
|
196 |
+
</span>
|
197 |
+
</div>
|
198 |
+
<div class="mt-8">
|
199 |
+
<h3 class="text-lg font-medium">
|
200 |
+
<a href="#" class="focus:outline-none">
|
201 |
+
<span class="absolute inset-0" aria-hidden="true"></span>
|
202 |
+
Project Showcase
|
203 |
+
</a>
|
204 |
+
</h3>
|
205 |
+
<p class="mt-2 text-sm text-gray-600">
|
206 |
+
Beautifully present your projects with customizable portfolios that highlight your skills and achievements.
|
207 |
+
</p>
|
208 |
+
</div>
|
209 |
+
<span class="pointer-events-none absolute top-6 right-6 text-gray-300 group-hover:text-primary" aria-hidden="true">
|
210 |
+
<i class="fas fa-arrow-right"></i>
|
211 |
+
</span>
|
212 |
+
</div>
|
213 |
+
|
214 |
+
<!-- Feature 2 -->
|
215 |
+
<div class="group relative bg-white p-6 focus-within:ring-2 focus-within:ring-inset focus-within:ring-primary rounded-lg shadow-sm hover:shadow-md transition-all">
|
216 |
+
<div>
|
217 |
+
<span class="rounded-lg inline-flex p-3 bg-green-50 text-secondary ring-4 ring-white">
|
218 |
+
<i class="fas fa-users text-2xl"></i>
|
219 |
+
</span>
|
220 |
+
</div>
|
221 |
+
<div class="mt-8">
|
222 |
+
<h3 class="text-lg font-medium">
|
223 |
+
<a href="#" class="focus:outline-none">
|
224 |
+
<span class="absolute inset-0" aria-hidden="true"></span>
|
225 |
+
Developer Community
|
226 |
+
</a>
|
227 |
+
</h3>
|
228 |
+
<p class="mt-2 text-sm text-gray-600">
|
229 |
+
Connect with other developers, get feedback on your work, and find collaborators for your next big idea.
|
230 |
+
</p>
|
231 |
+
</div>
|
232 |
+
<span class="pointer-events-none absolute top-6 right-6 text-gray-300 group-hover:text-secondary" aria-hidden="true">
|
233 |
+
<i class="fas fa-arrow-right"></i>
|
234 |
+
</span>
|
235 |
+
</div>
|
236 |
+
|
237 |
+
<!-- Feature 3 -->
|
238 |
+
<div class="group relative bg-white p-6 focus-within:ring-2 focus-within:ring-inset focus-within:ring-primary rounded-lg shadow-sm hover:shadow-md transition-all">
|
239 |
+
<div>
|
240 |
+
<span class="rounded-lg inline-flex p-3 bg-blue-50 text-blue-600 ring-4 ring-white">
|
241 |
+
<i class="fas fa-chart-line text-2xl"></i>
|
242 |
+
</span>
|
243 |
+
</div>
|
244 |
+
<div class="mt-8">
|
245 |
+
<h3 class="text-lg font-medium">
|
246 |
+
<a href="#" class="focus:outline-none">
|
247 |
+
<span class="absolute inset-0" aria-hidden="true"></span>
|
248 |
+
Growth Analytics
|
249 |
+
</a>
|
250 |
+
</h3>
|
251 |
+
<p class="mt-2 text-sm text-gray-600">
|
252 |
+
Track your progress with detailed analytics on project views, skill development, and community engagement.
|
253 |
+
</p>
|
254 |
+
</div>
|
255 |
+
<span class="pointer-events-none absolute top-6 right-6 text-gray-300 group-hover:text-blue-600" aria-hidden="true">
|
256 |
+
<i class="fas fa-arrow-right"></i>
|
257 |
+
</span>
|
258 |
+
</div>
|
259 |
+
</div>
|
260 |
</div>
|
261 |
</div>
|
262 |
+
</section>
|
263 |
+
|
264 |
+
<!-- Projects Showcase -->
|
265 |
+
<section id="projects" class="py-16 bg-gray-50">
|
266 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
267 |
+
<div class="text-center">
|
268 |
+
<h2 class="text-base text-primary font-semibold tracking-wide uppercase">Projects</h2>
|
269 |
+
<p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
|
270 |
+
Featured Developer Projects
|
271 |
+
</p>
|
272 |
+
<p class="mt-4 max-w-2xl text-xl text-gray-600 mx-auto">
|
273 |
+
Check out what our community is building
|
274 |
+
</p>
|
275 |
+
</div>
|
276 |
+
|
277 |
+
<div class="mt-12 grid grid-cols-1 gap-8 sm:grid-cols-2 lg:grid-cols-3">
|
278 |
+
<!-- Project 1 -->
|
279 |
+
<div class="bg-white overflow-hidden shadow rounded-lg transition-all hover:shadow-lg hover:-translate-y-1">
|
280 |
+
<div class="px-4 py-5 sm:p-6">
|
281 |
+
<div class="flex items-center">
|
282 |
+
<div class="flex-shrink-0 bg-indigo-500 rounded-md p-3">
|
283 |
+
<i class="fas fa-mobile-alt text-white text-xl"></i>
|
284 |
+
</div>
|
285 |
+
<div class="ml-5 w-0 flex-1">
|
286 |
+
<h3 class="text-lg font-medium text-gray-900">Mobile Health App</h3>
|
287 |
+
<p class="mt-1 text-sm text-gray-500">by @devSarah</p>
|
288 |
+
</div>
|
289 |
+
</div>
|
290 |
+
<div class="mt-4">
|
291 |
+
<p class="text-sm text-gray-600">
|
292 |
+
A health tracking application that helps users monitor their fitness goals with AI-powered recommendations.
|
293 |
+
</p>
|
294 |
</div>
|
295 |
+
<div class="mt-5 flex flex-wrap gap-2">
|
296 |
+
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-indigo-100 text-indigo-800">React Native</span>
|
297 |
+
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-green-100 text-green-800">Node.js</span>
|
298 |
+
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-purple-100 text-purple-800">MongoDB</span>
|
299 |
</div>
|
300 |
+
</div>
|
301 |
+
<div class="bg-gray-50 px-4 py-4 sm:px-6">
|
302 |
+
<div class="flex justify-between items-center">
|
303 |
+
<div class="flex space-x-2">
|
304 |
+
<span class="text-sm text-gray-500">
|
305 |
+
<i class="fas fa-star text-yellow-400"></i> 124
|
306 |
+
</span>
|
307 |
+
<span class="text-sm text-gray-500">
|
308 |
+
<i class="fas fa-code-branch text-blue-400"></i> 8
|
309 |
+
</span>
|
310 |
+
</div>
|
311 |
+
<a href="#" class="text-sm font-medium text-primary hover:text-opacity-80">
|
312 |
+
View Project <span aria-hidden="true">→</span>
|
313 |
+
</a>
|
314 |
</div>
|
315 |
</div>
|
316 |
</div>
|
317 |
+
|
318 |
+
<!-- Project 2 -->
|
319 |
+
<div class="bg-white overflow-hidden shadow rounded-lg transition-all hover:shadow-lg hover:-translate-y-1">
|
320 |
+
<div class="px-4 py-5 sm:p-6">
|
321 |
+
<div class="flex items-center">
|
322 |
+
<div class="flex-shrink-0 bg-green-500 rounded-md p-3">
|
323 |
+
<i class="fas fa-robot text-white text-xl"></i>
|
324 |
+
</div>
|
325 |
+
<div class="ml-5 w-0 flex-1">
|
326 |
+
<h3 class="text-lg font-medium text-gray-900">AI Chatbot</h3>
|
327 |
+
<p class="mt-1 text-sm text-gray-500">by @codeMaster</p>
|
328 |
+
</div>
|
329 |
+
</div>
|
330 |
+
<div class="mt-4">
|
331 |
+
<p class="text-sm text-gray-600">
|
332 |
+
A conversational AI chatbot that helps businesses automate customer support with natural language processing.
|
333 |
+
</p>
|
334 |
+
</div>
|
335 |
+
<div class="mt-5 flex flex-wrap gap-2">
|
336 |
+
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-blue-100 text-blue-800">Python</span>
|
337 |
+
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-red-100 text-red-800">TensorFlow</span>
|
338 |
+
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-yellow-100 text-yellow-800">JavaScript</span>
|
339 |
+
</div>
|
340 |
+
</div>
|
341 |
+
<div class="bg-gray-50 px-4 py-4 sm:px-6">
|
342 |
+
<div class="flex justify-between items-center">
|
343 |
+
<div class="flex space-x-2">
|
344 |
+
<span class="text-sm text-gray-500">
|
345 |
+
<i class="fas fa-star text-yellow-400"></i> 89
|
346 |
+
</span>
|
347 |
+
<span class="text-sm text-gray-500">
|
348 |
+
<i class="fas fa-code-branch text-blue-400"></i> 12
|
349 |
+
</span>
|
350 |
+
</div>
|
351 |
+
<a href="#" class="text-sm font-medium text-primary hover:text-opacity-80">
|
352 |
+
View Project <span aria-hidden="true">→</span>
|
353 |
+
</a>
|
354 |
+
</div>
|
355 |
+
</div>
|
356 |
</div>
|
357 |
+
|
358 |
+
<!-- Project 3 -->
|
359 |
+
<div class="bg-white overflow-hidden shadow rounded-lg transition-all hover:shadow-lg hover:-translate-y-1">
|
360 |
+
<div class="px-4 py-5 sm:p-6">
|
361 |
+
<div class="flex items-center">
|
362 |
+
<div class="flex-shrink-0 bg-purple-500 rounded-md p-3">
|
363 |
+
<i class="fas fa-gamepad text-white text-xl"></i>
|
364 |
+
</div>
|
365 |
+
<div class="ml-5 w-0 flex-1">
|
366 |
+
<h3 class="text-lg font-medium text-gray-900">WebGL Game</h3>
|
367 |
+
<p class="mt-1 text-sm text-gray-500">by @gameDev</p>
|
368 |
+
</div>
|
369 |
+
</div>
|
370 |
+
<div class="mt-4">
|
371 |
+
<p class="text-sm text-gray-600">
|
372 |
+
An immersive 3D browser game built with WebGL and Three.js featuring multiplayer capabilities.
|
373 |
+
</p>
|
374 |
+
</div>
|
375 |
+
<div class="mt-5 flex flex-wrap gap-2">
|
376 |
+
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-red-100 text-red-800">JavaScript</span>
|
377 |
+
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-indigo-100 text-indigo-800">Three.js</span>
|
378 |
+
<span class="inline-flex items-center px-2.5 py-0.5 rounded-full text-xs font-medium bg-gray-100 text-gray-800">WebGL</span>
|
379 |
+
</div>
|
380 |
+
</div>
|
381 |
+
<div class="bg-gray-50 px-4 py-4 sm:px-6">
|
382 |
+
<div class="flex justify-between items-center">
|
383 |
+
<div class="flex space-x-2">
|
384 |
+
<span class="text-sm text-gray-500">
|
385 |
+
<i class="fas fa-star text-yellow-400"></i> 156
|
386 |
+
</span>
|
387 |
+
<span class="text-sm text-gray-500">
|
388 |
+
<i class="fas fa-code-branch text-blue-400"></i> 23
|
389 |
+
</span>
|
390 |
+
</div>
|
391 |
+
<a href="#" class="text-sm font-medium text-primary hover:text-opacity-80">
|
392 |
+
View Project <span aria-hidden="true">→</span>
|
393 |
+
</a>
|
394 |
+
</div>
|
|
|
|
|
|
|
|
|
395 |
</div>
|
396 |
</div>
|
397 |
</div>
|
398 |
+
|
399 |
+
<div class="mt-12 text-center">
|
400 |
+
<a href="#" class="inline-flex items-center px-6 py-3 border border-transparent text-base font-medium rounded-md shadow-sm text-white bg-primary hover:bg-opacity-90 transition-all">
|
401 |
+
Browse All Projects
|
402 |
+
<i class="fas fa-arrow-right ml-2"></i>
|
403 |
+
</a>
|
404 |
+
</div>
|
405 |
</div>
|
406 |
+
</section>
|
407 |
+
|
408 |
+
<!-- Community Section -->
|
409 |
+
<section id="community" class="py-16 bg-white">
|
410 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
411 |
+
<div class="lg:grid lg:grid-cols-12 lg:gap-8">
|
412 |
+
<div class="sm:text-center md:max-w-2xl md:mx-auto lg:col-span-6 lg:text-left">
|
413 |
+
<h2 class="text-base text-primary font-semibold tracking-wide uppercase">Community</h2>
|
414 |
+
<p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
|
415 |
+
Join 10,000+ developers building together
|
416 |
+
</p>
|
417 |
+
<p class="mt-3 text-lg text-gray-600">
|
418 |
+
Our community is the heart of IndieCoder. Connect with developers from around the world, share knowledge, and grow together.
|
419 |
+
</p>
|
420 |
+
<div class="mt-8">
|
421 |
+
<div class="inline-flex rounded-md shadow">
|
422 |
+
<a href="#" class="inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-medium rounded-md text-white bg-primary hover:bg-opacity-90 transition-all">
|
423 |
+
Join the Community
|
424 |
+
</a>
|
425 |
+
</div>
|
426 |
+
</div>
|
427 |
+
</div>
|
428 |
+
<div class="mt-12 lg:mt-0 lg:col-span-6">
|
429 |
+
<div class="bg-white sm:max-w-md sm:w-full sm:mx-auto sm:rounded-lg sm:overflow-hidden">
|
430 |
+
<div class="px-4 py-8 sm:px-10">
|
431 |
+
<div class="space-y-6">
|
432 |
+
<!-- Testimonial 1 -->
|
433 |
+
<div class="bg-gray-50 p-6 rounded-lg">
|
434 |
+
<div class="flex items-start">
|
435 |
+
<div class="flex-shrink-0">
|
436 |
+
<img class="h-10 w-10 rounded-full" src="https://randomuser.me/api/portraits/women/42.jpg" alt="Sarah Johnson">
|
437 |
+
</div>
|
438 |
+
<div class="ml-4">
|
439 |
+
<div class="text-sm font-medium text-gray-900">Sarah Johnson</div>
|
440 |
+
<div class="text-sm text-gray-500">@devSarah</div>
|
441 |
+
<div class="mt-2 text-sm text-gray-600">
|
442 |
+
<p>"IndieCoder helped me showcase my projects and connect with clients. I landed my first freelance gig within a week!"</p>
|
443 |
+
</div>
|
444 |
+
</div>
|
445 |
+
</div>
|
446 |
+
</div>
|
447 |
+
|
448 |
+
<!-- Testimonial 2 -->
|
449 |
+
<div class="bg-gray-50 p-6 rounded-lg">
|
450 |
+
<div class="flex items-start">
|
451 |
+
<div class="flex-shrink-0">
|
452 |
+
<img class="h-10 w-10 rounded-full" src="https://randomuser.me/api/portraits/men/32.jpg" alt="Michael Chen">
|
453 |
+
</div>
|
454 |
+
<div class="ml-4">
|
455 |
+
<div class="text-sm font-medium text-gray-900">Michael Chen</div>
|
456 |
+
<div class="text-sm text-gray-500">@codeMaster</div>
|
457 |
+
<div class="mt-2 text-sm text-gray-600">
|
458 |
+
<p>"The community feedback on my projects has been invaluable. I've improved my coding skills dramatically thanks to IndieCoder."</p>
|
459 |
+
</div>
|
460 |
+
</div>
|
461 |
+
</div>
|
462 |
+
</div>
|
463 |
+
</div>
|
464 |
+
</div>
|
465 |
+
</div>
|
466 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
467 |
</div>
|
468 |
</div>
|
469 |
+
</section>
|
470 |
+
|
471 |
+
<!-- Pricing Section -->
|
472 |
+
<section id="pricing" class="py-16 bg-gray-50">
|
473 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
474 |
+
<div class="text-center">
|
475 |
+
<h2 class="text-base text-primary font-semibold tracking-wide uppercase">Pricing</h2>
|
476 |
+
<p class="mt-2 text-3xl leading-8 font-extrabold tracking-tight text-gray-900 sm:text-4xl">
|
477 |
+
Simple, transparent pricing
|
478 |
+
</p>
|
479 |
+
<p class="mt-4 max-w-2xl text-xl text-gray-600 mx-auto">
|
480 |
+
Choose the plan that works best for you and your projects
|
481 |
+
</p>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
482 |
</div>
|
483 |
|
484 |
+
<div class="mt-16 space-y-12 lg:space-y-0 lg:grid lg:grid-cols-3 lg:gap-x-8">
|
485 |
+
<!-- Free Tier -->
|
486 |
+
<div class="relative bg-white p-8 rounded-lg shadow-sm border-2 border-gray-200 transition-all hover:shadow-md hover:border-primary">
|
487 |
+
<div class="flex items-center">
|
488 |
+
<h3 class="text-lg font-medium text-gray-900">Hobbyist</h3>
|
489 |
+
<p class="ml-auto text-sm font-semibold text-gray-500">Free</p>
|
490 |
+
</div>
|
491 |
+
<p class="mt-4 text-sm text-gray-600">
|
492 |
+
Perfect for individual developers just getting started
|
493 |
+
</p>
|
494 |
+
<div class="mt-6">
|
495 |
+
<p class="text-4xl font-extrabold text-gray-900">$0</p>
|
496 |
+
<p class="mt-1 text-sm text-gray-500">Forever free</p>
|
497 |
+
</div>
|
498 |
+
<div class="mt-8">
|
499 |
+
<ul role="list" class="space-y-3">
|
500 |
+
<li class="flex items-start">
|
501 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
502 |
+
<span class="text-sm text-gray-700">Up to 3 projects</span>
|
503 |
+
</li>
|
504 |
+
<li class="flex items-start">
|
505 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
506 |
+
<span class="text-sm text-gray-700">Basic analytics</span>
|
507 |
+
</li>
|
508 |
+
<li class="flex items-start">
|
509 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
510 |
+
<span class="text-sm text-gray-700">Community access</span>
|
511 |
+
</li>
|
512 |
+
<li class="flex items-start">
|
513 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
514 |
+
<span class="text-sm text-gray-700">Email support</span>
|
515 |
+
</li>
|
516 |
+
</ul>
|
517 |
+
</div>
|
518 |
+
<div class="mt-8">
|
519 |
+
<a href="#" class="block w-full py-3 px-6 border border-transparent rounded-md text-center font-medium bg-gray-100 text-gray-900 hover:bg-gray-200 transition-all">
|
520 |
+
Get Started
|
521 |
+
</a>
|
522 |
</div>
|
|
|
|
|
523 |
</div>
|
524 |
+
|
525 |
+
<!-- Pro Tier -->
|
526 |
+
<div class="relative bg-white p-8 rounded-lg shadow-lg border-2 border-primary transform scale-105 z-10">
|
527 |
+
<div class="absolute top-0 right-0 -mt-4 -mr-4 px-3 py-1 bg-primary text-white text-xs font-bold rounded-full">POPULAR</div>
|
528 |
+
<div class="flex items-center">
|
529 |
+
<h3 class="text-lg font-medium text-gray-900">Professional</h3>
|
530 |
+
<p class="ml-auto text-sm font-semibold text-primary">Best value</p>
|
531 |
+
</div>
|
532 |
+
<p class="mt-4 text-sm text-gray-600">
|
533 |
+
For serious developers building their portfolio
|
534 |
+
</p>
|
535 |
+
<div class="mt-6">
|
536 |
+
<p class="text-4xl font-extrabold text-gray-900">$9</p>
|
537 |
+
<p class="mt-1 text-sm text-gray-500">Per month, billed annually</p>
|
538 |
+
</div>
|
539 |
+
<div class="mt-8">
|
540 |
+
<ul role="list" class="space-y-3">
|
541 |
+
<li class="flex items-start">
|
542 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
543 |
+
<span class="text-sm text-gray-700">Unlimited projects</span>
|
544 |
+
</li>
|
545 |
+
<li class="flex items-start">
|
546 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
547 |
+
<span class="text-sm text-gray-700">Advanced analytics</span>
|
548 |
+
</li>
|
549 |
+
<li class="flex items-start">
|
550 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
551 |
+
<span class="text-sm text-gray-700">Priority support</span>
|
552 |
+
</li>
|
553 |
+
<li class="flex items-start">
|
554 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
555 |
+
<span class="text-sm text-gray-700">Custom domains</span>
|
556 |
+
</li>
|
557 |
+
<li class="flex items-start">
|
558 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
559 |
+
<span class="text-sm text-gray-700">Early access to new features</span>
|
560 |
+
</li>
|
561 |
+
</ul>
|
562 |
+
</div>
|
563 |
+
<div class="mt-8">
|
564 |
+
<a href="#" class="block w-full py-3 px-6 border border-transparent rounded-md text-center font-medium bg-primary text-white hover:bg-opacity-90 transition-all">
|
565 |
+
Upgrade Now
|
566 |
+
</a>
|
567 |
</div>
|
|
|
|
|
568 |
</div>
|
569 |
+
|
570 |
+
<!-- Team Tier -->
|
571 |
+
<div class="relative bg-white p-8 rounded-lg shadow-sm border-2 border-gray-200 transition-all hover:shadow-md hover:border-secondary">
|
572 |
+
<div class="flex items-center">
|
573 |
+
<h3 class="text-lg font-medium text-gray-900">Team</h3>
|
574 |
+
<p class="ml-auto text-sm font-semibold text-gray-500">For groups</p>
|
575 |
+
</div>
|
576 |
+
<p class="mt-4 text-sm text-gray-600">
|
577 |
+
For teams collaborating on multiple projects
|
578 |
+
</p>
|
579 |
+
<div class="mt-6">
|
580 |
+
<p class="text-4xl font-extrabold text-gray-900">$29</p>
|
581 |
+
<p class="mt-1 text-sm text-gray-500">Per month, billed annually</p>
|
582 |
+
</div>
|
583 |
+
<div class="mt-8">
|
584 |
+
<ul role="list" class="space-y-3">
|
585 |
+
<li class="flex items-start">
|
586 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
587 |
+
<span class="text-sm text-gray-700">Everything in Professional</span>
|
588 |
+
</li>
|
589 |
+
<li class="flex items-start">
|
590 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
591 |
+
<span class="text-sm text-gray-700">Up to 5 team members</span>
|
592 |
+
</li>
|
593 |
+
<li class="flex items-start">
|
594 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
595 |
+
<span class="text-sm text-gray-700">Team collaboration tools</span>
|
596 |
+
</li>
|
597 |
+
<li class="flex items-start">
|
598 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
599 |
+
<span class="text-sm text-gray-700">Shared project spaces</span>
|
600 |
+
</li>
|
601 |
+
<li class="flex items-start">
|
602 |
+
<i class="fas fa-check text-green-500 mt-1 mr-2"></i>
|
603 |
+
<span class="text-sm text-gray-700">Team analytics dashboard</span>
|
604 |
+
</li>
|
605 |
+
</ul>
|
606 |
+
</div>
|
607 |
+
<div class="mt-8">
|
608 |
+
<a href="#" class="block w-full py-3 px-6 border border-transparent rounded-md text-center font-medium bg-gray-100 text-gray-900 hover:bg-gray-200 transition-all">
|
609 |
+
Contact Sales
|
610 |
+
</a>
|
611 |
</div>
|
|
|
|
|
612 |
</div>
|
613 |
</div>
|
614 |
+
</div>
|
615 |
+
</section>
|
616 |
+
|
617 |
+
<!-- CTA Section -->
|
618 |
+
<section class="bg-primary py-16">
|
619 |
+
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
620 |
+
<div class="lg:grid lg:grid-cols-2 lg:gap-8 lg:items-center">
|
621 |
+
<div>
|
622 |
+
<h2 class="text-3xl font-extrabold text-white sm:text-4xl">
|
623 |
+
Ready to boost your developer journey?
|
624 |
+
</h2>
|
625 |
+
<p class="mt-3 text-lg text-indigo-200">
|
626 |
+
Join thousands of developers building amazing projects and growing their skills.
|
627 |
+
</p>
|
628 |
+
</div>
|
629 |
+
<div class="mt-8 lg:mt-0">
|
630 |
+
<div class="inline-flex rounded-md shadow">
|
631 |
+
<a href="#" class="inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-medium rounded-md text-primary bg-white hover:bg-gray-50 transition-all">
|
632 |
+
Get Started for Free
|
633 |
+
</a>
|
634 |
+
</div>
|
635 |
+
<div class="inline-flex ml-3 rounded-md shadow">
|
636 |
+
<a href="#" class="inline-flex items-center justify-center px-5 py-3 border border-transparent text-base font-medium rounded-md text-white bg-primary hover:bg-opacity-80 bg-opacity-70 transition-all">
|
637 |
+
Learn More
|
638 |
+
</a>
|
639 |
+
</div>
|
640 |
</div>
|
641 |
</div>
|
642 |
+
</div>
|
643 |
+
</section>
|
644 |
+
</main>
|
645 |
+
|
646 |
+
<!-- Footer -->
|
647 |
+
<footer class="bg-gray-900" aria-labelledby="footer-heading">
|
648 |
+
<h2 id="footer-heading" class="sr-only">Footer</h2>
|
649 |
+
<div class="max-w-7xl mx-auto py-12 px-4 sm:px-6 lg:py-16 lg:px-8">
|
650 |
+
<div class="xl:grid xl:grid-cols-3 xl:gap-8">
|
651 |
+
<div class="space-y-8 xl:col-span-1">
|
652 |
+
<div class="flex items-center space-x-2">
|
653 |
+
<i class="fas fa-code text-primary text-2xl"></i>
|
654 |
+
<span class="text-xl font-bold text-white">Indie<span class="text-primary">Coder</span></span>
|
655 |
+
</div>
|
656 |
+
<p class="text-gray-400 text-sm">
|
657 |
+
Empowering independent developers to build, share, and grow together since 2023.
|
658 |
+
</p>
|
659 |
+
<div class="flex space-x-6">
|
660 |
+
<a href="#" class="text-gray-400 hover:text-white transition-all">
|
661 |
+
<span class="sr-only">Twitter</span>
|
662 |
+
<i class="fab fa-twitter text-xl"></i>
|
663 |
+
</a>
|
664 |
+
<a href="#" class="text-gray-400 hover:text-white transition-all">
|
665 |
+
<span class="sr-only">GitHub</span>
|
666 |
+
<i class="fab fa-github text-xl"></i>
|
667 |
+
</a>
|
668 |
+
<a href="#" class="text-gray-400 hover:text-white transition-all">
|
669 |
+
<span class="sr-only">Discord</span>
|
670 |
+
<i class="fab fa-discord text-xl"></i>
|
671 |
+
</a>
|
672 |
+
</div>
|
673 |
</div>
|
674 |
+
<div class="mt-12 grid grid-cols-2 gap-8 xl:mt-0 xl:col-span-2">
|
675 |
+
<div class="md:grid md:grid-cols-2 md:gap-8">
|
676 |
+
<div>
|
677 |
+
<h3 class="text-sm font-semibold text-gray-300 tracking-wider uppercase">Solutions</h3>
|
678 |
+
<ul class="mt-4 space-y-4">
|
679 |
+
<li>
|
680 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
681 |
+
For Developers
|
682 |
+
</a>
|
683 |
+
</li>
|
684 |
+
<li>
|
685 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
686 |
+
For Teams
|
687 |
+
</a>
|
688 |
+
</li>
|
689 |
+
<li>
|
690 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
691 |
+
For Educators
|
692 |
+
</a>
|
693 |
+
</li>
|
694 |
+
<li>
|
695 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
696 |
+
For Startups
|
697 |
+
</a>
|
698 |
+
</li>
|
699 |
+
</ul>
|
700 |
+
</div>
|
701 |
+
<div class="mt-12 md:mt-0">
|
702 |
+
<h3 class="text-sm font-semibold text-gray-300 tracking-wider uppercase">Support</h3>
|
703 |
+
<ul class="mt-4 space-y-4">
|
704 |
+
<li>
|
705 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
706 |
+
Documentation
|
707 |
+
</a>
|
708 |
+
</li>
|
709 |
+
<li>
|
710 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
711 |
+
Guides
|
712 |
+
</a>
|
713 |
+
</li>
|
714 |
+
<li>
|
715 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
716 |
+
API Status
|
717 |
+
</a>
|
718 |
+
</li>
|
719 |
+
<li>
|
720 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
721 |
+
Contact
|
722 |
+
</a>
|
723 |
+
</li>
|
724 |
+
</ul>
|
725 |
+
</div>
|
726 |
+
</div>
|
727 |
+
<div class="md:grid md:grid-cols-2 md:gap-8">
|
728 |
+
<div>
|
729 |
+
<h3 class="text-sm font-semibold text-gray-300 tracking-wider uppercase">Company</h3>
|
730 |
+
<ul class="mt-4 space-y-4">
|
731 |
+
<li>
|
732 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
733 |
+
About
|
734 |
+
</a>
|
735 |
+
</li>
|
736 |
+
<li>
|
737 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
738 |
+
Blog
|
739 |
+
</a>
|
740 |
+
</li>
|
741 |
+
<li>
|
742 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
743 |
+
Careers
|
744 |
+
</a>
|
745 |
+
</li>
|
746 |
+
<li>
|
747 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
748 |
+
Press
|
749 |
+
</a>
|
750 |
+
</li>
|
751 |
+
</ul>
|
752 |
+
</div>
|
753 |
+
<div class="mt-12 md:mt-0">
|
754 |
+
<h3 class="text-sm font-semibold text-gray-300 tracking-wider uppercase">Legal</h3>
|
755 |
+
<ul class="mt-4 space-y-4">
|
756 |
+
<li>
|
757 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
758 |
+
Privacy
|
759 |
+
</a>
|
760 |
+
</li>
|
761 |
+
<li>
|
762 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
763 |
+
Terms
|
764 |
+
</a>
|
765 |
+
</li>
|
766 |
+
<li>
|
767 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
768 |
+
Cookie Policy
|
769 |
+
</a>
|
770 |
+
</li>
|
771 |
+
<li>
|
772 |
+
<a href="#" class="text-base text-gray-400 hover:text-white transition-all">
|
773 |
+
GDPR
|
774 |
+
</a>
|
775 |
+
</li>
|
776 |
+
</ul>
|
777 |
+
</div>
|
778 |
+
</div>
|
779 |
+
</div>
|
780 |
+
</div>
|
781 |
+
<div class="mt-12 border-t border-gray-800 pt-8">
|
782 |
+
<p class="text-base text-gray-400 text-center">
|
783 |
+
© 2023 IndieCoder. All rights reserved.
|
784 |
+
</p>
|
785 |
</div>
|
786 |
</div>
|
787 |
+
</footer>
|
788 |
+
|
789 |
+
<!-- Back to top button -->
|
790 |
+
<button id="back-to-top" class="fixed bottom-8 right-8 p-3 bg-primary text-white rounded-full shadow-lg opacity-0 invisible transition-all hover:bg-opacity-90">
|
791 |
+
<i class="fas fa-arrow-up"></i>
|
792 |
+
</button>
|
793 |
+
|
794 |
+
<!-- JavaScript -->
|
795 |
<script>
|
796 |
+
// Mobile menu toggle
|
797 |
+
const mobileMenuButton = document.getElementById('mobile-menu-button');
|
798 |
+
const mobileMenu = document.getElementById('mobile-menu');
|
799 |
+
|
800 |
+
mobileMenuButton.addEventListener('click', () => {
|
801 |
+
const expanded = mobileMenuButton.getAttribute('aria-expanded') === 'true';
|
802 |
+
mobileMenuButton.setAttribute('aria-expanded', !expanded);
|
803 |
+
mobileMenu.classList.toggle('hidden');
|
804 |
+
|
805 |
+
// Change icon
|
806 |
+
const icon = mobileMenuButton.querySelector('i');
|
807 |
+
if (expanded) {
|
808 |
+
icon.classList.remove('fa-times');
|
809 |
+
icon.classList.add('fa-bars');
|
810 |
+
} else {
|
811 |
+
icon.classList.remove('fa-bars');
|
812 |
+
icon.classList.add('fa-times');
|
813 |
+
}
|
814 |
});
|
815 |
+
|
816 |
+
// Back to top button
|
817 |
+
const backToTopButton = document.getElementById('back-to-top');
|
818 |
+
|
819 |
+
window.addEventListener('scroll', () => {
|
820 |
+
if (window.pageYOffset > 300) {
|
821 |
+
backToTopButton.classList.remove('opacity-0', 'invisible');
|
822 |
+
backToTopButton.classList.add('opacity-100', 'visible');
|
823 |
+
} else {
|
824 |
+
backToTopButton.classList.remove('opacity-100', 'visible');
|
825 |
+
backToTopButton.classList.add('opacity-0', 'invisible');
|
826 |
+
}
|
827 |
});
|
828 |
+
|
829 |
+
backToTopButton.addEventListener('click', () => {
|
830 |
+
window.scrollTo({
|
831 |
+
top: 0,
|
832 |
+
behavior: 'smooth'
|
833 |
+
});
|
834 |
});
|
835 |
+
|
836 |
+
// Smooth scrolling for anchor links
|
837 |
+
document.querySelectorAll('a[href^="#"]').forEach(anchor => {
|
838 |
+
anchor.addEventListener('click', function(e) {
|
839 |
+
e.preventDefault();
|
840 |
+
|
841 |
+
const targetId = this.getAttribute('href');
|
842 |
+
if (targetId === '#') return;
|
843 |
+
|
844 |
+
const targetElement = document.querySelector(targetId);
|
845 |
+
if (targetElement) {
|
846 |
+
targetElement.scrollIntoView({
|
847 |
+
behavior: 'smooth'
|
848 |
+
});
|
849 |
+
|
850 |
+
// Close mobile menu if open
|
851 |
+
if (!mobileMenu.classList.contains('hidden')) {
|
852 |
+
mobileMenu.classList.add('hidden');
|
853 |
+
mobileMenuButton.setAttribute('aria-expanded', 'false');
|
854 |
+
const icon = mobileMenuButton.querySelector('i');
|
855 |
+
icon.classList.remove('fa-times');
|
856 |
+
icon.classList.add('fa-bars');
|
857 |
+
}
|
858 |
+
}
|
859 |
});
|
860 |
});
|
861 |
+
|
862 |
+
// Intersection Observer for animations
|
863 |
+
const animateOnScroll = (entries, observer) => {
|
864 |
+
entries.forEach(entry => {
|
865 |
+
if (entry.isIntersecting) {
|
866 |
+
entry.target.classList.add('animate-fade-in-up');
|
867 |
+
observer.unobserve(entry.target);
|
|
|
|
|
|
|
|
|
868 |
}
|
869 |
});
|
870 |
+
};
|
871 |
+
|
872 |
+
const observerOptions = {
|
873 |
+
threshold: 0.1
|
874 |
+
};
|
875 |
+
|
876 |
+
const observer = new IntersectionObserver(animateOnScroll, observerOptions);
|
877 |
+
|
878 |
+
document.querySelectorAll('.feature-card, .project-card, .pricing-card').forEach(card => {
|
879 |
+
observer.observe(card);
|
880 |
+
card.classList.add('opacity-0', 'transition-all', 'duration-500', 'ease-out');
|
881 |
+
});
|
882 |
</script>
|
883 |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=S-Dreamer/indiecoder" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body>
|
884 |
</html>
|