← Blog

Announcing Copia

10 July 2024

Today, I’m excited to introduce Copia: a web app designed to help you master vocabulary, geography, and any other subject effortlessly. With its intelligent scheduling algorithm, Copia ensures you spend the least amount of time needed to retain information effectively.

Key Features

  • Intelligent Scheduling Algorithm: Copia uses the smart FSRS algorithm to determine the optimal times for you to review information. This ensures that you spend the minimal amount of time needed to retain what you've learned, maximizing your efficiency.
  • Cross-Platform Access and Offline Ready: Whether you're at home on your computer or on the go with your smartphone, Copia is accessible from any device even without an internet connection.
  • Comprehensive Subject Coverage: From languages and sciences to history and beyond, Copia allows for a wide range of subjects.

Tech stack

Copia's development was initiated with SvelteKit and Pocketbase. However, I soon switched from Pocketbase to Laravel, as Laravel provides a more mature foundation to build Copia.

As I planned to make Copia offline first, I needed client-side data storage. I started with LocalStorage, but it doesn't provide the database structure that was needed for this project. Then I looked into IndexedDB, but it was annoying to get it working. Finally, I found DexieJS: a wrapper around IndexedDB that makes it a joy to work with.

When the user goes online again, the app syncs all offline data to the server. This pattern allows the user to access the app at all times, even without an internet connection.

Future plans

Although the foundation is solid, there’s plenty of room for improvement. Here’s what I plan to add in the future:

  • Enhanced User Experience: The UI is nice, but there are many ways to make the app more intuitive and user-friendly.
  • Statistics: Tracking progress is important. In a future update, I’ll add charts and stats to help you see how well you’re doing.
  • Dark Mode: Adding an option for a dark theme to make the app easier on the eyes in low light.
  • Multi-language Support: Allowing users to choose from various languages for better accessibility.

Conclusion

In conclusion, while the app’s foundation is robust, I are committed to continuous improvement. With enhanced user experience, detailed statistics, new features, bug fixes, dark mode, and multi-language support, the future updates aim to make the app more intuitive and enjoyable for everyone.

I invite you to try the app and experience these exciting enhancements firsthand. Best of all, it’s completely free! Click here to create a free account.