Florida Mesh - https://AreYouMeshingWith.us/ website
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
mainbranch as the production branch and enables pull request previews. - AWS Amplify Domain Association: Associates your custom domain (and the
mta-stssubdomain) 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.
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.
Prerequisites:
- Hugo Extended (required for HB Framework)
- Node.js & npm
- HB Build Tools
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 devThis will run a local webserver that you can connect to and view your work.
Note For First Time Local Dev Writers
For those that are first time writers and are looking for an easy to use local dev system. Use Visual Studio Code, This will be a one-to-one of the below GitHub Codespaces, and will be easy to use as well as allow simple intergrations for running the local dev server.
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+).
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.
- 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
- Click the Code button on the repository page and select Open with Codespaces.
- Wait for the environment to build and initialize.
- All required tools are pre-installed and available on the
PATH. - The Hugo development server starts automatically—no need to run
hugo servermanually. - Use the integrated terminal and editor for development, testing, and deployment.
- Run Terraform commands:
terraform init terraform plan terraform apply
- Run Go or Node.js tools:
Usego,node, ornpmas 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
- Create new content:
For more details, see the .devcontainer directory
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:
- Fork this repo and create a new branch for your changes.
- Make your changes and commit with clear messages.
- Run
npm run devto test locally. - Push your branch and open a Pull Request.
- Add yourself to
content/authors/if you are a new contributor.-
Create a folder for your displayed name.
-
Inside that folder create a
.mdfile called_index.mdThis is the file that will contain any contact information and avatar. Hugo supports a wide range of socials in this section, so if you would like to link a different acount then what's shown in the example below, feel free to reach out. Here is the list of Hugo Supported Socials.For our avatars we are using Gravatar But you can also hardlink a photo to your file. To create the
email_hash(the link to the Gravatar info.) follow this guide: Creating Identifier (hash). -
Your finished
_index.mdshould look something like this when finished:--- title: John Doe email_hash: Random MD5 Hash from Gravatar Hash Creation socials: github: John Doe's Git email: John Doe's Email ---
-
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.
.
├── 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