Skip to content
From a 'simple' website to a webapplication in less than 10 days
August 20, 2025 • Lockhead

From a 'simple' website to a webapplication in less than 10 days

Photo by Blue Origin on blueorigin.com

Oh, this escalated quickly…

On the 27th of May 2025 I officially launched my new website but I never made it to finish this blog post telling a bit around the creationg and the architecture.

When I launched the website, it was a “simple” website built on Astro - see my launch-blog on it.

Within less than 10 days, the Website became a web application as I added a “contact” screen as well as a “mailing list”. Unfortunately I never finished this blog post until last week :-)

Architecture

The homepage is nowadays built using a modern JAMstack architecture with Astro as the frontend framework and AWS services for the backend infrastructure. The site includes a blog, social media feed, and contact functionality.

External Services

AWS Infrastructure

Frontend

Astro Blog

Static Assets

CloudFront

S3 Bucket

API Gateway

Lambda Functions

DynamoDB

SSM Parameter Store

Step Functions

EventBridge

CodeBuild

CloudWatch

GitHub Repository

Social Media APIs

Users

The website uses AWS CloudWatch RUM (Real User Monitoring) to keep track of visitors.

Deployment Process

The deployment process is mainly based on Github actions, but there is a Codebuild component to it which is required as the homepage integrated all of my social media feeds into one page:

Homepage AWS Account

Push Code

Trigger

Deploy Infrastructure

Create/Update

Build Site

Upload

Trigger

Rebuild & Deploy

Developer

GitHub Repository

GitHub Actions

CDK Deployment

AWS Resources

CodeBuild

S3 Bucket

Astro Build

Content Update

The regular “content update” trigger based on EventBridge also ensures that I can create blog posts, push them to Github and they will only be visible on the homepage when the “publication date” has been reached.

Dynamic API flow

The homepage now has an API which is based on the AWS API gateway that allows users to contact me or to sign up for a newsletter:

Submit Form

Invoke

Store

Send Email

Deliver

Invoke

Store

User

API Gateway

Contact Form Lambda

DynamoDB

SES

Site Owner

Newsletter Lambda

I am not yet using the information in the Newletter table, so I have not yet started to send out a newsletter, but this might be following soon.

Next steps

As a next step, I’d love to be able to integrate the “addition” of a new blog with Nexus Share to automatically start pushing out Social Media messages after a blog has been published!

Are you also a builder? Do you have any feedback on the homepage that you would like to share?

Let me know by email or reach out to me on LinkedIn.