Shellsharks>_

Architecture

The Architecture.md file describes and centralizes the architecture and general implementation details of the shellsharks.com site. Read more about ARCHITECTURE.md here.

High-Level Architecture

The site is built on GitHub Pages, which leverages the static site engine Jekyll, which in turn uses Liquid as its templating language. I have a paid GitHub Personal/Pro subscription which allows my shellsharks.github.io repo (the one my site is built from) to be private. Builds & Deployments are performed via GitHub Actions, and not the traditional Pages Deploy-from-a-branch method. DNS is managed by GoDaddy. Object storage (i.e. most images, hosted files, etc…) is within AWS S3. All my writing is performed on my desktop computer & tablet listed here (with occasional updates directly from my phone).

A data-flow view which describes system layers/boundaries:

Data Flow Diagram

Architecture Component List

Design Walkthrough

This section walks through more granular architectural items.

Design-wise the latest architectural revision of the site sports a dynamic, mobile-friendly 5-pane design. A header at the top, nav section on the left, main section for body content, sidebar section on the right & a sticky footer section at the bottom.


<body>
  <div class="container">
      <heading class="container_item">
        <!-- Header content -->
        {% include header.html %}
      </heading>
    
      <nav class="container_item">
        <!-- Navigation -->
      </nav>
    
      <main class="container_item">
        <!-- Main content -->
        {{ content }}
      </main>
    
      <aside class="container_item">
        <!-- Sidebar / Ads -->
      </aside>
    
      <footer class="container_item">
        <!-- Footer content -->
        {% include footer.html %}
      </footer>
    </div>

The folder structure for my shellsharks.github.io repo looks like…

.
├── 404.html
├── CNAME
├── _captain_logs
├── _config.yml
├── _includes
├── _layouts
├── _notes
├── _posts
├── _site
├── about.md
├── ai.txt
├── architecture.md
├── assets
│   ├── css
│   ├── img
│   ├── js
│   └── other
├── blog.html
├── blogroll.md
├── changelog.md
├── contact.md
├── disclaimer.md
├── donate.md
├── fediverse.md
├── feeds
├── humans.txt
├── ideas.md
├── index.html
├── indieweb.txt
├── more.md
├── notebook.md
├── now.md
├── podcast.md
├── pro.md
├── public.pgp
├── referrals.md
├── resume.md
├── roadmap.md
├── robots.txt
├── search.md
├── security.txt.md
├── sharkinfestedwaters.md
├── sharkweek
├── sharkweek.md
├── sitemap.xml
├── starsharks.md
├── statboard.md
├── style.md
├── tags.md
├── toots
│   └── infosec-exchange
│       └── shellsharks
│           ├── actor.json
│           ├── avatar.png
│           ├── bookmarks.json
│           ├── index.html
│           ├── likes.json
│           ├── media_attachments
│           │   └── files
│           └── outbox.json
└── uses.md

Architectural Invariants, Concerns, Future Items

A discussion on what is notably absent from the site and what the future holds. A limited roadmap of proposed upcoming features has been made available.