Deep linking with Angular and Go

A Golang Gopher made to look like Kanye West in the Rolling Stone photo shoot for “808s and Heartbreak”
A Golang Gopher made to look like Kanye West in the Rolling Stone photo shoot for “808s and Heartbreak”

Congratulations! You’ve been working really hard on building a beautiful Angular application, and you’re ready to move from your old friend ng serve on localhost:4200 to a production deployment. You’ve configured the Go HTTP server to serve static files, and it’s time to test it out. You navigate to the app root, click around your app and everything looks great! That is, until you try a browser refresh.

An image of text that reads, “404 page not found”
An image of text that reads, “404 page not found”
Welcome to Heart Break

What happened? My routes are perfect! Everything worked in the development server, so what’s the problem?

In this article we’ll briefly walk through the request flow between a Single Page Application (SPA) and an HTTP Server, discover why a page refresh can lead to a 404 error response, and look at ways to enable deep links in an Angular SPA served by a Golang HTTP Server using the standard http package. …

A full-stack reactive application walkthrough, built with Spring Boot 2, Angular 8, and MongoDB.

Image for post
Image for post
Photo by israel palacio on Unsplash


I have found it challenging to learn reactive programming models, and to change the way I think from writing an imperative set of instructions to building an event-based non-blocking system where data is allowed to flow freely from one component to another. It is relatively simple for me to understand something like:

find a record using some criteria and return it

whereas a more reactive flow such as:

open a subscription and watch changes to this type of record, and expose the subscription to other interested components

is much more conceptually difficult.

In this article we will explore a simple example of a fully reactive web application using Mongo 4.x, Reactive Spring Boot 2.1 with Webflux, and Angular 8. We’ll call it the J.A.M. …

Image for post
Image for post
Hello Darkness My Old Friend

Docker is amazing. It has absolutely revolutionized the development, deployment, and management of applications. I use it every single day.

Gone are the days of downloading some version of Postgres or MySQL, running through the install instructions, and manually setting up the database to accept connections from your app. Now we can just pull the image, seed the database with some initialization scripts, and voila! We’re up and running in no time, with very little busy work. It’s fast, repeatable, and comparatively painless.

But something happens after running Docker images for a while. The disk footprint starts to build up, and if you’re working on a machine with 128GB or fewer, it can happen pretty quickly. …


Tim Jones

I like to build things and put them in clouds. I try to write about non-intuitive solutions to problems I run into along the way.

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