📚 TeaTime
What is the project about?
TeaTime is a fully static, distributed library system. It's designed to be a resilient and easily replicated platform for accessing and sharing files.
What problem does it solve?
It provides a decentralized way to host and access library content, making it resistant to censorship and single points of failure. It decouples the application from the data, allowing for easy forking and replication.
What are the features of the project?
- Search by title, author, year, or format.
- Reading history and page position saving.
- Local file downloads.
- File caching in IndexedDB.
- Drag-and-drop file rendering.
- Dark mode and full-screen mode.
- No cookies or login required.
- Fully distributed architecture.
What are the technologies used in the project?
- IPFS: For distributed file storage.
- SQLite: For database management.
- GitHub: For hosting databases and frontend instances (using GitHub Pages).
- Nuxt.js: Frontend framework (Vue.js based).
- sql.js-httpvfs: For querying SQLite databases over HTTP.
- JSON: Used in a JSON based database repository.
- Github Actions: Used to generate an SQLite file and upload it to GitHub Pages.
What are the benefits of the project?
- Decentralization: No single point of failure; resistant to censorship.
- Resilience: Content is distributed across IPFS and replicated across multiple instances.
- Easy Replication: Both the frontend and databases can be easily forked and deployed.
- Static: The application and databases are static files, making them easy to host and serve.
- Privacy: No cookies or user tracking.
- Scalability: Can be easily scaled by adding more databases and instances.
What are the use cases of the project?
- Creating and sharing personal or community libraries.
- Hosting educational resources.
- Archiving and preserving digital content.
- Providing access to information in areas with limited or unreliable internet connectivity (by caching content locally).
- Building censorship-resistant platforms for sharing information.
