Skip to content

declanlscott/fodder

Repository files navigation

Fodder

Motivation

A few years ago, a certain midwestern fast-food restaurant chain discontinued its mobile app. I used their app for one specific reason: to check the Flavor Of the Day (FOD). While their website still provides this information, I found it to be too slow and cumbersome for this one purpose. This motivated me to create an app with the goal of providing a simpler and faster user experience.

Running Locally

Prerequisites

Setup

Clone the repository and install dependencies:

git clone git@github.com:declanlscott/fodder.git
cd fodder
pnpm i

Create the necessary environment files:

cp apps/backend/.env.example apps/backend/.env
cp apps/frontend/.env.example apps/frontend/.env

Build the monorepo packages and start the dev servers:

pnpm --filter "@repo/*" build
pnpm dev

GitHub Actions

This project uses GitHub Actions for CI/CD. To run the CI/CD pipeline locally, you can use Act. Follow the installation instructions for your operating system.

Create an act.secrets file in the root of the repository similar to act.secrets.example.

On an Apple silicon Mac, I run the following command. If you are running on a different platform, you may not need the --container-architecture flag.

act --container-architecture linux/amd64 --var-file act.variables --secret-file act.secrets

Technologies

  • Infrastructure
    • Terraform IaC
    • Cloudflare DNS
    • AWS
      • CloudFront
      • ACM
      • S3
      • Lambda
      • CloudWatch (for logs)
      • DynamoDB (for terraform state)
      • IAM
  • Backend
    • Hono
    • TypeScript
    • LLRT (Low Latency Runtime)
    • Unit tests (with Vitest)
  • Frontend
    • Vite
    • React
    • TypeScript
    • Tailwind CSS

Architecture

Architecture Diagram