A week of dev #1

All right, it has been two days from the first commit in Cyca’s GitHub repository, so it’s time for the first post in « A week of dev » (yes, already !). Each week on Friday or Saturday, I’m going to summarise what happens in Cyca’s life.

Struggling with frontend

I’m not really a front-end developer. My juice is more the back-end code, the logic ; not the presentation. As such, I’ve been struggling to make the front-end to work as I wanted it to.

Mainly, there is still this annoying bug that makes the interface less responsive than it should be. Of course, there’s room for improving performances, but the bug I’m talking about is a nasty one.

When you click on a folder, then quickly on a bookmark, it opens said bookmark, so your browser navigates to pointed URL, instead of showing bookmark details in the dedicated panel.

It’s still unclear if this has something to do with the way that Vue attaches event handlers to the shadow DOM before updating the « real » DOM, or if I did something wrong when implementing UI update. This is going to need further investigation, or maybe a complete revamp of underlying component.

Quality of life improved…

On the bright side, I’ve fixed other little annoyances I thought it would take longer to deal with. For instance, UI is now updated whenever a document is saved (wether it’s a new document or an existing one) – thanks to the use of web sockets – or deleted. Also, documents titles are now correctly truncated with an ellipsis, just like folders names. It’s really a small thing but essential to UI consistency.

…So was the database

Some database’s tables had incorrectly defined primary keys, which prevented from deleting folders or bookmarks. While it’s not really a big deal when you start using the app, it was, of course, something to quickly fix.

Some work has been done on purging orphan documents and feeds. Before this update, documents and feeds in database were always updated whenever the scheduled task ran, regardless they were attached to something (a bookmark for a document, a document for a feed) or not. If you deleted a document from your bookmarks, it was kept in database forever, and periodically updated. It was pretty pointless and resources consuming.

Now, unattached documents and feeds stay in database for a configurable amount of time, but won’t get updated unless they get attached again. After that time, they will be removed from the database, along with related data that may have been stored on disk. This delay before actual deletion is mainly useful in a multi-user setup (or when, like me, you often change your mind…).

Other small things

As this is the beginning of my work on Cyca, some things should change more often than the rest. For instance, various « meta » files such as the README (which is far from being satisfying as for now), or typos. I’ve also fixed something that I completely forgot: default language.

Around Cyca

I can’t say I’m an expert in publishing applications, as I never did (probably due to shyness, and because I’ve always worked as a back-end dev in various companies where code wasn’t made public), but I get the theory. And these days, publishing an app seems to mean having « satellite » websites for various things orbiting around it. I’m mainly talking about this website, that presents the application, and is supposed to make you wanting to install and use the app, eventually with a « developer’s corner » – which is the blog part you’re currently reading.

I’ve also created an account on Buy me a coffee, which looks to be a popular solution for getting some « tips ». So if you enjoy my work, and if you are willing to contribute on some way, you could « buy me a soda » (as I don’t like coffee…).

Releases cycle

Cyca follows recommendation of Semantic Versioning.

Again, this is the beginning of Cyca’s life, so I expect to release new versions more often than later, and I’m still thinking about a good releases cycle.

Later, when Cyca’s code will be getting more stable, it’s obvious the current pace will slow down. Major versions could be published every six months or so, but we’re not there yet.

Next week’s tasks

For obvious reasons, pushing pre-built docker container to Docker’s Hub will improve Cyca’s adoption. I’m not sure I’m going to make it live next week as I need to document myself about that, but it’s in my top priorities.

I want Cyca to be the kind of apps that people want to contribute to. So I need to set up a website where you would find code’s documentation. phpDoc looks to be the « to-go » solution for that, but I want to explore the subject. And as I want it to be automated, I also need to document myself on GitHub’s web hooks and how to implement them (or something similar) to achieve that. I’m sure it’s not complicated, but I want to do it the right way.

For the same reason, I want to find a good way for people to contribute with language files. This is a priority to me, because it would also mean improving Cyca’s adoption (right now, Cyca supports English and French).

Last words

Working as a dev in a company is one thing. You have deadlines, you’re getting directions, you have objectives, etc., and you get paid for it, no matter what, until you get fired. I know it’s a pretty bitter point of view, but it’s mine right now.

Developing your own app, and make it live, is something else. Of course, you have objectives, you can impose yourself deadlines, but you are not getting paid for it. It’s a gamble, like any other endeavour.

My first commit in Cyca’s repository was not an end by any means. It wasn’t even a start either, because I’ve been working hard for the past few months to get to this point. So I gambled on Cyca’s future. I made the bet that it will interest people, and yes, I hope making a living out of it.

I hope that in few months it will get stable enough, and packed with enough features, to provide a hosted version, with a professional service. It won’t change a thing on the open-source version, it’s just a popular business-model. By the way, tipping me with Buy me a coffee could allow me to afford the first server I need to achieve that.

While I really do hope to get to that point, I also want Cyca to make its way to being a popular bookmarks and feeds manager. I want to play a role, as little as it could be, in making people’s Internet life a bit better, and I believe Cyca could do that.

Thanks for reading !