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.

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+).

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.
    • Create a folder for your displayed name.

    • Inside that folder create a .md file called _index.md This 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.md should 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.

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 website

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors