Welcome to the Go Advent Calendar!
During the 2020/2021 global pandemic I’ve spend increasingly more time learning Go and developed a desire to put some of my new learnings into practice. Recently I also played around with TailwindCSS and other CSS frameworks and shortly later decided to put a small fun project together.
My main objectives were:
- have a reason to write some Go
- create a side project which I can use as a reference when looking for my first Go job in the future
- create a project that will benefit me in the most selfish way - namely connect with the wider Go community and discover other Go bloggers who exist
… and so the Go Advent Calendar was born.
The idea originally stems from the F# Advent Calendar which I find is a brilliant source of discovering great F# content and which helped me to learn what the wider F# community was working on. The first F# Advent Calendar originated in Japan and has been a long standing tradition since then. A few years later Sergey Tihon started to run the F# Advent Calendar in English and has been doing so for the last 8 years! Now I would like to throw the Go Advent Calendar into the mix.
So how does it work?
It’s fairly simple. There are a total of 24 windows (slots) available for Go bloggers to book. You simply put down your name, email address and desired day and we’ll send you an email to confirm it was really you who booked the date. Afterwards we’ll send you another email with a unique link to submit your Go Advent Calendar post before your selected date. All you have to do is blog about a Go related topic and submit the URL to your blog post when it's ready to go. We will reveal the link to your post on your chosen day.
As a result the entire Go community will receive a new Go blog post to read every single day of December leading up to Christmas. It's basically an advent calendar for geeks!
Does it need to be a brand new blog post?
The general expectation is that people who secured a Go Advent Calendar window will write a brand new blog post indeed and only publish it on their blogs on the day of their selected window or shortly before (e.g 1 or 2 days earlier). It's not a hard rule but it certainly adds more excitement to the advent calendar and a flair of "Christmassy" surprise.
In theory nothing prevents one from submitting an older post, but it does take away the excitement if older blog posts which have already made the rounds get frequently recycled.
Do I need to have my own blog?
Yes, this website doesn't host blog posts at all. It only provides the advent calendar functionality and requires bloggers to submit a URL to their own blog when they submit their advent calendar post.
Why only 24 windows?
In Europe most advent calendars only have 24 windows because we celebrate the main event on Christmas Eve. As a European I naturally chose a design which I was most familiar with. Besides, I don’t know how popular this year’s Go Advent Calendar will be. It's probably going to be easier to fill up only 24 slots than 25 or more. Maybe in the future I will expand the calendar to accommodate more.
Can I subscribe to a daily calendar newsletter?
Not yet, but very soon!
What tech did you use to build this site?
Go on the backend. Go templates for the frontend with TailwindCSS for the design and images obtained from free open source projects which don't have any licensing or attribution requirements for free projects like this.
On the backend I integrated with Mailgun for transactional emails, hCaptcha for bot protection and I’ve also written a couple cron jobs which run as Google Cloud Functions on a regular schedule. The main website runs inside a Kubernetes cluster which I already operate for a variety of other sites and therefore didn't incur any additional hosting costs beyond what I already pay.
Don't get me wrong, if I didn't already pay for all of these services anyway then I would have certainly considered my own technological choices as an overkill for a simple website like this. However, given that I already have many years (if not decades) of experience it was actually a very economical and easy choice. Overall it took me only a handful of days to build this website and get everything up and running and the majority of that time was spent on fiddling with the design.
Don't use my technological choices as a template for yours :)
Are there other advent calendars?
This service provides additional advent calendars which are:
If you would like to see more advent calendars for other platforms then please let me know.
How can I support you?
The biggest support you can give me is by tweeting about this website and sharing it with your network in order to get the widest reach and hopefully fill up all available slots!
You can also donate me a coffee or two if that’s something you prefer.
However, if you have some spare cash to give then I’d rather have you make a small donation to your favourite charity of choice.
Some charities which I can recommend include but are not limited to: