Kilobites by Sanico

a blog by humans, for humans.

We write opinionated articles on software, learning lessons from running our business, and personal reflections - Written by Sav Tripodi, Dom Tripodi, Bryan Susanto, and friends.

RSS Feed
Profile photo of Bryan Susanto

More links means higher Google rankings... right?

More links means higher Google rankings... right? cover image

Well, it’s a little more complicated than that.

One new insight I got while reading Google’s SEO Docs was how external links on your website could affect how Google perceives your website since it could cause Google to associate the linked website with your website. It could affect it in a good way when you are e.g. citing trustworthy sources like I just did, however it could also negatively affect it if those linked websites are a bit shady.

For example, when I was recently writing a blog post on creating a Black Friday banner in Shopify, I considered putting an external link to an online countdown timer that I used to check whether my countdown implementation across timezones worked properly. However, I realised that this random online countdown timer may not be the most trustworthy site to include with its large number of ads on the page. So I decided to exclude this link from the blog post and instead just included a screenshot of me comparing my countdown to that online countdown, which still conveyed the message just fine.

Snippet of the blog post on creating a Black Friday banner in Shopify showing the split screen view of the banner and countdown showing the same amount of time left.

But what about when you still want to include a link to an external website because a user might find it helpful? For example in the previous scenario, I might still had wanted to include a link to that particular online countdown timer to save my readers some time from having to look one up. Or perhaps …

Keep Reading...

Profile photo of Bryan Susanto

An SEO non-fan reads Google's SEO Docs

An SEO non-fan reads Google's SEO Docs cover image

SEO is one of the topics that I’ve always procrastinated on delayed learning in favour of other topics because I personally find it to be quite a dry topic. But just because I don’t like it doesn’t mean it isn’t important. In fact, it is one of the most important things contributing to a website’s success, since search engines are one of the most common ways potential users find a website, and poor performance and accessibility (which is part of SEO) can significantly degrade the user experience. And when you’re working on client websites and not just your hobby websites, well, that’s quite important.

Besides being forced assigned to read the Google SEO docs, one thing that helped me looked past the dryness of SEO is when Dom, one of the co-founders of Sanico Software, told me how learning SEO is “actually learning how to make the internet world a better place” since it helps me contribute to “an online world that is more optimised, performant[,] and accessible to all users online” (gotta add the Oxford comma lol). I personally have a pet-peeve with having everything properly labelled and organised in a semantic way, e.g. with having proper headings in websites and documents instead of having large text, and so this reasoning appeals to a part of me a lot. Indeed this is much more complicated than e.g. semantic …

Keep Reading...

Profile photo of Sav Tripodi

Why End it in Fire?

Why End it in Fire? cover image

A lover who dumped you? A company that fired you? A client who left you? A friend who ditched you? A soccer team that cut you?

Humans feel the gravity of a rejection hit them like a blaze of fire, a strong emotional backlash that leads us to burn a bridge and cut that person, company, client, or thing from our life.

I recently asked myself, why does it have to end in fire? Why do we have to burn a bridge?

From a young age, I learnt that if I am rejected then I must reject back, “an eye for an eye” type situation. However, in business I learnt to not burn a bridge, even if my internal conscience urges me to douse it with all the fuel on the planet and light the match to eradicate it.

Pointless Fire

I learnt the lesson from a failed client sale.

A potential client, for anonymity I shall call them Pamela, asked me for a new marketing website as their old one failed to attract customers. I organised an online meeting but they preferred that I go to their physical office. I work with clients around the world and hardly meet them in person but since I lived in the same city I obliged and met Pamela in person.

I travelled to the office, discussed solutions for a couple of hours, pitched different ways forward, and returned home to prepare a quote. I sent off the quote to which Pamela immediately replied and said she lacked the funds for my proposed solution.

For over 3 months we …

Keep Reading...

Profile photo of Sav Tripodi

We integrated Lodgify with Airbnb and Vrbo for an Australian holiday-rental company

We integrated Lodgify with Airbnb and Vrbo for an Australian holiday-rental company cover image

