Skip to content

Commit 04149f6

Browse files
committed
docs: add feature roadmap
1 parent d3c3e63 commit 04149f6

File tree

2 files changed

+283
-15
lines changed

2 files changed

+283
-15
lines changed

docs/index.md

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,10 @@ title: Home
55
# Welcome to the TagStudio Documentation!
66

77
!!! warning
8-
This documentation is still a work in progress, and is intended to aide with deconstructing and understanding of the core mechanics of TagStudio and how it operates.
8+
This documentation is still a work in progress, and is intended to aide with deconstructing and understanding of the core mechanics of TagStudio and how it operates.
99

1010
![TagStudio Alpha](assets/github_header.png)
1111

12-
1312
TagStudio is a photo & file organization application with an underlying system that focuses on giving freedom and flexibility to the user. No proprietary programs or formats, no sea of sidecar files, and no complete upheaval of your filesystem structure.
1413

1514
<figure markdown="span">
@@ -19,11 +18,11 @@ TagStudio is a photo & file organization application with an underlying system t
1918

2019
## Goals
2120

22-
- To achieve a portable, privacy-oriented, open, extensible, and feature-rich system of organizing and rediscovering files.
23-
- To provide powerful methods for organization, notably the concept of tag composition, or “taggable tags”.
24-
- To create an implementation of such a system that is resilient against a user’s actions outside the program (modifying, moving, or renaming files) while also not burdening the user with mandatory sidecar files or otherwise requiring them to change their existing file structures and workflows.
25-
- To support a wide range of users spanning across different platforms, multi-user setups, and those with large (several terabyte) libraries.
26-
- To make the darn thing look like nice, too. It’s 2024, not 1994.
21+
- To achieve a portable, privacy-oriented, open, extensible, and feature-rich system of organizing and rediscovering files.
22+
- To provide powerful methods for organization, notably the concept of tag composition, or “taggable tags”.
23+
- To create an implementation of such a system that is resilient against a user’s actions outside the program (modifying, moving, or renaming files) while also not burdening the user with mandatory sidecar files or otherwise requiring them to change their existing file structures and workflows.
24+
- To support a wide range of users spanning across different platforms, multi-user setups, and those with large (several terabyte) libraries.
25+
- To make the darn thing look like nice, too. It’s 2024, not 1994.
2726

2827
## Priorities
2928

@@ -34,14 +33,18 @@ TagStudio is a photo & file organization application with an underlying system t
3433

3534
## Current Features
3635

37-
- Create libraries/vaults centered around a system directory. Libraries contain a series of entries: the representations of your files combined with metadata fields. Each entry represents a file in your library’s directory, and is linked to its location.
38-
- Add metadata to your library entries, including:
39-
- Name, Author, Artist (Single-Line Text Fields)
40-
- Description, Notes (Multiline Text Fields)
41-
- Tags, Meta Tags, Content Tags (Tag Boxes)
42-
- Create rich tags composed of a name, a list of aliases, and a list of “subtags” - being tags in which these tags inherit values from.
43-
- Search for entries based on tags, ~~metadata~~ (TBA), or filenames/filetypes (using `filename: <query>`)
44-
- Special search conditions for entries that are: `untagged`/`no tags` and `empty`/`no fields`.
36+
- Create libraries/vaults centered around a system directory. Libraries contain a series of entries: the representations of your files combined with metadata fields. Each entry represents a file in your library’s directory, and is linked to its location.
37+
- Add metadata to your library entries, including:
38+
- Name, Author, Artist (Single-Line Text Fields)
39+
- Description, Notes (Multiline Text Fields)
40+
- Tags, Meta Tags, Content Tags (Tag Boxes)
41+
- Create rich tags composed of a name, a list of aliases, and a list of “subtags” - being tags in which these tags inherit values from.
42+
- Search for entries based on tags, ~~metadata~~ (TBA), or filenames/filetypes (using `filename: <query>`)
43+
- Special search conditions for entries that are: `untagged`/`no tags` and `empty`/`no fields`.
44+
45+
## Feature Roadmap
46+
47+
The [feature roadmap](updates/roadmap.md) lists all of the planned core features for TagStudio to be considered "feature complete" along with estimated release milestones. The development and testing of these features takes priority over all other requested or submitted features unless they are later added to this roadmap. This helps ensure that TagStudio eventually sees a full release and becomes more usable by more people more quickly.
4548

4649
## Important Updates
4750

docs/updates/roadmap.md

