Releases: DeFUCC/project-app
Big upgrade
Almost a year passed from last release and there's some progress done around the project. I'm more experienced with vue 3 and vite building and also there are crucial tools available. Purge Icons are replaced with unocss and stylus will be gradually replaced with windi css. Unplugin vite plugins are up to date and the whole project is ready for a new dive into development. Let's see.
Aliases in imported scripts amke components as flexible as it's needed.
With @rollup/plugin-alias the code becomes like a fluid – it easily comes to any place in the file structure. I've assigned store@path
and use@path
vie regexp and so any file from the corresponding directory will be imported in any component or routed besides its nesting level.
It makes the components very portable and flexible. So it'll make the development and refactoring even faster.
New stage! PNPM, latest GUN and no Typescript
With the help of Evan You and Gun community I could finally make latest gun version work as a npm dependency. So there's no more need in adding a bunch of gun files via <script> tag in the html. But then typescript became aware of what is gun
in my code and as the @types for gun are obsolete it could cause a bunch of //@ts-ignore in the code. I've analyzed my actual usage of typescript in the project and found that it eliminated much less confusion than it created! With the power of Mark Nadal's anger at all the bundler and builder that he expressed in the Gun chat, I just got rid of all those type definitions in the code and got all the project back to plain JS. There was not too much to lose, but now the code is much cleaner for those who are not deep in TS. Including me!
Also I've tried PNPM in other projects and it looks more robust. Switching is very easy and it doesn't affect the repo code at all.
Looking forward to try the SEA.certify feature of GUN, that may become a game changer in my data structure.
Organisations for all!
Previously we had an appPath
hard coded to the app and all the items were situated in the graph under this public node. Now it became a list of approved organizations with customizable schema. So there may be many very different orgs in one app. We can explicitly list them in the config, but there's another very powerful option.
Anyone can enter the title of a custom org and get to it's graph. The main thing is that they are situated at the root level of the gun graph so they're not listable and so your org may stay secret! If you choose a rather long string to access it it may never be found by anyone except those you send the link to. Yes, the data will propagate to the superpeers, but it won't get to users not aware of the path. Now it's just an input field, but may be it's a beginning of "spaces" made the right way.
Plus there are some UI improvements that make browsing the feeds very convenient. Can't stand smiling when experiencing the app work so smooth! Enjoy!
Now you can link existing items to your items
Take your design and search for best suitable projects to include to it. Even those of other users! And also the new font – Commissioner is introduced in this version.
So now it's safe to introduce unlink feature – you can delete a card from your item list and then find it in the all items of that type list. So you can undo the changes. For now the UI is not ideal, but it works and makes room for many new use cases. Like it automatically solves the team issue – you just link others' projects to your design and they immediately participate while still being 100% owners of their projects. items-list.vue
became rather huge, but it's easier to comprehend the processes. Once they settle – will take the login out to the use folder.
Good browsing and editing capabilities. Ready to grow
Filtering by tags is a very powerful feature alone. But with better UI and more reliable routing it's even better! Users show all their items list.
MD docs are removed from the main app and will be located at a separate location (it's basically discourse, not feeds). Getting ready to add content-addressable gift system.
Explore the graph with redesigned router-based navigation
The scroll-snap-type
pages graph browsing looks nice, but has many drawbacks. It's convenient only with touchpad on desktop, but becomes a mess on mobile and with the mouse wheel. So I fully rebuilt the browsing with straight vue-router navigation, powered by voie
vie plugin. So no need to maintain a complex routes array - it's automatically built from the folder structure. Very nice!
Next steps are to make some Customer Development with some friends to find out their fresh view on the UI and functionality of the app. Next – gifts and presents!
MVP ready to be shown and modified to the needs of users
First phase of app architecture development is finished. Now we have a functioning prototype with some viable data in it. It can be used for the purpose and so real feedback may be gathered. The UI is not obvious for now and so a series of deep involved interviews may help make the UI better.
The concept of sticky tabs on one page is considered a desktop only option as vue-router with the keep-alive tag works much better on mobile.
Installable PWA is here!
After all the updating to vite 2 and all other deps with npx taze major
the plugin vite-plugin-pwa
finally works as expected! So It's creating the service worker and makes the app installable both on desktop and mobile. So it may work fullscreeen and offline - no need for native apps!
Also the item ids are to be implemented after the next gun db flush, so an item can check if it's present in public lists of it's type. And so users will be able to create their private items and then publish them open. So it opposes the ability to null the public link to the private item. I don't know if it's OK that anyone can remove an item from the list. But once the app gets item teams even those public lists will become private to the main user. Need to think more.
Stabilized workflow
With all those new optimizations to the dev cycle new space for rapid development is open. Easily refactor components, extract use functions and more! So it's time to clean up all that tech debt in the UI and core functions also. More refined GUN DB operations are coming!