We performed a software integration from Lodgify to Airbnb and Vrbo for a luxury Australian holiday-rental business to allow automatic updates to rate changes, availability, and content.

Elite Accommodation, the business we performed the integration for, manages a range of luxury holiday rentals in the most sought-after locations in Adelaide. They reached out because the manual double handling of the information across Lodgify, Airbnb, and Vrbo consumed a significant amount of time and resources. The manual syncing of data led to clerical errors between the platforms and constant calendar availability conflicts which caused booking cancellations.

Every rate change, availability block, and description edit had to be repeated across all 3 platforms. A complete pain in the ass that required constant double handling of information across Lodgify, Airbnb, and Vrbo.

I had previously worked with booking and property platforms but not for a software integration specific to Lodgify, Airbnb, and Vrbo. I quickly found out why many businesses leave this software integration half finished.

Why Lodgify, Airbnb, and Vrbo

Lodgify is a property management system and channel manager. It holds the master copy of each property including rates, availability, photos, descriptions, and other general info. It also provides a direct booking website and payments to allow direct bookings without 3rd …

Keep Reading...

Profile photo of Sav Tripodi

The reality of deploying AI for Businesses

The reality of deploying AI for Businesses cover image

I saved significant money and resources in my small business by leveraging the latest AI models. As a Software Engineer and Business Owner I’ve spent 1000s of hours experimenting through trial and error on what works and what doesn’t.

Personally, I don’t know many small to mid-sized businesses leveraging AI properly because they lack the expertise and workforce to set it up in a usable and secure way. On LinkedIn, X, Facebook, and other platforms there is no shortage of bullshit from snake-oil salesmen claiming obscene things.

To counter balance the hype I decided to write this blog series called “AI for Businesses” where I post examples of AI automations in my business, work I’ve done for my clients, general tips and learnings, and other reflections and thoughts.

The purpose of this first post is to set the correct framing. I ask you to leave your baggage of assumptions at the door. The current form of AI isn’t going to replace your workforce and run your entire business while you sip an aperol spritz on a sunny beach in Italy (although that does sound nice).

The Non-Hype Reality Check

To start with: AI can be dangerous as seen with the recent hack involving OpenAI, the creators of ChatGPT. When set up with incorrect permissions and insecure sandboxes it’s a security nightmare. AI agents will happily delete files, send clients unauthorised emails, expose …

Keep Reading...

Profile photo of Sav Tripodi

Why a business owner should set a cut off time

Why a business owner should set a cut off time cover image

Many people say business owners have no life with the amount of hours they work. I’m here to tell you that’s BS lies! Working endless hours is a choice, not a mandate. I will share the most impactful method I found to work as a business owner without a compromise to work output.

First, let me describe how I used to work.

The Origins: The Subpar Way of Working

Over 6 years ago when I first started my business I worked day and night to ensure the business’s success. A normal phenomenon for almost every business owner. Every minute not spent on the business feels like a minute towards its potential demise and having to get a job again.

However, after that initial start period I noticed myself, and many other business owners I knew personally, continued to work long hours even when the business started to perform well.

I worked non-stop for around 6 years on my company. Even when we landed lucrative contracts with companies around Australia and the world I found it hard to hit the stop button. My dedication to the success of my business and the evasion of its potential demise led me to work non-stop like a crazy person.

Over the years I began to feel over worked, continually tired, acutely stressed, and mentally fatigued. Instead of listening to my body I kept the petal to the metal and refused to relent.

However, similar to a car, my fuel of passion and …

Keep Reading...

Profile photo of Sav Tripodi

Building my company to survive for the long term

Building my company to survive for the long term cover image

I will share with you how I build my company everyday to survive for the long term and the importance of going……. slow. But first, we must speak about trees.

Did you know a tree can break under the weight of its own fruit?

Yes, a tree can overbear itself with more weight than it can handle and subsequently collapse. Not only a branch but I’m talking the whole damn tree.

I never knew about this phenomenon but searched it up after thinking about how I run my small business. I am obsessed about slow, meaningful, and long-term growth. Small and purposeful efforts where the business grows and bears more fruits slowly over a long duration.

