Beta Feedback
Some days ago, I deployed a development build of the next version to focus.noeldemartin.com. Please, give it a try!
As I say in the page, though, this is a beta. So beware of using it in production. Here's the parts I consider mostly done:
- Features: It's very unlikely that I add any more features at this point, but if you think something super essential is missing, let me know.
- UI: I still have to tweak a couple of things, but overall this is what the app will look like.
- Syncing/Log in experience: I still have to improve it, but if something is broken please let me know.
- Data schema: The current schema is not set in stone, but if I don't find a compelling reason to change it; this is what it'll be upon release.
And here's some things that I already have in the roadmap, and will tackle before the release:
- Data migration: Users of the legacy version of the app should be able to start using the new one with the same data. This will probably involve a migration to the new format, rather than supporting both schemas.
- A11y review: I already kept accessibility in mind during development, but I have to do a final pass before releasing.
- Animations: I know some animations are botched. Even though the UI is mostly done, I still have to clean up some of the animations.
- Container choice: In the same way that I do with Umai, I intend to allow advanced users to specify which container they want to use for storage. Something that won't change, however, is that a container will be used for each workspace, and each child container will be treated as a list in the UI. I won't support nested nor sibling containers for lists.
- Performance: I haven't tried using the app with a lot of data yet. But I myself have many tasks in the legacy version, so I'll make sure to stress-test it before releasing.
And that's it! If you have some feedback, please leave me know in this issue or contact me in private. If you only care about the final release, you can subscribe to this issue and I'll close it when the beta is over.
Thanks!
The new UI is
As for the data model, I must say I was slightly surprised to see a new main Container created in my Pod, which seems like a fairly generic name for a fairly specific task. I imagine if all apps are going to put all actions I do in them in there, they're going to slow to a crawl. But in practice, with Solid's current popularity, that won't be a problem :sweat_smile:
Since you mentioned a11y review, I also noticed that there's no close button on the settings/account dialog, and you can't close it with Esc.
But nice job!
Hey @Vinnl, thanks for your feedback, as always :D.
As for the data model, I must say I was slightly surprised to see a new main Container created in my Pod, which seems like a fairly generic name for a fairly specific task.
Yeah, this is part of what I want to improve when I say "Container choice". Besides letting people choose, I also want to think about better defaults. Initially, I thought it'd be fine to have containers in the root because I don't think people is going to have many workspaces (though who knows). But now, I'm leaning more towards putting everything inside /tasks/ by default.
The real problem, though, is how to call the default workspace :sweat_smile:. The idea is that you would have one workspace for each part of your life (Work, Household, Hobbies, etc.), and in the previous version of the app I explicitly ask users to name their workspaces. But here, I wanted to remove friction so the initial workspace is created automatically (you can rename it later). And the name I'm using for this default workspace is "Main", which I probably took from git's default branch name nowadays. But I'm not super happy with that choice :/. So I'm all ears for suggestions, because so far I haven't been able to come up with something better. I guess I'll also do some research to see what other apps do.
Since you mentioned a11y review, I also noticed that there's no close button on the settings/account dialog, and you can't close it with Esc.
Thanks for mentioning that. I'm actually using Headless UI, so Esc should be closing the modals. But I guess I broke it somewhere, I'll look into it.
In my other apps, I have close buttons in modals. But here, I wanted to remove as much clutter from the UI as possible, in line with the "focus" theme. I even pondered having a "focus mode", but in the end I think the default UI is pretty minimal already :D. Though maybe I overdid it a bit 😅. I'll reconsider adding the close buttons, even after fixing the Esc interaction.
I think main is fine, if it's clear that it's scoped to tasks - so /tasks/main/ (and /tasks/work/, /tasks/household/, etc). would definitely be A-OK!
I'm finding that it occasionally duplicates all my lists (without duplicating their contents) when synchronizing.
Edit: For one workspace, it's now duplicating the contents of the lists without duplicating the lists themselves.
I'm finding that it occasionally duplicates all my lists (without duplicating their contents) when synchronizing.
Thanks for reporting this, I've also seen it myself sometimes; and others have mentioned that it also happens in Umai 😱.
The problem, though, is that I haven't been able to reproduce it in my development environment :(. I suspect it has something to do with race conditions. I'll definitely look into it more in depth before the final release, but if anyone finds a way to reliable reproduce this, please let me know.
I have managed to reproduce the sync duplication in Focus with a fresh pod on localhost and only using one browser:
- Create a List
- Add a task to the list
- Rename the list
The renaming somehow leads to all tasks in the list to be duplicated. It just adds the same task file with an additional suffix to the container (similar I have seen with recipes in Umai)
Network wise it GETs the container, then GETs the task that is in there, and then it tries to GET the task file with the suffix for some reason, fails with 404 and then makes a PATCH to create it.
I exported the HAR file (zipped for github upload), you can import it to you browsers network tools for further analysis:
This is reproducably duplicating tasks, whenever I rename the list.
Notably the renaming does not change the name of the list in my pod, it just duplicates the tasks
Just noticed on my test pod it also started to duplicate type index for some reason (never had that in my real pod luckily)
Here is another network recording that lead to this:
For some reason the app seems to decide it needs to create another type index, although the original type index could clearly be fetched.
It just randomly adds a new type index to the profile and then creates the file
INSERT DATA {
<http://localhost:3000/focus/profile/card#me> <http://www.w3.org/ns/solid/terms#privateTypeIndex> <http://localhost:3000/focus/settings/privateTypeIndex-ee89884d-bf78-4965-a130-8d26c1b67d7b> .
}
That's awesome @angelo-v, thanks a lot 🙇. I was able to reproduce this in a test, so I'm sure I'll be able to pinpoint the issue now :D. I still haven't been able to reproduce the type index duplication, but I'm sure it must be something similar.
I still don't know why this is happening, but that pattern of creating a new document adding a suffix is actually a Soukai mechanism to avoid overriding existing documents. The thing is that this should only happen for creating new documents, not for updates. So there must be something wrong in some part of the code that is trying to execute an update as if it were a new document.
Nice app Nice display on phone except for the CSS login page, which is not an app issue --> PIVOT should propose a better page on phone There are sometimes difficulty just after login to return to focus.
I'm using on a day to day basis an app called Out of milk on Android.
They have also other list types like shopping list and pantry list.
That makes their app very efficient for day to day use.
Hey, thanks everyone for the feedback thus far!
I have good news, I'm almost finished with the app 😁. In fact, I only need to translate the copy and do some chores before the release. But otherwise, I don't think I'll do any big changes. If you want to take another look before the final release, now's the time. I've been using it in production for months, which helped me find a bunch of bugs 😅. But it seems stable now, so I'll go ahead with the release very soon!
Great to hear that, congratulations 🎉
What does a release mean to you, since the app is available for anybody to use? Just an official announcement and drop of the beta label?
My biggest issue is the duplication of data that occurs sometimes, did you manage to fix this? I have found my way to live with it in Umai, but with tasks it's much more annoying just because I use a lot more tasks than recipes. It would be a blocker for me using this in production.
What does a release mean to you, since the app is available for anybody to use? Just an official announcement and drop of the beta label?
It means that I'll make sure not to introduce any breaking changes, or at least implement something to upgrade the storage. Before the release, I changed a couple of things in the data model, and if you were using a previous version of the beta, the app wouldn't display the previous data.
It also means I consider the app "done", although of course I can add new features later on, and there will be bugs, etc.
Basically, I wouldn't recommend anyone using it in production during beta, but after the release I do.
My biggest issue is the duplication of data that occurs sometimes, did you manage to fix this? I have found my way to live with it in Umai, but with tasks it's much more annoying just because I use a lot more tasks than recipes. It would be a blocker for me using this in production.
The problem with this issue is that there isn't a single reason for it to happen, so it's very difficult to track down. I have fixed the reproduction you shared, and I've also come across it in other situations that I've fixed. But I cannot guarantee that it doesn't happen anymore. What happens is that sometimes the app thinks that a document it's trying to create from scratch already exists, so it ends up creating another document. The definitive workaround for that would be to overwrite the previous document, but I don't want to do that in case there really was another document, to avoid overriding existing data that my app is not dealing with.
All I can say is that if I can reproduce it, I'll fix it. But I'm not sure it won't continue to happen. Sorry :(.
Ok, no problem Noel, bugs can always happen. Good to hear that you fixed the reproducable parts of it. I will continue to use it and whenever I get a problem I will report it and try to find out how it can be reproduced
Well, it is done, the new version of the app is live at focus.noeldemartin.com!
Thanks again everyone for providing feedback, it was very useful :D. If you used the app during the beta, I suggest that you wipe the entire local storage in the browser to start from a clean slate. This shouldn't be necessary for normal updates, but I did make some breaking changes during the beta. Also, you'll get to see the new landing page :).
I'm closing this issue now, if you find some issue or ideas for improvements, feel free to open a new one.