TagSpaces as a platform for file-based apps
Your Own Decentralized Trello, Evernote, Dropbox Independent from Tech Companies...
In today's digital landscape, where data privacy, offline accessibility, and seamless file management are paramount, file-based apps have emerged as a simple yet powerful alternative to countless App/SaaS solutions. These apps utilize plain text files for storing data, offering numerous advantages such as independence from back-end or online services, offline functionality, easy transferability, and data ownership. TagSpaces not only supports a wide range of file-based apps but also offers a host of features that make it an ideal choice for users seeking a versatile and efficient solution.
What Are File-Based Apps?
File-based apps leverage plain text files as the primary storage medium for their data and content. By avoiding dependencies on databases and online services, these apps offer a range of benefits that traditional applications struggle to match. Users can operate these apps completely offline, eliminating the need for an internet connection. Furthermore, file-based apps offer effortless data transfer through synchronization services or file transfer software, enabling users to seamlessly switch between devices. The data in file-based apps remains accessible and readable, ensuring that users retain full control and avoid vendor lock-ins. TagSpaces provides the ability to turn a folder on your hard drive into a dedicated file app based on the files inside and their purpose. TagSpaces introduces the concept of perspectives, which can be assigned to folders. When you open a folder assigned to a perspective in TagSpaces, it is visualized accordingly. For example, if a folder contains photos, you can set the gallery perspective for it, or if it contains tasks for a specific project, the kanban perspective is the appropriate choice.
TagSpaces has emerged as a leading platform for file-based apps, providing a comprehensive suite of functionalities that simplify data management and enhance productivity. Let's explore some of the app categories which are currently covered:
File Management with Tagging Support
TagSpaces offers an intuitive interface for organizing and managing files and folders. Its robust file operations, such as renaming, copying, moving, and tagging, provide users with full control over their digital assets. With desktop application, you can effortlessly navigate through your file system, ensuring quick and efficient access to your documents.
Digital Note-Taking
TagSpaces serves as an excellent tool for capturing and organizing digital notes. Whether you're creating to-do lists, jotting down ideas, or drafting meeting minutes, TagSpaces allows you to create, edit, and organize your notes seamlessly. With its extensive tagging capabilities, you can categorize and label your notes for easy retrieval.
Media Gallery and Player
TagSpaces simplifies the management of your multimedia files, including images, audio, and video. It provides a visually appealing gallery view with a presentation mode, allowing you to browse and showcase your media collection effortlessly. Additionally, there is a built-in media player, eliminating the need for external applications to enjoy your favorite audio or video files.
Document Viewer
With TagSpaces, you can view various document formats, including PDF, Word, and Excel files. This feature eliminates the need for specialized software, enabling you to preview and work with documents directly within the app. Whether you're reviewing reports, studying spreadsheets, or reading e-books, TagSpaces streamlines the document viewing experience.
Task and Project Management
TagSpaces offers a flexible platform for organizing tasks and managing projects. With its Kanban board functionality, you can create customizable boards to track the progress of your tasks, assign priorities, and collaborate with team members. This feature enhances productivity by providing a visual representation of your workflow.
Bookmark Manager
TagSpaces, together with its web clipper browser extension, allows you to efficiently organize and access your bookmarks within its interface. By tagging and categorizing your bookmarks, you can quickly find relevant web pages, articles, or resources. This integrated bookmark manager eliminates the need for browser-specific bookmarking tools, enabling you to centralize and streamline your online references.
Geotagging and Digital Maps
TagSpaces facilitates geotagging of files, enabling you to associate location data with your photos, documents, or any other files. You can view and manage these geotagged files on digital maps directly within the app, making it ideal for organizing travel photos, field research, or geospatial data.
3D Model Viewer
TagSpaces includes a built-in viewer for 3D models, allowing you to preview and interact with various file formats. Whether you're working with CAD designs, architectural models, or 3D visualizations, the applications provides a convenient environment for exploring and inspecting your 3D assets.
File-Based Apps in Your Browser
All the presented file apps work in the TagSpaces desktop app and do not require an internet connection or a service account (yes, even the geo-tagging can be configured to work with your own local map tile server). The reason for this is that all the data you need is on your hard drive or SSD in the form of files and folders. However, imagine having these files or part of them stored on the cloud, allowing you to share them between different computers, mobile devices, or with others on the internet. In this case, you would need an object storage service such as AWS S3, Wasabi, or Cloudflare R2. You can continue to use the desktop version of the app, which can connect to such storage, or set up your own web application. Setting up the web version only requires a static web server, and enables you to use the application from any device with a modern web browser.
Just imagine having your own Trello, Evernote, or Dropbox without any tracking and vendor lock-in. You would completely own your data and have the freedom to share part of it with others...
Your File-Based Apps on Many Devices
Working with the same app on multiple devices is an essential requirement in today's app world. To have your file app on other devices, you can either sync the folder containing your file app to another computer or have your devices connect to an S3-compatible object storage containing these files. Here are the available options:
- Using sync services like Dropbox, Google Drive, or Syncthing - connect TagSpaces to locally synced folders.
- Using a common S3 bucket on your NAS (e.g., Minio) - directly connect TagSpaces Desktop or Web (also on mobile devices as a PWA) to the S3 service.
- Using a common S3 bucket on the internet (AWS, Wasabi, etc.) - directly connect TagSpaces Desktop and Web (also on mobile devices as a PWA) to the S3 service.
Sharing Files
Sharing files is another basic requirement, which is addressed by offering time-limited sharing links for files on object storage, as well as internal sharing links for other TagSpaces users. More details on file sharing can be found in the documentation of the application.
About the software architecture
A picture is worth a thousand words, so here a simple diagram showing the software architecture of the native (Mac, Windows, Linux, Android) and the web (modern browser) applications:
A comprehensive diagram of how TagSpaces can be installed, deployed, and configured can be found in the application's documentation. The most interesting part in both diagrams is that the application consists of only two tiers: front-end and file storage. There is no typical back-end or database for storage. In the current design, the front-end directly accesses the file/object storage. This might sound controversial to some experts but significantly simplifies the deployment, maintenance, and portability of the application. TagSpaces started as a browser extension and expanded into a full-blown desktop application that directly works with local files. In the web version, we chose to keep this simplicity and integrated the ability to directly manage files in S3 object storage. Since TagSpaces primarily targets private users, we believe this decision strikes a good balance. The TagSpaces apps connect directly to the object storage and can store the access keys for the object storage in the user's browser (for the web app). We are aware that this is not always possible or recommended and provide alternative configuration options for saving locations.
Limitations of this approach
File-based apps have some downsides, primarily due to the absence of a database. This can cause performance issues with full-text search or when searching in folders containing many files. The solution is to externalize the search index creation. There are two options for this: using the command-line tool or using AWS Lambda functions to create the search index.
Another potential issue is setting up a web app and maintaining an object storage in your local network or on the internet. Unlike the desktop application, which can be installed with a double click, setting up the web app can be challenging for someone without expertise in web servers or cloud app hosting. Fortunately, services like Wasabi make maintaining an object storage in the cloud easy and affordable (starting at around $5 USD/EUR for 1TB per month).
Conclusion
TagSpaces has revolutionized the way users manage and interact with their files by supporting file-based apps. By harnessing the power of plain text files and offering a rich set of features, TagSpaces empowers users with data ownership, offline accessibility, and seamless file management. Whether you're organizing files, taking notes, managing projects, or exploring multimedia content, the app provides a versatile and user-friendly platform. Embrace the potential of file-based apps with TagSpaces and experience a new level of productivity and control over your digital assets.