It had been years since being fully immersed in the “frontend” realm as the majority of my professional career had always leaned towards server side, backend and infrastructure roles. A lingering pain point that I had been “putting off”. But I knew if I wanted Feed Army to be in any way successful, it would need a pretty sharp UI. The hurdle of course being that my last forays into the “new” frontend developments were just not at all enjoyable. To be blunt in fact, they sucked.

Everything seemed (in my opinion) so unnecessarily complex? Babel, Bower, Grunt, Gulp, Npm…

One of the (in my opinion) most useful components of the Svelte library is that of “stores”. You can read the official documentation here, but in short, a Store is a reactive object in which you “subscribe” to state changes from any component inside your application. Furthermore, stores can be “derived”. Eg a stores value can be based on the value of one or more other store instances.

For me however, things get really interesting with the creation of “custom” stores. The creators of Svelte were/are obviously well aware of the power and flexibility of these stores and have provided…

Feed Army, a browser based unified dashboard for all your social media & online feeds.
Feed Army, a browser based unified dashboard for all your social media & online feeds.

#UPDATE: 9 May — we are having issues connecting with Instagram at this stage in the production environment. My apologies as I deal with Facebook to rectify error. Connect up with Twitter as they know what they are doing…

Having been originally frustrated with Instagrams’ user experience and your common web browser, I researched what available browser based extensions or services were available to aggregate my own personal social media feeds. To my surprise, I actually found very little in the way of what I wanted. …

Photo by Samuel Zeller on Unsplash

Working with Go templates, being a compiled language, is not always an easy task. And I have definitely had my fair share of gnashing of teeth in past which you can easily refer to here and here.

So when I started a new Go project that required a web view component, I decided to take my past learnings and create a public package that will hopefully, remove most of the hurt from your rendering needs too.

You can directly view the new package here, but I recommend you continue to read on.

My requirements

What I needed from a templating package was…

Wow….it’s been quite “the” year.

At the LGBTQ party hosted by the US Embassy in Mexico

I’m not sure how most measure their years??? I measure mine not only by time, but by distance as well. We just need to to define our distance metric =]

So what has changed?

  • Well, I no longer fear or doubt myself. That’s a biggie!
  • Opinions are just that.
  • Social media aghhh…reach out rather than opt in!
  • I want to be a father.
  • I want a dog (cats can hang too).
  • I am a global citizen, start with you local community.

There has been one particular thing that…

Serendipity played it’s part yesterday. A series of events that lead me to an open invitation track day at Hampton Downs. With summer drawing to a close here in New Zealand, and my bike going back into storage due to overseas committments, “scratching” on a track day was the perfect way to end the season.

But it wasn’t the thrill of the 20 somethings on their sports bikes being left in my wake on my “tourer” that I enjoyed most. Nor the power wheelies leaving the apex on the hair-pin turns. Or even the circuit scrutineer on his prupose built…

Luckily and happily, I’m always in an ongoing pursuit to level up my knowledge. For me personally, I’ve found the best way I learn is not by reading, but by building instead. With that, I present to you my latest online application:

Starting simple and small, MyDigests’ current purpose is to deliver a daily sales digest to retailers using the Vend POS Retail platform. We have much larger future goals, but we plan to grow with the feedback of our users into different data sources and broadcasting mediums. So far it’s been an interesting journey. …

Note: If you haven’t been playing the at home game, then I suggest you read the first post here, otherwise let’s assume that you have a directory structure like the following.

main.go templates 
├── _footer.html
├── _header.html
├── layout.html
├── templates.go
└── user
├── dashboard.html

The problem: ensuring that any JS snippets defined throughout your application templates are executed with a valid DOM available. Granted, it would be best practice for you to combine all of your .js files and then load the src in the head using the async attribute. But even a snippet in the _header.html


Don’t include {{define}} calls in your templates parsed with template.ParseFiles(). Know that template.ParseFiles() will overwrite any reference to a template with the same filename, not filename and path! Go look at the way I now parse my application templates here - Otherwise feel free to stick around and read why =]

So what’s the issue?

Having happily built out the backend of a little Golang app I’ve been working on, I’ve refocused my attention to the frontend. In general, I thought I had a ok understanding of how my html templates were being referred to and rendered. …

In my experience working with Golang thus far, I encounter a pretty regular requirement to fetch some sort of data, process the data accordingly and then persist or send the output. Naturally the use of Golangs’ channels really shines here, but you still need a little orchestration to tie your channels together. Publish to one and subscribe to another along with the ability to stop processing as and when required too!

But how do you stop processing duplicate records? Take the following simple example.


Kyle Clarke

Creator of Prev CTO @syngency & Principal Engineer @vendhq . Likes motos, travel, #golang, #svelte, sunny days & giggles. He/Him

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store