- Upload all project files to Val Town
- Set the Val type to HTTP Val
- Set entry point to
main.ts - Save and preview!
- Open the app in your browser
- Enter a username (any name you like - creates a new account)
- Create your first deck (e.g., "Spanish Vocabulary")
- Add some cards:
- Front: "Hello"
- Back: "Hola"
- Click "Study" to start learning!
When you study:
- Card shows the front (question)
- Try to recall the answer
- Click "Show Answer"
- Rate your recall:
- π΄ Again: Didn't remember β see again tomorrow
- π Hard: Difficult β see in a few days
- π’ Good: Normal recall β see in ~1-2 weeks
- π΅ Easy: Perfect recall β see in a month
The app learns which cards are hard for you and shows them more often!
flashcard/
βββ main.ts # Entry point
βββ README.md # Overview and features
βββ ARCHITECTURE.md # Technical deep-dive
βββ GETTING_STARTED.md # This file
β
βββ backend/ # Server-side code
β βββ index.ts # Hono app setup
β βββ storage.ts # Blob storage
β βββ routes/ # API endpoints
β βββ auth.ts # Login
β βββ decks.ts # Deck CRUD
β βββ cards.ts # Card CRUD
β βββ study.ts # Spaced repetition
β βββ stats.ts # Statistics
β βββ backup.ts # Export/import
β
βββ frontend/ # Client-side code
β βββ index.html # UI layout
β βββ index.js # App logic
β
βββ shared/ # Shared code
βββ types.ts # Types + SR algorithm
- β¨ Create unlimited decks and cards
- π― Study with proven spaced repetition (SM-2 algorithm)
- π Track your learning progress
- πΎ Backup/restore your data
- π± Works on mobile and desktop
Instead of cramming, this app:
- Shows cards at optimal intervals
- Focuses on cards you're about to forget
- Spaces out cards you know well
- Adapts to your learning speed
Result: Better retention with less time studying!
- Deck: "French Vocabulary"
- Cards: English β French translations
- Result: Build vocabulary naturally over weeks/months
- Deck: "Anatomy Terms"
- Cards: Term β Definition + location
- Result: Retain complex terminology long-term
- Deck: "Python Syntax"
- Cards: Concept β Code example
- Result: Memorize syntax patterns
- Deck: "World Capitals"
- Cards: Country β Capital city
- Result: Fun trivia learning
- β Keep cards simple (one concept per card)
- β Use clear, concise language
- β Add context when needed
- β Avoid long paragraphs
- β Don't make cards too easy or too hard
- β Study daily (even just 5-10 minutes)
- β Be honest with ratings
- β Focus on understanding, not just memorization
- β Take breaks between sessions
- β Don't cram before tests (start early!)
- Again (1): Completely forgot or got it wrong
- Hard (2): Struggled but eventually remembered
- Good (3): Recalled with reasonable effort
- Easy (4): Instant, effortless recall
Number of flashcards you've created across all decks.
How many times you've reviewed cards (each rating counts as 1 review).
Cumulative time spent in study sessions (hours and minutes).
Percentage of reviews rated "Good" or "Easy" (higher = better retention).
Detailed log of each study session:
- When you studied
- Which deck
- How long
- How many cards
- Success rate
- Protect against accidental data loss
- Move data between Val Town accounts
- Keep version history
- Share decks with others (JSON format)
- Click "Backup" in navigation
- Click "Download Backup"
- Save the JSON file somewhere safe (e.g., Google Drive, Dropbox)
- Click "Backup" in navigation
- Click "Choose File" and select your backup JSON
- Click "Restore Backup"
- Confirm (β οΈ this replaces current data!)
- Check if cards are due (new cards are due immediately)
- Make sure the deck has cards
- Try refreshing the page
- Did you use the same username?
- Check if you have a backup file
- Contact Val Town support if needed
- Stats calculate based on completed sessions
- Try logging out and back in
- Check backup file for data integrity
- Check Val Town status
- Try clearing browser cache
- Check browser console for errors
- Read ARCHITECTURE.md for technical details
- Read README.md for full feature list
- Visit Anki Manual to learn about spaced repetition
- Modify CSS in
frontend/index.htmlfor styling - Adjust SM-2 parameters in
shared/types.ts - Add new features (see README for ideas)
- Export decks as JSON
- Share with friends/classmates
- Contribute improvements
This is an open-source project built for Val Town.
For Val Town platform issues, see Val Town Documentation.
For spaced repetition questions, research the SuperMemo SM-2 algorithm.
Happy Learning! π
Remember: Consistent daily practice beats intense cramming. The algorithm works best when you:
- Study regularly (even 5-10 min/day)
- Rate honestly (don't grade yourself too easily)
- Trust the process (cards will come back at the right time)
Good luck with your learning journey! π