These past few days as I've been going to work, under the blazing sun, I suddenly caught sight of a bright purple light. Oh, it turns out to be the purple crape myrtle, which has been blooming for who knows how long, signaling another summer is approaching. I recall the day when I boldly declared to make a note-taking app for this reason and that reason, it was still a bit chilly then, but in a blink of an eye, we're about to step into the extreme heat of early summer.
There hasn't been any movement in 2 weeks. Although I haven't written a new post, I still pay a lot of attention to the readers of 2coffee.dev, and it seems like everyone is also giving me their attention in return. The proof is the number of views on the Home page ranks 3rd in the list of most viewed pages in the past 2 weeks, while previously, the views of other pages always surpassed. Well, that's a number worth noting!
As usual, I will review the difficulties, challenges, what I've accomplished, and the upcoming plans.
But before we continue, I'm very pleased to announce that the official name of Notas will be OpenNotas (ON), meaning an "open" note-taking app, to be released at 14:01, on June 2, 2024, and provided as OpenSource on Github. In addition, I've set up a new role, that is the Hunter of the Product Hunt (PH) platform at Coming soon: OpenNotas | Product Hunt.
For those who don't know, PH is a playground for individuals who make products, also known as Indie Hackers - a group of people who are passionate about making products to solve problems for themselves or for many others. Being a playground, there will be winners and losers, winners get known by many, and losers learn a lot for next time.
This is getting long, let's get to the main issue!
(Oh, I forgot, OpenNotas will be released at the official address https://opennotas.io).
I must say that in the past 2 weeks, although I had more time to work with ON (with 5 days off, the whole country is off but somewhere there are still many people diligently in front of the computer :D) so there were more problems happening to me.
I have integrated end-to-end encryption (E2EE) into ON. As mentioned in previous posts, that will add a layer of data encryption before it goes out to the sync server. That means all notes that want to sync will be encrypted, and vice versa, encrypted data from the server flowing back, must be decrypted to go into the app.
The encryption flow is quite simple, users before wanting to use the sync function need to create an encryption key, this key has the task of encrypting/decrypting data based on the AES algorithm, provided by Web Crypto API. The key is only issued once. If you want to use it on another machine, you need to provide the sync configuration again, as well as the key used to encrypt the previous data to continue using it.
But because of my subjectivity, during development, I experimented right on my own data without backing up the key so it was all encrypted, couldn't be used anymore, so consider it a loss. But luckily, that information wasn't too important, just lost time and effort sitting down to remember and rewrite.
In addition, I also spent a lot of time optimizing the PWA app. ON will be released as a PWA so theoretically it can be used even when the user is not connected to the Internet. But in reality, when turning off the network and opening the app, a "You are offline" notification screen appears blocking the access flow into ON, making me quite at a loss. So does PWA still need to have a network to use? Or did I configure it wrong or miss something?
ON is built based on Nuxt.js, there is a library that supports PWA for Nuxt is vite-pwa-org.netlify.app. But configuring it is a bit complicated and in fact, I have encountered quite a few problems in configuring this library from the first days of use. Many new concepts are provided, there are many instructions to start, so I can't know where I am and what I need to do for the app to work without the network. Where should I start?
Fortunately, after a few days of research, I decided to remove the library and create the Manifest files myself, as well as JavaScript code snippets to support the app to work without the network. Basically, you just need to register a JavaScript file as a Service Worker, which contains commands to guide the app to cache data from the first load using Cache. In subsequent uses, it will pull data from the cache if there is no Internet connection. So now ON can be used in offline cases.
One of the other issues that gave me a headache was the note editor. Yes, it's the editors that I'm typing these diary lines into. It's harder to control than I thought and there are many errors that still occasionally appear. Although small, it does not provide a very pleasant experience. The time to fix errors is also very long because these are all open-source libraries with a relatively large amount of code, you can't understand all of it in a few days. If I can't fix it, I have to go down the alley to temporarily remedy it.
From now until the beginning of June, there are only 3-4 weeks left, time is pressing so I need to quickly complete OpenNotas to keep up with the schedule, so I probably won't be able to write a weekly diary anymore, instead, every two weeks will have more stories to tell.
The features will not be developed any further, everything that OP has will go into testing and gradually become stable to achieve the purpose of use and not cause errors for users. I will continue to use OP more frequently, find errors, and fix them.
In addition, I will also find more sources or community channels to do publicity work, introduce my product to everyone. So that OpenNotas is born not only to solve the problem for each individual. I hope many people will know and use it as a main note-taking app.
Finally, I have scheduled a launch on the Product Hunt page, readers can also help by introducing, or give me 1 Follow at Coming soon: OpenNotas | Product Hunt. Once again, thank you all for taking the time to follow me and OpenNotas in the past time. I hope in the next period, we will have more things to share with each other!
Hello, my name is Hoai - a developer who tells stories through writing ✍️ and creating products 🚀. With many years of programming experience, I have contributed to various products that bring value to users at my workplace as well as to myself. My hobbies include reading, writing, and researching... I created this blog with the mission of delivering quality articles to the readers of 2coffee.dev.Follow me through these channels LinkedIn, Facebook, Instagram, Telegram.
Comments (1)