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

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

Profile photo of Sav Tripodi

We setup AVL for an Adelaide law firm with an SIP Address in Webex

A local law firm and client of mine reached out to request help with the setup of an Audiovisual link (AVL) for an upcoming court case in country South Australia. Courts use AVL technology around Australia to allow lawyers, witnesses, and others to participate through a video call for a court case. For me, a video call sounds much more comfortable than several hours of driving to a small town far far away. I’m all for it.

AVL technology, or better known as video conferencing, rose in popularity within Australian courts during the pandemic back in the early 2020’s but existed as far back as 2015 in SA Courts.

Not One to Rule Them All

I researched AVL and its usage in courts across Australia and found that there lacks a consistent standard AVL technology. Multiple video conferencing tools exist on the market and courts use a variety of them such as Webex, Zoom, Microsoft Teams, and a whole bunch of others. Therefore, the technology for the AVL depends on the court and what they accept.

Courts of recent started to limit the options and instead select a mandatory software that they expect everyone to use. In the case for my client the country court in South Australia requested them to use Webex with an SIP address. A what address? Yes, an SIP address, an older technology nearly no one knows about.

Think of an SIP address like the uniqueness of a telephone number. …

Keep Reading...

Profile photo of Bryan Susanto

Creating a Black Friday Banner in Shopify

Creating a Black Friday Banner in Shopify cover image

Today I would like to share with you the process I went through to design and implement the Black Friday banner for Sticky Vinyl in 2025, a well-known Australian store that sells vinyl for arts and crafts as well as tools for it. This is part of our monthly maintenance for their Shopify e-commerce website as part of Sanico’s Shopify services. The purpose of this banner was to let customers know that there is a sale going on and how much longer the sale was going to last for. This encourages the customers to purchase products while the sale lasts.

The requirements

The following were the requirements for the banner given to me by Sav, one of the lead devs of Sanico Software:

  • It should be located at the very top of the page, above the navigation bar.
  • It should only show when the sale is commencing, namely from Friday to Sunday inclusive in the Adelaide timezone.
  • It should count down the number of days, hours, and minutes left before the sale ends.
  • It should have a unique design similar to the rest of the website and a reference image I was given.

The following was the reference image Sav gave, with the red crosses indicating that I shouldn’t include those elements from the reference image.

Black Friday banner with a black background, purple “%” symbols, and a countdown with the number of days, hours, and minutes left before the sale ends. There is a close button at the top left and a button to view the sale, both crossed out in red.

Getting started: Hardest part first, one step at a time

Typically with any problem or task I always try to figure out the hardest part first, or at least get a rough picture of …

Keep Reading...

Profile photo of Bryan Susanto

Creating Services Pages for Luciano Concrete's website

Creating Services Pages for Luciano Concrete's website cover image

Today I would like to take you on the journey of how I designed and implemented service pages for Luciano Concrete, a local Adelaide concreter in South Australia. These pages were handmade with HTML, Tailwind CSS, and JavaScript, as we do for all our client websites. They are part of the whole Luciano Concrete website assigned to me by Sav, one of our co-founders and lead devs of Sanico Software, who also mentored me throughout the whole process.

Luciano Concrete was founded by Robbie, a 3rd-generation concreter. Having helped his Nonno and Father (1st and 2nd generation) during school holidays and weekends, Robbie has a wealth of concreting experience and is relationship-oriented with his clients. By making it custom-made instead of using a cookie-cutter template, I was able to better reflect this in a more personalised website, and tailor it to the design tastes of the client more closely.

These service pages are not just helpful for communicating to potential clients what Luciano Concrete could do to help them (and explaining all the concrete terminology and services to those of us who aren’t concreters or builders), but also helps Google and other (potentially AI) search engines discover the company and how they can help the searcher.

So let’s get right into it!

Finding inspiration

Before I started creating the service pages, I browsed the internet to find some …

Keep Reading...

Profile photo of Sav Tripodi

The Carrot Dangler

An opportunist that sells a dream. A poker player that bluffs the true value of their cards. They promise the world with no follow-through.

When I first started my business many years ago, naive and young, I never heard of the concept of a Carrot Dangler. At first I believed, after a few more I doubted, and now I’m skeptical.

Ladies and gentlemen, new and old business owners alike, allow me to introduce: The Carrot Dangler.

The Origins