Lines changed: 265 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,265 @@
1+
# TagStudio Roadmap
2+
3+
This checklist details the current and remaining features required at a minimum for TagStudio to be considered “Feature Complete”. This list is _not_ a definitive list for additional feature requests and PRs as they come in, but rather an outline of my personal core feature set intended for TagStudio.
4+
5+
## Priorities
6+
7+
Features are broken up into the following priority levels, with nested priorities referencing their relative priority for the overall feature (i.e. A [LOW] priority feature can have a [HIGH] priority element but it otherwise still a [LOW] priority item overall):
8+
9+
- HIGH - Core feature
10+
- MEDIUM - Important but not necessary
11+
- LOW - Just nice to have
12+
13+
## Core Feature List
14+
15+
- [ ] Tags [HIGH]
16+
- [x] ID-based, not string based [HIGH]
17+
- [x] Tag name [HIGH]
18+
- [x] Tag alias list, aka alternate names [HIGH]
19+
- [x] Tag shorthand (specific short alias for displaying) [HIGH]
20+
- [x] Parent/Inheritance subtags [HIGH]
21+
- [ ] Composition/HAS subtags [HIGH]
22+
- [ ] Deleting Tags [HIGH]
23+
- [ ] Merging Tags [HIGH]
24+
- [ ] Tag Icons [HIGH]
25+
- [ ] Small Icons [HIGH]
26+
- [ ] Large Icons for Profiles [MEDIUM]
27+
- [ ] Built-in Icon Packs (i.e. Boxicons) [HIGH]
28+
- [ ] User Defined Icons [HIGH]
29+
- [ ] Multiple Languages for Tag Strings [MEDIUM]
30+
- [ ] User-defined tag colors [HIGH]
31+
- [ ] ID based, not string or hex [HIGH]
32+
- [ ] Color name [HIGH]
33+
- [ ] Color value (hex) [HIGH]
34+
- [ ] Existing colors are now a set of base colors [HIGH]
35+
- [ ] Editable [MEDIUM]
36+
- [ ] Non-removable [HIGH]
37+
- [ ] [Tag Categories](../library/tag_categories.md) [HIGH]
38+
- [ ] Property available for tags that allow the tag and any inheriting from it to be displayed separately in the preview panel under a title [HIGH]
39+
- [ ] Title is tag name [HIGH]
40+
- [ ] Title has tag color [MEDIUM]
41+
- [ ] Tag marked as category does not display as a tag itself [HIGH]
42+
- [ ] [Tag Overrides](../library/tag_overrides.md) [MEDIUM]
43+
- [ ] Per-file overrides of subtags [HIGH]
44+
- [ ] Tag Packs [MEDIUM]
45+
- [ ] Human-readable (i.e. JSON) files containing tag data [HIGH]
46+
- [ ] Importable [HIGH]
47+
- [ ] Exportable [HIGH]
48+
- [ ] Conflict resolution [HIGH]
49+
- [ ] Color Packs [MEDIUM]
50+
- [ ] Human-readable (i.e. JSON) files containing tag data [HIGH]
51+
- [ ] Importable [HIGH]
52+
- [ ] Exportable [HIGH]
53+
- [ ] Exportable Library Data [HIGH]
54+
- [ ] Standard notation format (i.e. JSON) contacting all library data [HIGH]
55+
- [ ] [Macros](../utilities/macro.md) [HIGH]
56+
- [ ] Sharable Macros [MEDIUM]
57+
- [ ] Standard notation format (i.e. JSON) contacting macro instructions [HIGH]
58+
- [ ] Exportable [HIGH]
59+
- [ ] Importable [HIGH]
60+
- [ ] Triggers [HIGH]
61+
- [ ] On new file [HIGH]
62+
- [ ] On library refresh [HIGH]
63+
- [...]
64+
- [ ] Actions [HIGH]
65+
- [ ] Add tag(s) [HIGH]
66+
- [ ] Add field(s) [HIGH]
67+
- [ ] Set field content [HIGH]
68+
- [ ] [...]
69+
- [ ] Settings Menu [HIGH]
70+
- [ ] Application Settings [HIGH]
71+
- [ ] Stored in system user folder/designated folder [HIGH]
72+
- [ ] Library Settings [HIGH]
73+
- [ ] Stored in `.TagStudio` folder [HIGH]
74+
- [ ] Multiple Root Directories per Library [HIGH]
75+
- [ ] [Entry groups](../library/entry_groups.md) [HIGH]
76+
- [ ] Groups for files/entries where the same entry can be in multiple groups [HIGH]
77+
- [ ] Ability to number entries within group [HIGH]
78+
- [ ] Ability to set sorting method for group [HIGH]
79+
- [ ] Ability to set custom thumbnail for group [HIGH]
80+
- [ ] Group is treated as entry with tags and metadata [HIGH]
81+
- [ ] Nested groups [MEDIUM]
82+
- [ ] Fields [HIGH]
83+
- [x] Text Boxes [HIGH]
84+
- [x] Text Lines [HIGH]
85+
- [ ] Dates [HIGH]
86+
- [ ] GPS Location [LOW]
87+
- [ ] Custom field names [HIGH]
88+
- [ ] Search engine [HIGH]
89+
- [ ] Boolean operators [HIGH]
90+
- [ ] Tag objects + autocomplete [HIGH]
91+
- [ ] Filename search [HIGH]
92+
- [ ] Filetype search [HIGH]
93+
- [ ] Field content search [HIGH]
94+
- [ ] HAS operator for composition tags [HIGH]
95+
- [ ] OCR search [LOW]
96+
- [ ] Sortable results [HIGH]
97+
- [ ] Sort by relevance [HIGH]
98+
- [ ] Sort by date created [HIGH]
99+
- [ ] Sort by date modified [HIGH]
100+
- [ ] Sort by date taken (photos) [MEDIUM]
101+
- [ ] Sort by file size [HIGH]
102+
- [ ] Sort by file dimension (images/video) [LOW]
103+
- [ ] Automatic Entry Relinking [HIGH]
104+
- [ ] Detect Renames [HIGH]
105+
- [ ] Detect Moves [HIGH]
106+
- [ ] Detect Deletions [HIGH]
107+
- [ ] Image Collages [LOW]
108+
- [ ] UI [HIGH]
109+
- [ ] Tagging Panel [HIGH]
110+
- [ ] Top Tags [HIGH]
111+
- [ ] Recent Tags [HIGH]
112+
- [ ] Tag Search [HIGH]
113+
- [ ] Pinned Tags [HIGH]
114+
- [ ] Configurable Thumbnails [MEDIUM]
115+
- [ ] Toggle File Extension Label [MEDIUM]
116+
- [ ] Toggle Duration Label [MEDIUM]
117+
- [ ] Custom Tag Badges [LOW]
118+
- [ ] Thumbnails [HIGH]
119+
- [ ] File Duration Label [HIGH]
120+
- [ ] 3D Model Previews [LOW]
121+
- [ ] File Preview Panel [HIGH]
122+
- [ ] Video Playback [HIGH]
123+
- [x] Play/Pause [HIGH]
124+
- [x] Loop [HIGH]
125+
- [x] Toggle Autoplay [MEDIUM]
126+
- [ ] Volume Control [HIGH]
127+
- [x] Toggle Mute [HIGH]
128+
- [ ] Timeline scrubber [HIGH]
129+
- [ ] Fullscreen [MEDIUM]
130+
- [ ] Audio Playback [HIGH]
131+
- [ ] Play/Pause [HIGH]
132+
- [ ] Loop [HIGH]
133+
- [ ] Toggle Autoplay [MEDIUM]
134+
- [ ] Volume Control [HIGH]
135+
- [ ] Toggle Mute [HIGH]
136+
- [x] Timeline scrubber [HIGH]
137+
- [ ] Fullscreen [MEDIUM]
138+
- [ ] Optimizations [HIGH]
139+
- [ ] Thumbnail caching [HIGH]
140+
- [ ] File property indexes [HIGH]
141+
142+
## Version Milestones
143+
144+
These version milestones are rough estimations for when the previous core features will be added. For a more definitive idea for when features are coming, please reference the current GitHub [milestones](https://github.com/TagStudioDev/TagStudio/milestones).
145+
146+
### 9.5
147+
148+
- [ ] SQL backend [HIGH]
149+
- [ ] Multiple Root Directories per Library [HIGH]
150+
- [ ] Tags [HIGH]
151+
- [ ] Deleting Tags [HIGH]
152+
- [ ] Merging Tags [HIGH]
153+
- [ ] User-defined tag colors [HIGH]
154+
- [ ] ID based, not string or hex [HIGH]
155+
- [ ] Color name [HIGH]
156+
- [ ] Color value (hex) [HIGH]
157+
- [ ] Existing colors are now a set of base colors [HIGH]
158+
- [ ] Editable [MEDIUM]
159+
- [ ] Non-removable [HIGH]
160+
- [ ] Search engine [HIGH]
161+
- [ ] Boolean operators [HIGH]
162+
- [ ] Tag objects + autocomplete [HIGH]
163+
- [ ] Filename search [HIGH]
164+
- [ ] Filetype search [HIGH]
165+
- [ ] Field content search [HIGH]
166+
- [ ] Sortable results [HIGH]
167+
- [ ] Sort by relevance [HIGH]
168+
- [ ] Sort by date created [HIGH]
169+
- [ ] Sort by date modified [HIGH]
170+
- [ ] Sort by date taken (photos) [MEDIUM]
171+
- [ ] Sort by file size [HIGH]
172+
- [ ] Sort by file dimension (images/video) [LOW]
173+
- [ ] Settings Menu [HIGH]
174+
- [ ] Application Settings [HIGH]
175+
- [ ] Stored in system user folder/designated folder [HIGH]
176+
- [ ] Library Settings [HIGH]
177+
- [ ] Stored in `.TagStudio` folder [HIGH]
178+
- [ ] Optimizations [HIGH]
179+
- [ ] Thumbnail caching [HIGH]
180+
181+
### 9.6
182+
183+
- [ ] Tags [HIGH]
184+
- [ ] Composition/HAS subtags [HIGH]
185+
- [ ] Tag Icons [HIGH]
186+
- [ ] Small Icons [HIGH]
187+
- [ ] Large Icons for Profiles [MEDIUM]
188+
- [ ] Built-in Icon Packs (i.e. Boxicons) [HIGH]
189+
- [ ] User Defined Icons [HIGH]
190+
- [ ] Multiple Languages for Tag Strings [MEDIUM]
191+
- [ ] [Tag Categories](../library/tag_categories.md) [HIGH]
192+
- [ ] Property available for tags that allow the tag and any inheriting from it to be displayed separately in the preview panel under a title [HIGH]
193+
- [ ] Title is tag name [HIGH]
194+
- [ ] Title has tag color [MEDIUM]
195+
- [ ] Tag marked as category does not display as a tag itself [HIGH]
196+
- [ ] [Tag Overrides](../library/tag_overrides.md) [MEDIUM]
197+
- [ ] Per-file overrides of subtags [HIGH]
198+
- [ ] Fields [HIGH]
199+
- [ ] Dates [HIGH]
200+
- [ ] Custom field names [HIGH]
201+
202+
### 9.7
203+
204+
- [ ] Configurable Thumbnails [MEDIUM]
205+
- [ ] Toggle File Extension Label [MEDIUM]
206+
- [ ] Toggle Duration Label [MEDIUM]
207+
- [ ] Custom Tag Badges [LOW]
208+
- [ ] Thumbnails [HIGH]
209+
- [ ] File Duration Label [HIGH]
210+
- [ ] [Entry groups](../library/entry_groups.md) [HIGH]
211+
- [ ] Groups for files/entries where the same entry can be in multiple groups [HIGH]
212+
- [ ] Ability to number entries within group [HIGH]
213+
- [ ] Ability to set sorting method for group [HIGH]
214+
- [ ] Ability to set custom thumbnail for group [HIGH]
215+
- [ ] Group is treated as entry with tags and metadata [HIGH]
216+
- [ ] Nested groups [MEDIUM]
217+
- [ ] Tagging Panel [HIGH]
218+
- [ ] Top Tags [HIGH]
219+
- [ ] Recent Tags [HIGH]
220+
- [ ] Tag Search [HIGH]
221+
- [ ] Pinned Tags [HIGH]
222+
223+
### 9.8 (Possible Beta)
224+
225+
- [ ] Automatic Entry Relinking [HIGH]
226+
- [ ] Detect Renames [HIGH]
227+
- [ ] Detect Moves [HIGH]
228+
- [ ] Detect Deletions [HIGH]
229+
- [ ] [Macros](../utilities/macro.md) [HIGH]
230+
- [ ] Sharable Macros [MEDIUM]
231+
- [ ] Standard notation format (i.e. JSON) contacting macro instructions [HIGH]
232+
- [ ] Exportable [HIGH]
233+
- [ ] Importable [HIGH]
234+
- [ ] Triggers [HIGH]
235+
- [ ] On new file [HIGH]
236+
- [ ] On library refresh [HIGH]
237+
- [...]
238+
- [ ] Actions [HIGH]
239+
- [ ] Add tag(s) [HIGH]
240+
- [ ] Add field(s) [HIGH]
241+
- [ ] Set field content [HIGH]
242+
- [ ] [...]
243+
244+
### 9.9
245+
246+
- [ ] Tag Packs [MEDIUM]
247+
- [ ] Human-readable (i.e. JSON) files containing tag data [HIGH]
248+
- [ ] Importable [HIGH]
249+
- [ ] Exportable [HIGH]
250+
- [ ] Conflict resolution [HIGH]
251+
- [ ] Color Packs [MEDIUM]
252+
- [ ] Human-readable (i.e. JSON) files containing tag data [HIGH]
253+
- [ ] Importable [HIGH]
254+
- [ ] Exportable [HIGH]
255+
- [ ] Exportable Library Data [HIGH]
256+
- [ ] Standard notation format (i.e. JSON) contacting all library data [HIGH]
257+
258+
### 10.0
259+
260+
- [ ] All remaining [HIGH] and optional [MEDIUM] features
261+
262+
### Post 10.0
263+
264+
- [ ] Core Library/API
265+
- [ ] Plugin Support

0 commit comments

Comments
 (0)