Starting a development blog
Chinese Boost has been running for a long time, and for most of that time the only thing written about it has been Chinese. The site itself — how it is built, what it runs on, what breaks — has gone unrecorded.
This is where that goes from now on. It is deliberately tucked away: there is a link in the footer and nothing else, because someone who came here to read about Mandarin word order should not have to walk past a post about build pipelines to get to it. The Chinese learning blog and the grammar articles are unchanged, and this section stays out of the site’s main RSS feed. If you do want to follow it, it has a feed of its own.
What there is to write about
The last stretch of work has been a rebuild that left almost nothing of the original stack in place. The old Laravel application is gone. The site is now Hugo, built and published as static files to S3 behind CloudFront, with the whole thing — bucket, distribution, DNS, certificate — defined in CDK rather than clicked together in a console.
A few pieces of that were more interesting than they sound and are worth their own posts:
- Redirects moved from S3 routing rules into a CloudFront Function, which meant
writing JavaScript for a runtime that has no modules, no
async, and a one millisecond budget. - Local development runs the CDK stacks against a simulated AWS rather than a real account, so a change to the infrastructure can be tried without deploying anything.
- Merges to
mainnow deploy on their own, through a single CodeBuild project that lints, tests, builds and deploys, with no standing permissions of its own beyond assuming the CDK bootstrap roles.
And other things
Some of the tooling here started as a solution to a Chinese Boost problem and then turned into a package of its own — Colophon, which generates the social share images, and Yulin, which is what the local AWS simulation is built on. Those have their own lives now, and this seems like the right place to write about them too.