The sun never sets on 5pm - Part 0
My journey in coding an AWS serverless application with only ChatGPT 4 - Using Lambda, DynamoDB, CloudFormation, API-Gateway, S3, IAM, CodeBuild, CodePipeline, CloudFront, and Amazon Location Services
Finding ourselves nestled in a familiar café on a lazy Saturday morning, my wife and I engage in lively chatter about the enticing notion of passive income. It's a concept that, much like our hot coffee on this laid-back weekend, warms us up to a whole world of possibilities.
We entertain ideas of owning a carwash, then steering an ATM empire, before leaping onto the digital stage - creating a website. As our ideas crystallize, we add constraints: a lightning-quick launch within a weekend, no collection of user data, and a smooth user experience without any pesky logins. And most importantly - drop shipping.
Our brainstorming produces a flurry of concepts, some whimsical, others borderline genius.
A humorous calculator that never quite gets it right, with advertisement driven financials.
A one-click solution for baby-shower registries that could bring relief to countless confused friends and relatives.
An emergency haven, "OopsIForgotMothersDay.com", designed for those who have inadvertently let Mother's Day sneak up on them.
And finally, we land on the best idea so far: a site that tells you where, at this very moment, it's 5pm. Because no matter where you find yourself, it's comforting to know there's always a place where it's time to kick back and relax.
The vision is refreshingly straightforward - a single webpage presenting a map. On this map, an infectious wave of beer emojis will cascade across the screen, infusing an element of lighthearted humor into a predominantly informational site.
An accompanying section of the page introduces you to each location, courtesy of handpicked automated Wikipedia excerpts. It's a snapshot into the life and culture of the place where it's currently happy hour. You become a virtual globe trotter, one beer emoji at a time.
Rounding out the features is a slick e-commerce integration, offering branded merchandise. Drop-shipped with minimal fuss and a modest markup, these trinkets and keepsakes add a physical touch to the digital experience, and offer a way to keep the lights on. It's an inviting blend of education, entertainment, and commerce - a small slice of the globe served up on a silver web platter, with a side of fun.
As we get home from our boozy morning and I disappear into my office, I’ve got a secret mission for this very real idea. I’m not going to build it.
ChatGPT is. 🍿
My covert operation emerges from the swirling fog of speculation surrounding Large Language Models (LLMs). The rumors are rife, painted with broad, audacious strokes.
Will they usurp our jobs?
Take charge of our taxes?
“Will the revered art galleries of tomorrow be crammed with synthetic, prompt-generated artworks, a testament to the idle creativity of teenagers who've harnessed the perfect prompt for their NFT marketplaces, thereby securing a lifetime free from work?”
—Will Laws
As these whispers continue, my mission is to penetrate the murkiness and discern the true capabilities of these LLMs. More specifically, can I employ one to build a production-quality website without minimal manual human intervention?
I'm more than equipped to construct this website without ChatGPT and to make it interesting I'm imposing this self-restraint.
I am not permitted to suggest answers.
Every line of generated code must be executed 'as is', and the inevitable bugs (of which there will be plenty) must be handed back to the model for rectification.
It's the model's call on how to proceed, crafting its own solutions to the hurdles it stumbles upon creates for itself. This is an experiment in AI problem-solving, an exploration of the model's ability to learn and improve from on its own errors.
I am going to insist on a few things.
Use AWS
Use Serverless wherever possible
My architecture for this endeavour will be entirely serverless:
DynamoDB for the NoSQL database
Lambda for running the serverless “computations”
API Gateway to handle the REST requests
In addition, I’ll employ Infrastructure as Code (IaC) and automated pipelines for seamless deployment and robust infrastructure management.
Again, I am not permitted to suggest answers. Let the mission commence.
“Nobody phrases it this way, but I think that artificial intelligence is almost a humanities discipline. It’s really an attempt to understand human intelligence and human cognition.”
—Sebastian Thrun
As a Sneak Peak to the end of this series - here is our end-state architecture.
Manifest
Part 0 - Introduction *You are Here 💁♀️
Part 1 - Failing Fast (Building with prompts)
Part 2 - MVP and Deployments
Part 3 - MVPolish
Part 4 - So what.