The analogy of the tree collapsing under its own fruit hit me when a fellow business owner and long-term friend of mine told me about someone he knew that hired 2-3 team members. They hired these team members within a year of opening their services based business. For me that felt reckless to aggressively increase the head count of the team in the early stages of the business.

Why?

Because for me, in that situation I crunch the numbers. I quickly determine that to hire a new team member I must:

  1. organise a job ad,
  2. spend company resources interviewing,
  3. accept I might not find a valid candidate,
  4. ensure correct working rights,
  5. speak with my lawyers to ensure I am compliant with Australian (super complex) law,
  6. onboard a new team member,
  7. perform …

Keep Reading...

Profile photo of Bryan Susanto

Cross-browser user permissions in Phoenix LiveView

You know those times when you’re on this rollercoaster of emotions when debugging something, thinking that you’ve solved it but then another problem comes up? Yeah, this was one of those times.

Context was, I was working on a Phoenix LiveView app called BESTguestbookEVER for one of our clients. It’s an upcoming custom web app for a new startup based in Adelaide, where wedding guests record a video message instead of writing in a traditional guestbook. If you’ve read my previous blog post you would know the story, but a summarised version is that I was working on the video recording feature which required obtaining video and audio permissions. Unfortunately, it wasn’t as simple as just asking for the permissions and the user granting it through browser prompts. There were some additional things I had to do to get it working.

The big part of it was getting HTTPS working locally, since browsers would not let you grant video and audio permissions to websites accessed through insecure connections. If you want more details on that, check out my previous blog post “My journey in getting HTTPS working locally for a Phoenix LiveView app”. But today I’ll be covering the other smaller, but arguably equally important part of getting this to work.

I thought it worked everywhere…

See after getting HTTPS working, I thought it was finally …

Keep Reading...

Profile photo of Bryan Susanto

Configuring local HTTPS for web app development

Recently, I was working on a Phoenix LiveView app called BESTguestbookEVER for one of our clients, which is an app where wedding guests record a video message instead of writing in a traditional guestbook. Thus, one of the key features of this web app is the video recording functionality. While implementing the recording functionality itself using web APIs was a relatively time-consuming task, what turned out to unexpectedly be a bigger headache was dealing with browser permissions, especially across different browsers. I thought it’s as simple as just asking the users for permission and then the user granting it through the browser prompts, but uh… no. As they say, the devil is in the details.

Finding out I needed HTTPS locally

The details for everything I needed to do to get video and audio permissions working is a story for another time, but one of the things I had to do was to set up HTTPS on the local development environment. After doing a quick search and reading through forum posts, I found out that web browsers generally prohibit giving video and audio permissions to websites accessed through insecure connections. This makes sense for security reasons, but it’s very annoying when you’re developing locally, since you typically don’t have a TLS certificate and thus no HTTPS connection (but HTTP instead).

What’s even more annoying was …

Keep Reading...

Profile photo of Sav Tripodi

Don’t like it, then go build it

Back when I worked for the Australian Federal Government I read a book called Rework by Jason Fried and DHH. They presented ready-to-go implementable methods to work better in a team and as a business. It left a profound impact on me to this day where I arrange my business around several of those methods.

As a junior-fresh-out-of-uni working for the Australian Government, I met with my manager every week in a fixed meeting that drained my soul. Week by week nothing changed in a significant way, therefore the meeting consisted of nothing meaningful but instead it always led to a general chit chat. After I read the Rework book it presented a better method: daily write ups about what a team member worked on for a given day. This type of automatic check-in allows the whole team to receive situational awareness on what everyone else worked on, without the constant and redundant meetings.

I felt excited and brought it up with my manager. Back then I thought if I discovered a revolutionary idea to work better in a team then everyone would be super keen to implement it. I told him about the book I read, the method, and my idea to implement it for our team. I remember his face to this day: he nodded his head, said “wow, what a great idea”, and then progressed to say “I prefer meetings, but thanks”.

I felt shocked! He asked not one question about the method and automatically dismissed it …

Keep Reading...

Subscribe for future posts by Sav, Dom, Bryan and friends. This is a once-a-month blog wrap-up only.