I’ve recently been working on an overhaul of API documentation, and as part of the overhaul I am building the strict reference sections entirely from an OpenAPI definition. While OpenAPI-based reference documentation is commonly built with Swagger UI, I quickly realized that using Swagger UI was not the best choice for me. The documentation site I’m working on is built with the Hugo Framework, a static site generator.

Why Not Swagger?

Swagger UI is a standalone webpage. It’s a great product, and I’m a huge fan. However, it’s not designed to be modular or extremely configurable when it comes to the output.

Hugo…


Not paying for medium? Find most of the same content here: https://blog.concannon.tech/tech-talk/img-srcset/

I was able to achieve a perfect score of 100 on Google Lighthouse by using Hugo’s built-in image processing capabilities to resize my raw image files in the build. Read on to find out how, and to find links to my hosted example!

Hugo Shortcodes to Process Your Images!

We’re all familiar with slow website loads in circumstances where images aren’t optimized. Fortunately, for those using Hugo as their static site generator, we can use a Hugo Shortcode to generate optimized image sets. I decided to see what kind of practical impact this optimization…


Not paying for Medium? Find most of the same content of this post here: https://blog.concannon.tech/tech-talk/hugo-canonical-url/

Last year, I decided to create a personal website/blog while I was learning to deploy static-content websites via AWS. I chose to use the Hugo framework and the Minimal Academic theme.

I recently decided that I want to cross-post content that I wrote for other sites to my personal website. This content includes a mix of Medium posts (including this one) and company blog posts. In accordance with best practices for cross-posting identical content across multiple sites, I decided that using a canonical url tag…


The Golden Gate Bridge at sunset — photo taken by me while on my bike commute home the other night

Not paying for Medium? The gist of this post can also be found here: https://blog.concannon.tech/tech-talk/nodejs-jwt-lambda-authorizer/.

I recently created a Lambda Authorizer to secure AWS API Gateway endpoints with JSON Web Tokens (JWTs). I found that many tutorials exist for Lambda Authorizer creation, but I found a lack of examples for such a script in NodeJS. Here’s a nice diagram I created that depicts the Authentication and Authorization process using a web or mobile app, AWS API Gateway, a Lambda Authorizer, and OAuth2-issued JWT access tokens.


A Step-by-Step Guide to Using AWS Lambda as a Cost-effective, Scalable, and Easily Maintainable Solution for Securely Reaching OAuth2 Authenticated Endpoints

This post originally appeared as an article in the Levvel Resource Library.

Source code for the end-result of the demo can be found here.

About Single Page Applications

Single Page Applications (SPAs) are the modern solution to deliver feature-rich user interfaces for web applications. Recent developments to SPA frameworks enable server-side rendering to improve search engine optimization and initial load times, two of the major criticisms of such frameworks. One great advantage to serving a SPA is that the SPA can be served as a static asset. SPAs can be served reliably, quickly, and inexpensively via a combination of cloud simple storage (such as…


This is part 2 of my journey into Android App development. Part 1 can be found here.

Let’s make an Android app!

Open Android Studio and start a new project. Give it a name. Choose the minimum API level of Android 4.4 KitKat, so that we can support most devices out there. Lastly, select “Empty Activity” as your starting template, accept defaults, and create your project. This sets up the app to launch with MainActivity as it’s default.

Location of the Run button

The project will take a couple minutes to initialize, but once it does, run it! Click the run button (or ctrl+option +…


As a module 4 student at the Turing School, I wanted to use our “Scale Up” project to explore what it takes to create an Android App. I chose to follow along with a Google-authored Udacity course to get started. I have some suggestions that will save time and frustration for Android SDK beginners.

Getting through the steps below will save you the headache of troubleshooting your Android Studio environment mid-lesson or mid-project. I suggest getting through all 6 steps before attempting to write your own code, especially if you are inexperienced with Java.

If you are unfamiliar with Github…

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