Many years ago a financial planner, I shall call him Tony Chobbie, called me on behalf of another client for a job in which they hired my company. Tony, a slick-haired, fashionable, and charming man, called me to discuss the project on the request of my client. As I answered the phone he immediately greeted me in an abrasive but charismatic tone, as if I was friends with him from 10 years ago.

For more context, my client let me know that Tony tried to recommend his “friend” for the job but they chose me instead. They feared Tony recommended the friend not on merit but based on mutual financial benefit. A clear conflict of interest given the friend of Tony sent a substantial sized quote.

In my conversation to Tony, after 10 minutes of general small talk, he dangled his first carrot by flirtatiously saying:

Tony: Sav, ya know what, now that I know you exist, imma send ya so much work, yeah, I got heaps of clients that need software stuff. …

Keep Reading...

Profile photo of Bryan Susanto

Design is not like math nor computer science

Design is not like math nor computer science cover image

Back in year 10, I wanted to create a website for someone as I found web development to be enjoyable with its low barrier to entry, instant results in the browser, and the fact that it’s shareable through just a link in the browser. So I gathered a list of things I would need to learn to do so, which can be divided into two categories:

  1. Technical skills: Frontend (HTML, CSS, and JS) and backend (at the time, PHP and MySQL)
  2. Design skills: Graphic design and User Interface (UI) design.

So with that, I started looking for resources online to study it, which mainly came in the form of multiple-hour long YouTube tutorials, a long YouTube tutorial playlist, or a Udemy course I got. Thank you, by the way, to all those who released YouTube courses for free and continue doing so, especially freeCodeCamp and the Net Ninja; you all have been a crucial part of starting my journey into web development and programming in general.

Although I got stuck in “tutorial hell” for some time, I was eventually able to prevail to create that website for someone, despite having unmaintainable spaghetti code as it was the first time I created a website of that scale. I was able to get out of it by just forcing myself to start working on the project after going through (and sometimes following along) the tutorials, and to refer back to my notes or search online when I got stuck. Truly I …

Keep Reading...

Profile photo of Mak Rawiri

How we hired our Junior Software developer

Anyone can apply for a job. That’s a no-brainer. Endless hours scrolling job sites, a never ending compilation of cover letters and sitting by the phone waiting for the “you’ve got the job” call. What feels like minutes turns into eternity when you’re on the job seeking crew.

You’ll probably think about how badly you want to win the lotto too. It will be a constant thought throughout this process, as you attempt to navigate a foot in the door to make your contribution to capitalism.

With the growth of our company increasing, we decided we needed more hands on deck. So much work with limited resources meant that it was time to make the band bigger. Hiring a junior software developer was definitely not something I had done before but I’m never one to shy away from a challenge.

This was one of the first critical tasks I was given when I started several months ago. Daunting, I’ll admit, yes. For a process that was merely a few months ago, now feels like a mirage since I’ve experienced what it takes to hire candidates. Let’s see how we went for my first time doing the hiring process the Sanico way shall we?

Start the Clock

Before this role, I’ve had limited exposure to the Human Resources (HR) world of people. I’ve sat in on interviews or performed company introductions - the bare minimum of HR. In all fairness …

Keep Reading...

Profile photo of Mak Rawiri

Intention Over Money Mindset

When I was asked by Sav to do this blog post, I felt honoured. It’s as if I had been knighted into the secret service, only this is way cooler and less likely to put me on the FBI’s most wanted list.

The fact that Sav was willing to allow me to showcase my creativity through my profound use of my ABCs had me gobsmacked. I had so many ideas as to what I wanted to make my mak mark on.

I hummed, I huh’d, and then I thought, “Well, Mak, why don’t you write about how we got to writing this blog in the first place?”

Pack the car and put your seatbelt on, folks; we’re going for a ride down memory lane.

Turning Back the Clock

I landed my current fabulous role of Sanico Software’s Business Operations after transitioning from the pits of misery mining industry. I survived 4 years in an industry that isn’t built for creatives or those who want to open Pandora’s box for all the right reasons. The realisation hit me quite early on in my career that it wasn’t a place I saw myself in long-term. Like the majority of folks who fell down the rabbit hole of big dreams and the necessity to provide for themselves and their families, I too followed Alice into Wonderland.

If you’re unfamiliar with the mining world, it’s an industry where people chase money no matter the circumstances. Because, to be honest, there is plenty of money to chase there.

If you’re familiar with the …

Keep Reading...

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