Skip to content

flmesh/areyoumeshingwith.us

Repository files navigation

Open in GitHub Codespaces

AreYouMeshingWith.us

Florida Mesh - https://AreYouMeshingWith.us/ website

License: MIT

Table of Contents

Architecture

Infrastructure for this project is managed using Terraform in the terraform/ directory. The deployment leverages AWS Amplify for hosting, branch previews, and custom domain management.

Key components provisioned:

  • AWS Amplify App: Hosts the static website, connects to the Git repository, and enables automatic branch creation/deletion for preview environments.
  • AWS Amplify Branch: Configures the main branch as the production branch and enables pull request previews.
  • AWS Amplify Domain Association: Associates your custom domain (and the mta-sts subdomain) with the Amplify app, using a custom ACM certificate for HTTPS.

Notably:

  • All static site hosting, CDN, and branch preview functionality are managed by AWS Amplify.
  • No S3, CloudFront, or Route53 resources are directly managed in the Terraform code.
  • DNS and ACM certificate management are assumed to be handled outside this Terraform configuration, except for referencing the ACM certificate.

See terraform/ for all configuration files and variables.

Website

The website is generated by Hugo static HTML generator that is then deployed into the infrastructure managed via Terraform. The HB Framework used for the theme layout requires the Hugo extended version along with additional build tools. If you want to run a local dev server to test you will need the build tool installed.

Local dev

Prerequisites:

With the prerequisite build tools installed you can run a local dev server to work on you can proceed with the following workflow:

npm ci
npm run dev

This will run a local webserver that you can connect to and view your work.

Troubleshooting:

  • If you see errors about missing Hugo features, ensure you have the extended version.
  • If npm commands fail, check your Node.js version (recommend v18+).

Developing with GitHub Codespaces

This project supports GitHub Codespaces for a fully configured, cloud-based development environment. The included devcontainer provides all necessary tools and dependencies for local development and deployment.

Features

  • Git (latest, built from source)
  • Go and common Go utilities, with the Go extension
  • Node.js, npm, and eslint
  • Hugo static site generator
  • Terraform CLI, with optional TFLint and Terragrunt, and the Terraform extension

Getting Started

  1. Click the Code button on the repository page and select Open with Codespaces.
  2. Wait for the environment to build and initialize.
  3. All required tools are pre-installed and available on the PATH.
  4. The Hugo development server starts automatically—no need to run hugo server manually.
  5. Use the integrated terminal and editor for development, testing, and deployment.

Common Tasks

  • Run Terraform commands:
    terraform init
    terraform plan
    terraform apply
  • Run Go or Node.js tools:
    Use go, node, or npm as needed.
  • Common Hugo tasks:
    • Create new content:
      hugo new blog/my-first-post.md
    • Check site configuration:
      hugo config
    • Tidy Hugo modules (update/download required modules):
      hugo mod tidy

For more details, see the .devcontainer directory

Contributing

If you would like to contribute, fork this repository and work on your content changes/updates. When you are satisfied submit your PR back to this repository to have it included.

Contribution steps:

  1. Fork this repo and create a new branch for your changes.
  2. Make your changes and commit with clear messages.
  3. Run npm run dev to test locally.
  4. Push your branch and open a Pull Request.
  5. Add yourself to content/authors/ if you are a new contributor.

The most common Hugo command you'll need to understand will be hugo new content as most of the site configuration and theming will not need to be modified. It is beneficial to understand the Hugo directory structure to better understand how things work together.

Directory layout

.
├── Dockerfile
├── LICENSE
├── README.md
├── archetypes/             # Default content `kind`s
│   ├── blog.md
│   ├── docs.md
│   ├── gallery.md
│   └── tutorials.md
├── assets/
│   ├── favicon.ico
│   ├── hb/
│   ├── images/
│   │   └── logo.png
│   ├── jsconfig.json
│   └── mask-icon.svg
├── config/
├── content/
│   ├── _index.md
│   ├── archives/           # Contents managed by Hugo
│   │   ├── 2025/
│   │   │   └── _index.md
│   │   └── _index.md
│   ├── authors/            # If you contribute be sure to add yourself as an author
│   │   ├── _index.md
│   │   └── jbouse/
│   │       └── _index.md
│   ├── blog/               # Blog articles would go under here
│   │   └── _index.md
│   ├── categories/         # Contents managed by Hugo
│   │   └── _index.md
│   ├── docs/               # Documentation pages would go under here
│   │   ├── _index.md
│   │   ├── installation/
│   │   │   └── _index.md
│   │   └── introduction/
│   │       └── index.md
│   ├── gallery/            # Image gallery directories can go here
│   │   └── _index.md
│   ├── series/             # Contents managed by Hugo
│   │   └── _index.md
│   └── tags/               # Contents managed by Hugo
│       └── _index.md
├── docker-compose.yml
├── go.mod
├── go.sum
├── layouts/
├── package-lock.json
├── package.json
├── renovate.json
└── terraform/      # Terraform Infrastructure as Code

About

Florida Mesh - https://AreYouMeshingWith.us/ website

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 6