Flashcards in Space is a personal mission to make long-term learning feel less like a chore and more like an exploration. It combines the proven science of spaced repetition with a modern, space-themed interface designed to keep you curious and consistent.
Flashcards in Space wasn’t born from a business plan, but from a personal need and a bit of "what if?" curiosity. The project is built on three core pillars:
I’ve always been a believer in the Leitner System, the simple but powerful idea of moving cards through boxes as you master them. However, I found myself constantly struggling with existing tools. They were either powerful but buried under "clunky"interfaces that felt like 90s spreadsheets, or beautiful but lacked the specific scheduling flexibility I needed. I wanted a place to learn that felt warm, intuitive, and fun to return to every morning.
While the traditional Leitner system is powerful, its rigid intervals often lead to "review spikes", daunting days when hundreds of cards collide at once. Gabriel Wyner made incredible strides in smoothing this out to create a more manageable pace, and the Lightspeed Schedule takes that evolution to its natural conclusion. By intelligently shifting and distributing learning stages across the calendar, it eliminates those overwhelming peaks entirely. The result is a perfectly fluid, natural progression that ensures your daily ritual stays calm and consistent, no matter how large your deck grows.
This project is a laboratory for high-precision engineering. While "vibe coding" prioritizes speed through abstraction and "prompt-and-pray" generation, this codebase is built on technical sovereignty.
I chose to build every single UI component from scratch using only a UI framework and a couple of base libs. I wanted to see how far a solo developer can push the limits of custom design when they have a powerful AI teammate at their side.
The AI as a High-Precision Lathe, Not an Autopilot
In this workflow, the AI isn't used to "skip" the work, but to scale it. It's not the pilot; it’s a high-precision lathe. By treating the AI as an Extreme Programming (XP) partner, I can mill individual building blocks to a micron-level of precision while I focus on the choreography of the architecture.
This is the move from "vibing" to engineering:
- Granular Implementation: Every
div,ref, and CSS property is an intentional choice. No "black box" components, no library bloat, and no wrestling with a UI kit’s baked-in styles. - Deterministic Control: "Vibing" often leads to a "last mile" debugging nightmare. By constructing the logic line-by-line, I maintain well-grained control over the entire system.
- Architectural Sovereignty: While the AI handles the heavy lifting of implementation, I remain the sole architect of the system’s behavior and state.
Why go from scratch?
To prove that the "tax" of bespoke excellence has been eliminated. Traditionally, a solo dev uses a UI framework to survive. I chose low-level construction to achieve enterprise-grade custom architecture with a team of one.
This isn't a shortcut, it's a new era of productivity where the engineer maintains total command over the code.
⚠️ Note: This project is shared for educational purposes only. You may clone and run it locally to learn from the code, but commercial use and redistribution are prohibited. See the Licensing & Use section for details.
- Java 24+
- Node.js 22+
- PostgreSQL
-
Clone the repository:
git clone https://github.com/elimxim/flashcardsinspace.git cd flashcardsinspace -
Configure the database in
props/application.yaml -
Build and run:
./gradlew bootRun
-
For frontend development:
cd src/main/vue npm install npm run dev
This project is not accepting pull requests due to its proprietary license. However, you're welcome to:
- 🐛 Report bugs via Issues
- 💡 Suggest features or improvements
- ⭐ Star the repo if you find it interesting!
Thank you for your interest in Flashcards in Space. This project is shared so you can read and learn from the code, but it is not open-source, and usage is subject to the license terms.
| ✅ Allowed | Cloning the repository, viewing the source, and running it locally for personal, non-commercial evaluation and learning |
| ❌ Prohibited | Commercial use, redistribution, modification, use in other projects, hosting as a service, or any production use (without a separate commercial license) |
| 📄 License | Your use of this repository is governed by the terms in the LICENSE file |
Please see the LICENSE file for the complete terms and conditions.
✨ Taking your memory to infinity and beyond ✨