Some practice sessions now support multiple answer attempts with progressive hints before a question is finalized
Practice history records multi-attempt outcomes, including the final resolved answer and hints shown
Improvements
Redesigned Settings page brings practice, appearance, privacy, account, and release details into one easier-to-scan view
Email verification, email changes, password resets, and account deletion now provide clearer confirmation and recovery flows
Password limits and authentication request limits are now applied consistently for safer, more reliable account access
Practice and navigation layouts work more smoothly across screen sizes, including fullscreen question mode
Fixes
Email delivery failures now surface clear feedback so verification and recovery attempts do not fail silently
AI tutor replies stop cleanly when the tutor is closed or Escape is pressed
1.4.6
New Features
Realistic mode gives practice questions a cleaner, exam-style presentation and remembers your preference
Choose a custom range of units for mixed-unit practice instead of practicing one unit or every unit
Share your current class or unit practice page, or invite a classmate from the app sidebar
Flag a wrong answer, unclear question, or unclear explanation directly after reviewing a question
Improvements
Bug reports now stay open with a clear confirmation after they are submitted
Sign-up and password forms work better with browser autofill and password managers
Practice history rows can be opened with the keyboard, and copying a question ID now shows success or failure feedback
Fixes
Closing the AI tutor now stops its active reply instead of leaving it running
1.4.5
Improvements
Practice is clearer: pick an AP class and unit, then generate — no extra topic setup
AI tutor chats are more reliable, with safer limits so long or stuck replies don’t hang forever
Old topic practice links (like photosynthesis or limits) now open the matching unit page instead of a dead end
Changes
Custom-topic question generation has been removed so every question stays tied to a real AP unit
1.4.4
New Features
Question pool now excludes previously seen question IDs so practice sessions feel fresher
Refreshed sidebar user menu with avatar, settings shortcut, and sign-out
Dedicated theme toggle in the app shell (light, dark, and system)
Improvements
Streamlined question pool and cache handling for faster, more reliable delivery
Simplified admin cache dashboard aligned with the updated pool structure
History in Progress sorts consistently across paginated results
Daily streaks now count by your local calendar day
Cleaner landing page with simplified background styling
Dark mode color refinements and sidebar layout polish
Fixes
More reliable attempt recording with validated question IDs and answer data
Capped attempt timing to prevent outlier values from skewing stats
History detail drawer spacing and layout fixes
1.4.3
New Features
Practice landing pages for every AP class, unit, and topic at /practice — easier to find and share study pages
Practice hub navigation to browse units, featured topics, and jump to related pages
Public generation stats on /stats showing how many questions have been created across subjects
Improvements
Breadcrumbs and clearer navigation on practice pages
Related links on blog posts to surface more study resources
Updated footer with contact links and more consistent site navigation
Simplified settings by removing the font size control
Cleaner question history table in the Progress tab
Fixes
Practice page and question card bug fixes
1.4.2
New Features
Google One Tap sign-in for faster account access
Redesigned question history in Progress — sortable table, detail view, and pagination
Refreshed practice subject pages with a cleaner layout
Blog posts now show cover images
Homepage aspiring-students section with auto-scrolling highlights
Consistent hero headers across public pages (about, changelog, stats, and more)
Improvements
Updated about page
Refined app sidebar layout
Homepage features section refresh
App-wide toast notifications for action feedback
Progress and history page polish
Fixes
Fixed AI tutor display in fullscreen question mode
Fixed broken Resources link in the app
Settings reset and question flow reliability fixes
Changes
Practice focused on multiple-choice questions (written-response/FRQ mode removed)
Simplified settings by removing unused options
1.4.1
Authentication
Migrated authentication fully to Better Auth, replacing custom JWT handling with secure session cookies
Google sign-in, email/password, verification, and password reset now flow through Better Auth
User data APIs moved from /api/auth/* to /api/me/*; legacy auth endpoints removed
Server-side session loading for app routes, with trusted-origin and callback URL hardening
Infrastructure
Docker Compose config for local MongoDB during auth development
Updated environment variables and README for Better Auth setup
1.4.0
New Features
Question history in the Progress tab with pagination for signed-in users
Summer study guide at /summer with a 4-week Unit 1 preview plan
Homepage aspiring-students section and refreshed messaging around course planning
AP Lunch😂 — a joke subject with cafeteria-themed practice questions
Two new blog posts: Which APs to take and Summer AP study plan
Skip-to-main-content link for keyboard and screen-reader users
PageShell layout component for consistent app page structure
Improvements
Migrated AI question generation and tutoring to the Vercel AI SDK
Refactored authenticated API routes with shared auth and error-handling helpers
Updated privacy and terms pages
Typography refresh across marketing pages
Switched package manager to Bun
GitHub Actions workflow for Afterlane deploy verification
Fixes
Fixed topbar menu stacking above animated hero content
Removed unused progress-detailed API endpoint and dead UI components
Testing
Playwright test ensuring unauthenticated users are redirected from history
1.3.6
Fixes
Bug fixes and edge-case handling across practice and account flows
AI
Model upgrades for question generation, batch analysis, and tutor responses (gpt-5.4-mini)
Stability
Stability improvements for reliability, performance, and error recovery
1.3.5
New Features
Added AP Spanish support
Fixes
Bug fixes
Security
Security hardening
Refactored Content Security Policy (CSP) handling for Svelte
1.3.4
New Features
Added a stats API and a new stats page at /stats
Fixes
Fixed UI inconsistencies across various pages
Removals
Removed incorrect reference sheets
1.3.3
New Features
Added enhancements to the calculator experience
Improved reference sheets with better navigation and display
Improvements
Optimized code for better performance and reuse across components
Refined practice handling with slight quality improvements
1.3.2
Improvements
Questions now rarely repeat the same topics within a unit
Improved mobile responsiveness for blog posts
Added quick actions to blog posts
Improved styling of the about page
1.3.1
New Additions
Added a blog with 4 articles so far
Added an about page
Improvements
Fixed mobile responsive design on the topbar and sidebar
Fixed inconsistent design for logged in users
Improved accessibility with better ARIA attributes and keyboard navigation
Improved consistency of UI elements across pages, including buttons and links
Improved SEO optimization with better meta tags and structured data
1.3.0
Major Changes
Migrated project to SvelteKit while keeping compatible APIs
New Features
Added a new dashboard for loggin in users including a home, practice, progress and settings page
Added practice improvements for logged in users
Improvements
Optimized SvelteKit integration for faster page loads and better routing
Fixed awkward UI for practicing questions on mobile devices
1.2.2
Changes
Added more settings options for a better user experience
Improved code security across the application
Warning
Version 1.3.0 will migrate the project to SvelteKit while keeping compatible APIs
1.2.1
Fixes
Fixed UI errors and topbar consistency across pages
Fixed no settings button when not logged in
Fixed questions not being saved properly
Changes
Code now renders using highlight.js with tokyo night theme
Icons changed to consistent solid svgs
Improvements
Optimized more code, and also cleaned it up
Improved prompting for tutor responses, prohibiting it from giving answers
404 error directs to "Not Found" page
Technical
Changed server security to helmet.js
Changed request logging to use the structured server logger
1.2.0
Changes
Project is now Open-Source, repo at github.com/5cisummai/freeappractice
Added optional analytics preference controls
Improvements
Optimized backend code, removing depricated features
Updated node modules to lastest versions
1.1.1
Fixes
Fixed UI errors and topbar consistency across pages
Improved SEO optimization across pages
1.1.0 - Update
New Features
User accounts: track progress and stats across devices
New AI Tutor: interactive assistant to help with questions and explanations
Fixes
Bug fix for question progress tracker
Mobile responsiveness fixes
Theme consistency and messy UI fixes
Fixed question caching consistency
Improvements
Greatly improved question generation accuracy
Performance improvements with dynamic JS loading and HTML components model
Technical
Server logging improved for better diagnostics and observability
Every-question storage now backed by AWS S3 (durable, searchable storage)
Updated privacy handling for account data and S3 storage guidance
Dependency and build improvements to reduce runtime module issues
1.0.2
Fixes
Fixed critical bug that prevented user from getting questions
Improvements
Fixed theme consistency across pages
Fixed UI consistency across pages.
Focus Mode UI improvements
1.0.1
Improvements
Fixed mobile responsiveness.
1.0.0 - Stable Release
Major Features
Intelligent hybrid caching system: Instant first question from database cache, fresh AI-generated questions for subsequent requests
Smart prefetch system: Next question pre-generates in the background while you review the current one
Enhanced question variety: Each new question uses a random unit selection for maximum diversity
MongoDB question cache with automatic background refresh
Seamless provider fallback: Automatically switches from local to OpenAI if local model fails
Performance Improvements
First question now loads instantly from pre-cached database
Subsequent questions appear instantly from client-side prefetch cache
Background refresh keeps database cache up-to-date without blocking user requests
Optimized API architecture with service layer separation
Rate limiting (20 req/min) for OpenAI provider to manage costs
Bug Fixes
Fixed MongoDB connection errors with deprecated options
Resolved provider variable scope issues in error handling
Fixed LaTeX rendering issues with proper JSON escaping
Corrected cache key behavior when switching between classes/units
Technical Details
Refactored API to accept className and unit parameters directly
Implemented skipCache parameter for prefetch vs initial request control
Database cache always uses OpenAI for consistent quality
Client-side hasShownFirstQuestion flag for session state management
Unit range handling now correctly picks random units for variety
Warnings
Some cached questions may be of lower quality as they were generated with earlier, less refined prompts. New questions generated after this update will use the latest improved prompts for better accuracy and relevance.
Some cached questions may contain formatting issues due to previous JSON escaping bugs. New questions will have correct formatting.
0.9.4 - Beta
Improvements
Questions are now more accurate per class and per unit
More data for questions to be created on
Changes
Added Advertisements to run when ever it is not testing times
0.9.3 - Beta
Fixes
Changelog page now follows the correct color theme
Settings button now toggles the setting modal rather than just opening it
Changes
More complex subjects now use gpt-5-mini instead of o4-mini
Order of elements in footer changed
Improvements
New show/hide button for the progress sidebar
How to use section now more interactive
0.9.2 - Beta
Changes
Removed info about AI provider while a question is showning
Improvements
Improved prompt wording to enhance formatting in answer choices and explanations
Added a "Show Explanation" toggle for referring back to explanations
0.9.1 - Beta
Improvements
Improved unit selection logic for "All Units" and custom range modes
Questions now randomly select a single unit from the range instead of trying to cover multiple units
Better question quality by focusing on specific unit content
0.9.0 - Beta
Initial Release
Launch of FreeAPPractice.org (Beta)
Support for 20+ AP subjects
AI-powered question generation
Dual provider support: Local (LM Studio) and OpenAI
Real-time feedback and detailed explanations
Customizable theme (Light/Dark/System)
Local progress tracking
Focus Mode for distraction-free practice
Customizable unit range selection with range slider