Experimenting with Landing Pages on AWS
Venturing into the world of puzzle book generation

The mind searches for ways to express creativity
Working on personal ideas is invigorating. The last couple of months have been stressful at my regular job, dealing with business demands that are not interesting and just plain boring. This culminated in me asking for, and being granted, a lateral transfer to another team, as I had been operating in stress mode for several months.
At some point, the mind has had enough of dealing with problems it doesn’t care about. This daily discomfort often leads us to find other avenues to express our innate creativity. There is only so much regulatory demand one can attend to or bug analyses one can perform before mentally checking out.
My latest idea emerged after reading an article about Japanese logic puzzle designer Naoki Inaba. He invented a simple puzzle game called Marupeke in 2009, which is similar to tic-tac-toe. The rules are super simple: you fill all the empty cells of the grid, ensuring that no more than two consecutive cells, either horizontally, vertically, or diagonally, contain the same symbol.

In the previous image we can see two O symbols diagonally in the bottom-right corner. If we place another O in between the two O’s, we violate the rule, so we know we have to place an X there instead.
I decided to create a digital puzzle book containing 100 Marupeke puzzles, complete with solutions. This project became my creative outlet and a much-needed break from the mundane tasks of my day job.
Creating a landing page
To create a simple landing page for my upcoming digital puzzle book, I decided to host it on marupeke.today. I coded some HTML, uploaded it to an S3 bucket, created a CloudFront distribution pointing to the S3 bucket, and set up a hosted zone on Route 53 to point to the CloudFront distribution.
The HTML includes a form where visitors can register their email addresses to receive information about the puzzle book’s release. However, I encountered a challenge: where do I post the form data without a backend?

I explored services like Mailchimp and ConvertKit but found them too limiting. I wanted a basic form URL to post the email addresses to and a user interface to view my email list. I didn’t want to use their built-in form builders and wanted to keep my form HTML exactly as it was, only changing the form’s action URL.
Eventually, I discovered Formspree, which seemed perfect, but their cheapest plan is $10 per month. Given Brazil’s weak currency, this would cost me around BRL 54 per month just to capture email addresses, so I needed another solution.

Fortunately, you can create a free Google Sheet and extend it with a deployable Google App Script that can interface with the sheet. You get a public URL (e.g. https://script.google.com/macros/s/…/exec
) to which you can post your form data. With some client-side validation, you have a crude backend for saving email addresses at zero cost for quick experimentation.
The Google App Script itself is about 15 lines long. This experience made me consider the potential for a simple Formspree competitor. The difference would be whitelisting domains that can post form data by default and offering credits that can be purchased and consumed for each data entry, avoiding monthly fees when no data is being posted.
Now, with the landing page available at marupeke.today, I can start developing the algorithm to create the actual puzzles. But wait, shouldn’t I market this first and gauge customer interest before spending more time coding? Probably, but I’ve been eager to learn Rust, so this is the perfect opportunity to continue building something for the sake of learning.