-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathindex.html
More file actions
354 lines (342 loc) · 20 KB
/
index.html
File metadata and controls
354 lines (342 loc) · 20 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
<!DOCTYPE html>
<html lang="en">
<head>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-3T65RS9DSM"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'G-3T65RS9DSM');
</script>
<!-- Primary Meta Tags -->
<meta name="title" content="Spindle">
<meta name="description" content="An integrated learning platform with built-in IDE, comprehensive documentation, and exam prep resources designed for students, teachers, and self-learners.">
<!-- Open Graph / Facebook -->
<meta property="og:type" content="website">
<meta property="og:url" content="https://spdl.netlify.app/">
<meta property="og:title" content="Spindle">
<meta property="og:description" content="An integrated learning platform with built-in IDE, comprehensive documentation, and exam prep resources designed for students, teachers, and self-learners.">
<meta property="og:image" content="blob:https://graygrids.com/fcd635a1-f169-4626-8a2d-7baf6864984a">
<!-- Twitter -->
<meta property="twitter:card" content="summary_large_image">
<meta property="twitter:url" content="https://spdl.netlify.app/">
<meta property="twitter:title" content="Spindle">
<meta property="twitter:description" content="An integrated learning platform with built-in IDE, comprehensive documentation, and exam prep resources designed for students, teachers, and self-learners.">
<meta property="twitter:image" content="blob:https://graygrids.com/6a3273bc-50c8-49ba-87a3-e58f035c4e0c">
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="google-site-verification" content="24mdATv6o543AXZuzFwoFPVjgr7q-QI1XLlBs-L84VY" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Spindle: Free AP CSP Practice, IDE, Flashcards, and Exam Prep</title>
<meta name="description" content="Spindle is the all-in-one, free AP Computer Science Principles (AP CSP) platform for students, teachers, parents, and self-learners. Practice with a real IDE, flashcards, MCQ/FRQ games, Create Task checklist, and more." />
<meta name="keywords" content="AP CSP, AP Computer Science Principles, AP CSP practice, AP CSP IDE, AP CSP flashcards, AP CSP MCQ, AP CSP FRQ, AP CSP Create Task, AP CSP exam prep, AP CSP resources, AP CSP for teachers, AP CSP for parents, AP CSP for students, AP CSP self-learners, free AP CSP" />
<link rel="canonical" href="https://spdl.netlify.app/">
<meta property="og:title" content="Spindle: Free AP CSP Practice, IDE, Flashcards, and Exam Prep">
<meta property="og:description" content="Spindle is the all-in-one, free AP Computer Science Principles (AP CSP) platform for students, teachers, parents, and self-learners.">
<meta property="og:url" content="https://spdl.netlify.app/">
<meta property="og:image" content="blob:https://graygrids.com/fcd635a1-f169-4626-8a2d-7baf6864984a">
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:title" content="Spindle: Free AP CSP Practice, IDE, Flashcards, and Exam Prep">
<meta name="twitter:description" content="Spindle is the all-in-one, free AP Computer Science Principles (AP CSP) platform for students, teachers, parents, and self-learners.">
<meta name="twitter:image" content="blob:https://graygrids.com/6a3273bc-50c8-49ba-87a3-e58f035c4e0c">
<script type="application/ld+json">
{
"@context": "https://schema.org",
"@type": "EducationalOrganization",
"name": "Spindle",
"url": "https://spdl.netlify.app/",
"description": "Spindle is the all-in-one, free AP Computer Science Principles (AP CSP) platform for students, teachers, parents, and self-learners. Practice with a real IDE, flashcards, MCQ/FRQ games, Create Task checklist, and more.",
"sameAs": [
"https://github.com/matthewl580/Spindle",
"https://www.instagram.com/the_spindle_project/"
],
"keywords": [
"AP CSP", "AP Computer Science Principles", "AP CSP practice", "AP CSP IDE", "AP CSP flashcards", "AP CSP MCQ", "AP CSP FRQ", "AP CSP Create Task", "AP CSP exam prep", "AP CSP resources", "AP CSP for teachers", "AP CSP for parents", "AP CSP for students", "AP CSP self-learners", "free AP CSP"
],
"audience": [
{"@type": "EducationalAudience", "educationalRole": "student"},
{"@type": "EducationalAudience", "educationalRole": "teacher"},
{"@type": "EducationalAudience", "educationalRole": "parent"},
{"@type": "EducationalAudience", "educationalRole": "self-learner"}
]
}
</script>
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
rel="stylesheet"
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL,GRAD@24,400,1,0"
/>
<link rel="stylesheet" href="css/modern.css" />
<link rel="stylesheet" href="./styles_background.css" />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
</head>
<body>
<nav id="navBar"></nav>
<main style="margin-top: 30px;">
<div class="hero-section glow inset-glow" >
<h1 class="text-gradient" style="font-size: 3.5rem; line-height: 1.08; width: 100%; max-width: 100%; margin: 0 auto 0.6rem auto;">Crush Your AP CSP Exam with Spindle</h1>
<div class="middle-highlight"></div>
<div style="width: 100%; text-align: center; margin-bottom: 1.1rem;">
</div>
<div class="moble-resize">
<div class="hero-left-side" style="display: flex; flex-direction: column; justify-content: space-between; flex: 1; min-width: 320px;">
<p class="hero-description" style="font-weight: 400; font-size: 1.05rem; margin-bottom: 1.2rem;">
Spindle is the leading platform for AP Computer Science Principles students, teachers, parents, and self-learners. It helps you unlock your potential with real coding, instant feedback, and comprehensive resources like flashcards and games. Unlock your AP CSP potential with Spindle without paywalls or confusion, just results.
</p>
<div style="flex: 1;"></div>
<div class="hero-cta" style="margin-bottom: 2.2rem; display: none;">
<a href="/study"><button class="primary-button">View Study Resources</button></a>
<a href="/articles"><button class="primary-button">View Articles</button></a>
<a href="/docs"><button class="primary-button">Explore Docs</button></a>
</div>
<div class="exam-countdown" style="background: rgba(59,130,246,0.08); border-radius: 10px; padding: 1rem 1.5rem; display: inline-block; margin-top: 1.5rem;">
<span class="material-symbols-rounded" style="vertical-align: middle; color: var(--accent-blue); font-size: 2rem;">hourglass_bottom</span>
<span style="font-size: 1.1rem; margin-left: 0.5rem;">AP CSP Exam:</span>
<span id="examCountdown" style="font-weight: bold; font-size: 1.1rem; margin-left: 0.5rem;"></span> <br>
<span style=" color: var(--text-secondary);"> <i>May 14, 2026 at 12:00pm</i></span>
</div>
</div>
<div class="hero-right-side" style="display: flex; flex-direction: column; justify-content: space-between; flex: 1; min-width: 320px;">
<div class="hero-example-code">
<div class="example-spdl-container">
<div class="ide-header">
<span class="text-secondary">main.spdl</span>
<a href="/ide"><button class="primary-button run-button">Run ▶</button></a>
</div>
<pre><code># Spindle: Where AP CSP code comes alive!
PROCEDURE greet(name) {
DISPLAY("Hello, " + name + "!")
}
greet("World")</code></pre>
</div>
<div style="margin-top: 1.5rem; text-align: center;"></div>
<div class="hero-cta" style="margin-top: 2.2rem;">
<a href="/study"><button class="primary-button">View Study Resources</button></a>
<a href="/articles"><button class="primary-button">View Articles</button></a>
<a href="/docs"><button class="primary-button">Explore Docs</button></a>
</div>
</div>
</div>
</div>
</div>
<script>
// Live countdown to AP CSP Exam (May 14, 2026, 12:00pm)
function updateExamCountdown() {
const examDate = new Date('2026-05-14T12:00:00-04:00');
const now = new Date();
const diff = examDate - now;
if (diff <= 0) {
document.getElementById('examCountdown').textContent = 'It\'s exam day!';
return;
}
const days = Math.floor(diff / (1000 * 60 * 60 * 24));
const hours = Math.floor((diff / (1000 * 60 * 60)) % 24);
const minutes = Math.floor((diff / (1000 * 60)) % 60);
let display = '';
if (days >= 30) {
display = `${days} Days`;
} else if (days >= 3) {
display = `${days} Days ${hours} Hours`;
} else {
display = `${hours + (days * 24)} Hours ${minutes} Minutes`;
}
document.getElementById('examCountdown').textContent = display;
}
setInterval(updateExamCountdown, 1000);
updateExamCountdown();
</script>
<section class="ides-section" style="max-width: 1200px; margin: 3rem auto 0 auto; padding: 0 2rem; width: auto;">
<h2 class="section-title text-center">Explore Spindle's Four IDEs</h2>
<div class="ides-grid" style="display: grid !important; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 2rem; justify-items: center; width: 100%; align-items: stretch;">
<div class="card" style="width: 270px; display: flex; flex-direction: column; align-items: center; justify-content: space-between;">
<span class="material-symbols-rounded" style="font-size: 4.5rem; margin-bottom: 0.5rem; color: var(--accent-blue);">text_fields</span>
<div class="container" style="flex: 1; display: flex; flex-direction: column; justify-content: space-between; align-items: center;">
<b>Text IDE</b>
<p>Write and run code in a traditional text editor, just like the AP CSP exam.</p>
<a href="/ide/text/" class="primary-button" style="margin-top: auto; align-self: stretch;">Start with Text IDE</a>
</div>
</div>
<div class="card" style="width: 270px; display: flex; flex-direction: column; align-items: center; justify-content: space-between;">
<span class="material-symbols-rounded" style="font-size: 4.5rem; margin-bottom: 0.5rem; color: var(--accent-blue);">view_module</span>
<div class="container" style="flex: 1; display: flex; flex-direction: column; justify-content: space-between; align-items: center;">
<b>Block IDE</b>
<p>Drag and drop blocks to build programs visually—perfect for beginners and visual learners.</p>
<a href="/ide/block/" class="primary-button" style="margin-top: auto; align-self: stretch;">Explore Block IDE</a>
</div>
</div>
<div class="card" style="width: 270px; display: flex; flex-direction: column; align-items: center; justify-content: space-between;">
<span class="material-symbols-rounded" style="font-size: 4.5rem; margin-bottom: 0.5rem; color: var(--accent-blue);">smart_toy</span>
<div class="container" style="flex: 1; display: flex; flex-direction: column; justify-content: space-between; align-items: center;">
<b>Robot IDE</b>
<p>Program a virtual robot to solve challenges and see your code in action.</p>
<a href="/ide/robot/" class="primary-button" style="margin-top: auto; align-self: stretch;">Try Robot IDE</a>
</div>
</div>
<div class="card" style="width: 270px; display: flex; flex-direction: column; align-items: center; justify-content: space-between;">
<span class="material-symbols-rounded" style="font-size: 4.5rem; margin-bottom: 0.5rem; color: var(--accent-blue);">build</span>
<div class="container" style="flex: 1; display: flex; flex-direction: column; justify-content: space-between; align-items: center;">
<b>Native IDE</b>
<p>Install and run Spindle directly on your computer for the most flexible experience.</p>
<a href="/ide/native/" class="primary-button" style="margin-top: auto; align-self: stretch;">Set Up Native IDE</a>
</div>
</div>
</div>
</section>
<h2 class="section-title text-center">Why Choose <span class="text-accent">Spindle</span>?</h2>
<div id="subHeroSection">
<div class="card">
<b class="icon">
<span class="material-symbols-rounded">terminal</span>
</b>
<div class="card-content">
<b>Interactive IDEs</b>
<p>Text, Block, Robot, and DIY IDEs for every learning style—write, run, and debug code just like the AP CSP exam.</p>
</div>
</div>
<div class="card">
<b class="icon">
<span class="material-symbols-rounded">style</span>
</b>
<div class="card-content">
<b>Flashcard Hub</b>
<p>Review, create, and print flashcards to master every AP CSP concept, or use sets made by others.</p>
</div>
</div>
<div class="card">
<b class="icon">
<span class="material-symbols-rounded">quiz</span>
</b>
<div class="card-content">
<b>MCQ Practice</b>
<p>500+ multiple choice questions with instant feedback and scoring to help you master AP CSP concepts.</p>
</div>
</div>
<div class="card">
<b class="icon">
<span class="material-symbols-rounded">edit_note</span>
</b>
<div class="card-content">
<b>FRQ Practice</b>
<p>Authentic free response drills with real coding, instant feedback, and detailed solutions.</p>
</div>
</div>
<div class="card">
<b class="icon">
<span class="material-symbols-rounded">list_alt</span>
</b>
<div class="card-content">
<b>Create Task Checklist</b>
<p>Step-by-step checklist, pro tips, and progress tracking for the official AP CSP Create Task.</p>
</div>
</div>
<div class="card">
<b class="icon">
<span class="material-symbols-rounded">assignment</span>
</b>
<div class="card-content">
<b>Exam Format Guide</b>
<p>Demystify the AP CSP exam with a clear breakdown of structure, timing, and scoring.</p>
</div>
</div>
<div class="card">
<b class="icon">
<span class="material-symbols-rounded">mystery</span>
</b>
<div class="card-content">
<b>Reference Sheet</b>
<p>Practice with the official AP CSP reference sheet—know exactly what you'll see on test day.</p>
</div>
</div>
<div class="card">
<b class="icon">
<span class="material-symbols-rounded">volunteer_activism</span>
</b>
<div class="card-content">
<b>Free & Open Source</b>
<p>Spindle is 100% free and open source—no paywalls, no ads, just learning for everyone.</p>
</div>
</div>
<div class="card">
<b class="icon">
<span class="material-symbols-rounded">school</span>
</b>
<div class="card-content">
<b>General Study Resources</b>
<p>Access a wide range of study materials, including textbooks, tutorials, and additional practice materials.</p>
</div>
</div>
</div>
<div class="hero-section no-bottom-padding">
<div>
<h3>AP CSP <span class="text-accent">Exam Preparation</span></h3>
<p class="section-description">
Master the AP CSP exam with practice problems, coding exercises, and study resources that match the actual exam format.
</p>
</div>
</div>
<div class="content-section-wide">
<div class="grid-3-col-gap">
<div class="card">
<h3 class="card-title text-accent">Exam Format</h3>
<p class="card-description">Understand the structure and requirements of the AP CSP exam.</p>
<div class="card code-bg-card">
<h4 class="card-subtitle">Exam Components</h4>
<ul class="list-unstyled">
<li><span class="bullet-icon"></span> Multiple Choice Questions (70 questions, 2 hours)</li>
<li><span class="bullet-icon"></span> Create Performance Task (12 hours, submit program)</li>
<li><span class="bullet-icon"></span> Reference Sheet Available During Exam</li>
</ul>
</div>
</div>
</div>
</div>
</main>
<div class="info-section">
<div class="content-section-max-width">
<h2 class="section-title">How Spindle Helps You Succeed</h2>
<div class="grid-3-col-gap-large">
<div>
<h3 class="section-heading text-accent">Familiar Syntax</h3>
<p class="section-text">
Many students struggle on the AP CSP exam because the code looks different from what they learned.
Spindle solves this by using the exact same syntax and structure as the AP CSP Reference Sheet.
</p>
</div>
<div>
<h3 class="section-heading text-accent">Comprehensive Resources</h3>
<p class="section-text">
Access detailed documentation, practice problems, and exam preparation materials designed to help you
understand and master every concept you'll need for the exam.
</p>
</div>
<div>
<h3 class="section-heading text-accent">Open Source & Free</h3>
<p class="section-text">
Spindle is completely free and open source, making quality AP CSP preparation accessible to everyone.
Contribute to its development or use it freely under our open source license.
</p>
</div>
</div>
</div>
</div>
<div class="cta-bottom-section" style="background: linear-gradient(90deg, var(--md-sys-color-primary-container) 0%, var(--md-sys-color-surface-container-low) 100%); padding: 3rem 0; margin-top: 3rem; border-radius: 18px; box-shadow: 0 8px 32px rgba(59,130,246,0.10);">
<div class="content-section-center" style="text-align: center; max-width: 700px; margin: 0 auto;">
<h2 class="section-title" style="font-size: 2.5rem; margin-bottom: 0.7rem;">Ready to Unlock Your AP CSP Potential?</h2>
<p class="section-description" style="font-size: 1.25rem; color: var(--text-secondary); margin-bottom: 2.2rem;">
Join thousands of students, teachers, and self-learners using Spindle to master AP Computer Science Principles—free, open, and built for your success.
</p>
<div class="button-group" style="display: flex; flex-wrap: wrap; gap: 1.2rem; justify-content: center;">
<a href="/study" class="primary-button" style="min-width: 180px; font-size: 1.1rem;">View Study Resources</a>
<a href="/articles" class="primary-button outline" style="min-width: 180px; font-size: 1.1rem;">Read Articles</a>
<a href="/ide" class="primary-button outline" style="min-width: 180px; font-size: 1.1rem;">Try the Code Editor</a>
</div>
</div>
</div>
<script src="Global/navigation.js"></script>
</body>
</html>