Building the Pocket Rice marketing website

Published: Jun 8, 2026

Last updated: Jun 8, 2026

On weekends, I pitch in my time to help my partner run her Onigiri business "Pocket Rice" here in Byron Bay.

As part of her recent push for the business, we set up the Pocket Rice marketing website as means of generating reach within the local region and having a more professional presence.

This blog post gives an overview of the marketing site build and the backend with a core pillar of the build being to keep build costs low.

Website at a high-level

I added the marketing website and backend to a monorepo that I have already been maintaining for other apps that manage our ordering system.

The website itself actually started as a Next.js website that my partner "vibe coded" which I had to take over and optimise for certain desired outcomes (asset optimisation etc.) as well as figure out the infrastructure for.

Initially, the website handed over used the Next.js app router for the backend which I migrated over to a Go HTTP backend with their standard library router. After the migration, I converted the Next.js website to be a static website only.

For hosting, the code is (currently) hosted on GitHub and using GitHub Actions to deploy to AWS via the AWS CDK infrastructure. The repo already had this configured from the order management system application I had already configured, so all I needed to do was add a new stack.

This stack itself hosts everything behind AWS CloudFront which has a number of benefits, but one of those was the ability to alter behaviour based on the route.

All key Next.js static pages are redirected to a private S3 origin to serve static assets and pages, while anything under the /api/* path will be directed to an AWS API Gateway which has a proxy integration to an AWS Lambda running the Golang server.

The following is a simplified look at the architecture:

There are a number of benefits to this:

  1. The lambda at the expected volume will remain in free tier.
  2. There are no cross-origin resource sharing setups that I need to configure.
  3. We get the benefit of all the security rules and DDOS protections that can be applied directly with a CloudFront origin.

These benefits alone have me incredibly bullish. Because we are using the Golang standard library HTTP router, if we ever outgrow lambda or costs become non-insignificant, it is easy enough to migrate over to an alternative like Elastic Container Service (or anywhere I decide to change hosting to, but ECS can also be an API Gateway target and is easy to migrate to).

Once deployed via CI/CD on a merge to main, our marketing website becomes reachable.

Home page view

Home page view

There is also a staging workflow. On branches there is a preview deployment made but I have left that out-of-scope for this blog post.

Blog pages

We host a blog on the marketing website as a means for helping to generate organic traffic.

Our blog landing page

Our blog landing page

Our goal is to have a funnel that can be used to drive awareness of our brand within Byron Bay.

Each blog post itself has a simple MDX configuration that allows us to reuse defined React.js components through the posts themselves.

An example blog post

An example blog post

Our goal here will be to identify some key blog posts and drive content around them. Some of our current "anchor" blog posts include:

It is still early days here, so we will be looking to drive traffic and partnerships going forward for this.

Online store

As part of our expansion online, my partner also wanted to introduce a store to sell Japanese home goods.

Australia is currently going through it's "Japan phase" where everyone is holidaying in Japan and being introduced to Japanese culture. The hope is that this can be a way to connect those positive feelings that Australians have towards Japan and to bring them into homes here.

The website itself has a landing page for the shop.

Online store

Online store

As you would expect, each item and variant has its own page for adding to a cart.

Item detail page

Item detail page

We are using Stripe checkout to manage our payments and manually doing shipments ourselves.

Other key pages

In addition to this, we also have a few other key pages to help with organic traffic or things that we wanted to highlight.

Our markets page highlights where people can find us.

We list all the markets we participate or have participated in

We list all the markets we participate or have participated in

We list our suppliers that we use for our onigiri as well to also highlight our local community members and importers.

Our suppliers page

Our suppliers page

Finally we have a contact page to have a way for others to contact us.

Contact form from the contact page

Contact form from the contact page

SEO and indexing

At the moment, there is a very annoying bug where you cannot add newer Google Service accounts for the indexing API, meaning that right now I am stuck doing a manual process with the Google Seach console in order to update sitemaps and request page indexing.

Things that I am also doing at the moment include indexing for other search engines as well as working through some SEO books. I've given myself 12 weeks from the first release of the website in order to see if I can start ranking highly across the web for our Pocket Rice brand in key categories such as markets to see and food you must eat. I may even write a follow-up post on how success is going in that area.

Personal image

Dennis O'Keeffe

Byron Bay, Australia

Share this post

Recommended articles

Dennis O'Keeffe

2020-present Dennis O'Keeffe.

All Rights Reserved.