Aysha Anggraini

On Code, Design, and Movement

Modernizing Anchorific

I must be the world’s most horrible open sourceress because I can’t seem to maintain my projects consistently. Mad respect to all the open source contributors out there. I wish I could do what they do but I just can’t seem to commit. If you were to compare my projects to plants in a garden, they’ll be wilting by now. I planted them, I watered them for a time and then I disappeared when I lost interest. Part of it is because I never thought people would even look at them. But they do and they are interested enough to even contribute. I am honored and wish that I can be the author that they deserved.

Working from home gives me a lot of time to work on things that I usually don’t have time for. I am able to complete things for work and also make time for abandoned projects and learn new things. I created a static site generator recently. It is a cheap knock-off of GatsbyJS. My motivation is to understand how GatsbyJS works under the hood and if I can replicate it. I named it Ichigoo after my cat. It is decent and I want to get into the details of how I build it in a series of posts in the future. For now, let me talk about resurrecting one of my abandoned projects.

Anchorific is a jQuery plugin that I created when jQuery was still hot. I know it isn’t as hot now but there are many sites that depend on it. Though it is an abandoned project but it will always have a special place in my heart since it was the first open source project I ever released and marketed.

I created it when I was fresh out of college, jobless, and feeling demoralized by the job search process. At that time, I was planning to work in Qatar in order to fulfill my bond obligations as I was under financial aid for my education. However, Qatar doesn’t really have a thriving tech industry. I did get a job offer from Qatar Airways as a senior software engineer but I ended up rejecting it because they told me that I’m an “unmarried woman who doesn’t need to take care of a family so I can afford to be paid less” when I negotiated for a higher pay. They wanted to lure me with a senior title but with a low pay of QAR5000 (USD1,373.25).

In order to heal my broken heart, I packed my bags and went on a vacation to Phuket, Thailand. I decided to restart my job search process and start applying to the US and also Singapore. I thought that I needed a few personal projects to show off given that I was a fresh graduate and that’s where the idea of Anchorific was conceived. I worked on the concept and built the rest of it once I was back in Malaysia. Over the years, it generates a small number of users and it seems useful enough to be used by the people at Nasa.

I decided to create a new project page for Anchorific in order to test out Ichigoo for production sites. But I can’t really revisit Anchorific without noticing the outdated tools and workflow used in this project. It was using Grunt in order to build and run tests. It also used JSHint for code linting. It was also never published to NPM though it is available on cdnjs thanks to contributors. I am not sure if these tools are still popular but I never use them at work anymore.

I removed Grunt in favor of NPM scripts and dropped JSHint and replaced it with Prettier. I added Husky for linting autocorrect and also published it to NPM. It also has a brand spanking new demo page hosted on Netlify and published with Ichigoo. I also created a new logo for it! It is not entirely mine since the anchor is illustrated by Victor Manuel Hernandez Rouco.

Anchorific's logo

It was created using Sketch App with Phosphate, Futura, and Brush Script MT typefaces. Typefaces are converted into outlines so it can render everywhere.

I am not very satisfied with the mobile version of the demo page though. I don’t have a good idea on how to represent the navigation without blocking the content. So I just slapped it on a sliding menu. It probably doesn’t matter since the scrolling treatment is rarely useful on mobile. I just want people to be able to understand what the plugin is about and get the information they need on smaller screens. The desktop version will only kick in for screen sizes with a width of 1300px and above. I am planning to make it lower.

It was fun revisiting an old project and improving it. At least there’s something good that came out of the pandemic. I have more time to tend to things that I would otherwise ignore. Revisiting this brings back old memories of 23-year-old me: wide-eyed, hopeful, and struggling. I am no longer wide-eyed and I’m no longer struggling but I’m still hopeful. Hopeful for continuous stability, for uninterrupted balance of health and wealth, for prolonged happiness, and for love.