Diary of Working on Notas - Ready for Launch!

Diary of Working on Notas - Ready for Launch!

Daily short news for you
  • For over a week now, I haven't posted anything, not because I have nothing to write about, but because I'm looking for ways to distribute more valuable content in this rapidly exploding AI era.

    As I shared earlier this year, the number of visitors to my blog is gradually declining. When I looked at the statistics, the number of users in the first six months of 2025 has dropped by 30% compared to the same period last year, and by 15% compared to the last six months of 2024. This indicates a reality that users are gradually leaving. What is the reason for this?

    I think the biggest reason is that user habits have changed. They primarily discover the blog through search engines, with Google being the largest. Almost half of the users return to the blog without going through the search step. This is a positive signal, but it's still not enough to increase the number of new users. Not to mention that now, Google has launched the AI Search Labs feature, which means AI displays summarized content when users search, further reducing the likelihood of users accessing the website. Interestingly, when Search Labs was introduced, English articles have taken over the rankings for the most accessed content.

    My articles are usually very long, sometimes reaching up to 2000 words. Writing such an article takes a lot of time. It's normal for many articles to go unread. I know and accept this because not everyone encounters the issues being discussed. For me, writing is a way to cultivate patience and thoughtfulness. Being able to help someone through my writing is a wonderful thing.

    Therefore, I am thinking of focusing on shorter and medium-length content to be able to write more. Long content will only be used when I want to write in detail or delve deeply into a particular topic. So, I am looking for ways to redesign the blog. Everyone, please stay tuned! 😄

    » Read more
  • CloudFlare has introduced the pay per crawl feature to charge for each time AI "crawls" data from your website. What does that mean 🤔?

    The purpose of SEO is to help search engines see the website. When users search for relevant content, your website appears in the search results. This is almost a win-win situation where Google helps more people discover your site, and in return, Google gets more users.

    Now, the game with AI Agents is different. AI Agents have to actively seek out information sources and conveniently "crawl" your data, then mix it up or do something with it that we can't even know. So this is almost a game that benefits only one side 🤔!?

    CloudFlare's move is to make AI Agents pay for each time they retrieve data from your website. If they don’t pay, then I won’t let them read my data. Something like that. Let’s wait a bit longer and see 🤓.

    » Read more
  • Continuing to update on the lawsuit between the Deno group and Oracle over the name JavaScript: It seems that Deno is at a disadvantage as the court has dismissed the Deno group's complaint. However, in August, they (Oracle) must be held accountable for each reason, acknowledging or denying the allegations presented by the Deno group in the lawsuit.

    JavaScript™ Trademark Update

    » Read more

The Problem

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).

Difficulties and Solutions

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.

Goals for the Next Two Weeks

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!

Premium
Hello

The secret stack of Blog

As a developer, are you curious about the technology secrets or the technical debts of this blog? All secrets will be revealed in the article below. What are you waiting for, click now!

As a developer, are you curious about the technology secrets or the technical debts of this blog? All secrets will be revealed in the article below. What are you waiting for, click now!

View all

Subscribe to receive new article notifications

or
* The summary newsletter is sent every 1-2 weeks, cancel anytime.

Comments (1)

Leave a comment...
Avatar
Ẩn danh1 year ago

Cố lên a ơi, hóng ngày notas release quá 😁😁😁😁😁

Reply
Avatar
Xuân Hoài Tống1 year ago

Sắp ra mắt rồi đó e ơi, nửa tháng nữa thôi 😁