diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..7b62a71
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,13 @@
+# Generated files by hugo
+/public/
+/resources/_gen/
+/assets/jsconfig.json
+hugo_stats.json
+
+# Executable may be added to repository
+hugo.exe
+hugo.darwin
+hugo.linux
+
+# Temporary lock file while building
+/.hugo_build.lock
\ No newline at end of file
diff --git a/archetypes/default.md b/archetypes/default.md
new file mode 100644
index 0000000..25b6752
--- /dev/null
+++ b/archetypes/default.md
@@ -0,0 +1,5 @@
++++
+date = '{{ .Date }}'
+draft = true
+title = '{{ replace .File.ContentBaseName "-" " " | title }}'
++++
diff --git a/assets/img/karsttech_logo_vert.png b/assets/img/karsttech_logo_vert.png
new file mode 100644
index 0000000..8854f06
Binary files /dev/null and b/assets/img/karsttech_logo_vert.png differ
diff --git a/assets/img/sd_eye_icon.webp b/assets/img/sd_eye_icon.webp
new file mode 100644
index 0000000..72b8f41
Binary files /dev/null and b/assets/img/sd_eye_icon.webp differ
diff --git a/config/_default/hugo.toml b/config/_default/hugo.toml
new file mode 100644
index 0000000..8c35e7a
--- /dev/null
+++ b/config/_default/hugo.toml
@@ -0,0 +1,34 @@
+# -- Site Configuration --
+# Refer to the theme docs for more details about each of these parameters.
+# https://jpanther.github.io/congo/docs/getting-started/
+
+baseURL = "https://karsttech.com/"
+defaultContentLanguage = "en"
+
+theme = "congo"
+
+enableRobotsTXT = true
+summaryLength = 0
+
+[pagination]
+ pagerSize = 10
+
+[outputs]
+ home = ["HTML", "RSS", "JSON"]
+
+[privacy]
+ [privacy.vimeo]
+ enableDNT = true
+ [privacy.x]
+ enableDNT = true
+ [privacy.youTube]
+ privacyEnhanced = true
+
+[services]
+ [services.x]
+ disableInlineCSS = true
+
+[taxonomies]
+ category = 'categories'
+ series = 'series'
+ tag = 'tags'
\ No newline at end of file
diff --git a/config/_default/languages.en.toml b/config/_default/languages.en.toml
new file mode 100644
index 0000000..1cc1812
--- /dev/null
+++ b/config/_default/languages.en.toml
@@ -0,0 +1,24 @@
+languageCode = "en"
+languageName = "English"
+languageDirection = "ltr"
+weight = 1
+
+title = "KarstTech"
+copyright = "This website is open source. You can find the source code **[here](https://code.karsttech.com/jeremy/karsttech.com)**."
+
+[params]
+ dateFormat = "2 January 2006"
+
+ # mainSections = ["section1", "section2"]
+ description = "KarstTech - DIY Data Science"
+
+[params.author]
+ name = "Jeremy Karst"
+ image = "img/sd_eye_icon.webp"
+ headline = "I see patterns where others see noise"
+ bio = "Seeming smart is easy when you learn for fun."
+ links = [
+ { email = "mailto:DataScienceDIY@proton.me" },
+ { github = "https://code.karsttech.com" },
+ { youtube = "https://youtube.com/channel/UC5FzabvDq9SJQJi8ryLUX9g"},
+ ]
diff --git a/config/_default/markup.toml b/config/_default/markup.toml
new file mode 100644
index 0000000..c5449fc
--- /dev/null
+++ b/config/_default/markup.toml
@@ -0,0 +1,13 @@
+# -- Markup --
+# These settings are required for the theme to function.
+
+[goldmark]
+[goldmark.renderer]
+ unsafe = true
+
+[highlight]
+ noClasses = false
+
+[tableOfContents]
+ startLevel = 2
+ endLevel = 4
diff --git a/config/_default/menus.en.toml b/config/_default/menus.en.toml
new file mode 100644
index 0000000..4ff169b
--- /dev/null
+++ b/config/_default/menus.en.toml
@@ -0,0 +1,42 @@
+# -- Main Menu --
+# The main menu is displayed in the header at the top of the page.
+# Acceptable parameters are name, pageRef, page, url, title, weight.
+#
+# The simplest menu configuration is to provide:
+# name = The name to be displayed for this menu link
+# pageRef = The identifier of the page or section to link to
+#
+# By default the menu is ordered alphabetically. This can be
+# overridden by providing a weight value. The menu will then be
+# ordered by weight from lowest to highest.
+
+[[main]]
+ name = "Professional Projects"
+ pageRef = "professional-projects"
+ weight = 10
+
+[[main]]
+ name = "Personal Blog"
+ pageRef = "personal-blog"
+ weight = 20
+
+[[main]]
+ identifier = "search"
+ weight = 99
+ [main.params]
+ action = "search"
+
+# [[main]]
+# identifier = "locale"
+# weight = 100
+# [main.params]
+# action = "locale"
+
+# -- Footer Menu --
+# The footer menu is displayed at the bottom of the page, just before
+# the copyright notice. Configure as per the main menu above.
+
+# [[footer]]
+# name = "Tags"
+# pageRef = "tags"
+# weight = 10
diff --git a/config/_default/module.toml b/config/_default/module.toml
new file mode 100644
index 0000000..e90665b
--- /dev/null
+++ b/config/_default/module.toml
@@ -0,0 +1,3 @@
+[hugoVersion]
+ extended = true
+ min = "0.87.0"
diff --git a/config/_default/params.toml b/config/_default/params.toml
new file mode 100644
index 0000000..0812d98
--- /dev/null
+++ b/config/_default/params.toml
@@ -0,0 +1,88 @@
+# -- Theme Options --
+# These options control how the theme functions and allow you to
+# customise the display of your website.
+#
+# Refer to the theme docs for more details about each of these parameters.
+# https://jpanther.github.io/congo/docs/configuration/#theme-parameters
+
+colorScheme = "fire"
+defaultAppearance = "light" # valid options: light or dark
+autoSwitchAppearance = true
+
+defaultThemeColor = "#FFFFFF"
+
+enableSearch = true
+enableCodeCopy = true
+enableImageLazyLoading = true
+enableImageWebp = true
+
+# robots = ""
+fingerprintAlgorithm = "sha256"
+
+[header]
+ layout = "basic" # valid options: basic, hamburger, hybrid, custom
+ # logo = "img/logo.jpg"
+ # logoDark = "img/dark-logo.jpg"
+ showTitle = true
+
+[footer]
+ showCopyright = true
+ showThemeAttribution = false
+ showAppearanceSwitcher = false
+ showScrollToTop = true
+
+[homepage]
+ layout = "page" # valid options: page, profile, custom
+ showRecent = false
+ recentLimit = 5
+
+[article]
+ showDate = true
+ showDateUpdated = false
+ showAuthor = true
+ showBreadcrumbs = false
+ showDraftLabel = true
+ showEdit = false
+ # editURL = "https://github.com/username/repo/"
+ editAppendPath = true
+ showHeadingAnchors = true
+ showPagination = true
+ invertPagination = false
+ showReadingTime = true
+ showTableOfContents = false
+ showTaxonomies = false
+ showWordCount = false
+ showComments = false
+ # sharingLinks = ["facebook", "x-twitter", "mastodon", "pinterest", "reddit", "linkedin", "email", "threads", "telegram", "line", "weibo", "xing", "bluesky"]
+
+[list]
+ showBreadcrumbs = false
+ showSummary = false
+ showTableOfContents = false
+ showTaxonomies = false
+ groupByYear = true
+ paginationWidth = 1
+
+[sitemap]
+ excludedKinds = ["taxonomy", "term"]
+
+[taxonomy]
+ showTermCount = true
+
+[fathomAnalytics]
+ # site = "ABC12345"
+
+[plausibleAnalytics]
+ # domain = "blog.yoursite.com"
+ # event = ""
+ # script = ""
+
+#[umamiAnalytics]
+# site = "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx"
+# region = "eu" # can be either "eu" or "us"
+
+[verification]
+ # google = ""
+ # bing = ""
+ # pinterest = ""
+ # yandex = ""
diff --git a/content/_index.md b/content/_index.md
new file mode 100644
index 0000000..ba89510
--- /dev/null
+++ b/content/_index.md
@@ -0,0 +1,14 @@
+---
+title: "Welcome to KarstTech!"
+description: "KarstTech LLC is a company which provides Technical and Scientific Consulting and Data Science services."
+---
+
+{{< lead >}}
+KarstTech LLC provides Technical and Scientific Consulting and Data Science services
+{{< /lead >}}
+
+{{< figure src="img/karsttech_logo_vert.png" class="m-auto mt-6 max-w-prose" >}}
+
+If you are here for *Business*, check out my professional [Projects]({{< ref "professional-projects" >}})
+
+If you are here for *Pleasure*, head over to my [Blog]({{< ref "personal-blog" >}})
\ No newline at end of file
diff --git a/content/personal-blog/_index.md b/content/personal-blog/_index.md
new file mode 100644
index 0000000..e23d34a
--- /dev/null
+++ b/content/personal-blog/_index.md
@@ -0,0 +1,14 @@
+---
+title: "Personal Blog"
+description: "Projects, Guides, Thoughts and more."
+
+cascade:
+ showEdit: false
+ showSummary: true
+---
+
+{{< lead >}}
+Projects, Guides, Thoughts and More
+{{< /lead >}}
+
+Feel free to browse the listing below, or you can search by [tags]({{< ref "tags" >}}), or [topics]({{< ref "categories" >}}).
diff --git a/content/personal-blog/first-post/KarstTech_v2.1_Cube_Only_feature.png b/content/personal-blog/first-post/KarstTech_v2.1_Cube_Only_feature.png
new file mode 100644
index 0000000..df83c65
Binary files /dev/null and b/content/personal-blog/first-post/KarstTech_v2.1_Cube_Only_feature.png differ
diff --git a/content/personal-blog/first-post/index.md b/content/personal-blog/first-post/index.md
new file mode 100644
index 0000000..84a3adc
--- /dev/null
+++ b/content/personal-blog/first-post/index.md
@@ -0,0 +1,19 @@
++++
+title = 'Facing my fears'
+date = 2025-02-27T07:07:07-05:00
+draft = false
+categories = ['thoughts']
+tags = ['hugo', 'web']
++++
+
+## Social anxiety or introvert, chicken or egg?
+
+I have been an introvert for as long as I can remember, and while I don't want this to turn into a self-help post, suffice it to say that I have never made a personal website primarily because it makes the hairs on the back of my neck stand up. Let today be the day that I face my fears and finally launch this site.
+
+I have made websites using everything from wordpress to frameworks like Django, and even one for professional work that despite being very complex, was entirely from scratch with HTML/CSS/JS (for reasons that are not worth going into here). Until now, I have never made a personal website, but with the launch of my new company, **KarstTech**, maybe I can kill two birds with one stone.
+
+Markdown has been my go-to format for note taking for years now. While searching for an easy way to make this website, I stumbled upon [Hugo](https://gohugo.io), a static site generator that is written in Go. It boasts speed, security, and a great templating engine which uses markdown to structure content. For the very short time that I have been using it, it seems like the perfect fit for my needs.
+
+This website will be a central place to share my projects, thoughts, and ideas, as well as a landing page for KarstTech. If you would like to see how it is built, I decided to make the source code available at [code.karsttech.com](https://code.karsttech.com).
+
+
\ No newline at end of file
diff --git a/content/personal-blog/markdown-cheetsheet.md/index.md b/content/personal-blog/markdown-cheetsheet.md/index.md
new file mode 100644
index 0000000..2bbb201
--- /dev/null
+++ b/content/personal-blog/markdown-cheetsheet.md/index.md
@@ -0,0 +1,429 @@
++++
+title = 'Markdown Cheatsheet'
+date = 2025-02-27T07:15:18-05:00
+draft = false
+categories = ['references']
+tags = ['markdown']
++++
+
+{{< lead >}}
+This cheatsheet is intended as a quick reference and showcase of the markdown syntax used in Hugo and Congo.
+{{< /lead >}}
+The majority of these markdown examples are copied from [QOwnNotes](https://www.qownnotes.org/), [Hugo](https://gohugo.io/) and [Congo](https://jpanther.github.io/congo)
+
+## Headers
+
+```markdown
+# H1
+## H2
+### H3
+#### H4
+##### H5
+###### H6
+```
+
+# H1
+## H2
+### H3
+#### H4
+##### H5
+###### H6
+
+## Underline
+```markdown
+Underlined
+```
+Underlined
+
+
+
+## Emphasis
+
+```markdown
+Emphasis, aka italics, with *asterisks*.
+
+Strong emphasis, aka bold, with **asterisks**.
+```
+
+Emphasis, aka italics, with *asterisks*.
+
+Strong emphasis, aka bold, with **asterisks**.
+
+
+## Lists
+```markdown
+### Ordered List
+
+1. First item
+2. Second item
+3. Third item
+
+### Unordered List
+
+- List item
+- Another item
+- And another item
+
+### Nested list
+
+- Fruit
+ - Apple
+ - Orange
+ - Banana
+- Dairy
+ - Milk
+ - Cheese
+```
+
+
+### Ordered List
+
+1. First item
+2. Second item
+3. Third item
+
+### Unordered List
+
+- List item
+- Another item
+- And another item
+
+### Nested list
+
+- Fruit
+ - Apple
+ - Orange
+ - Banana
+- Dairy
+ - Milk
+ - Cheese
+
+
+## Links
+
+There are two ways to create links.
+
+```markdown
+[I'm an inline-style link](https://www.google.com)
+
+[I'm an inline-style link with title](https://www.google.com "Google's Homepage")
+
+[You can use numbers for reference-style link definitions][1]
+
+URLs and URLs in angle brackets will automatically get turned into links in the preview.
+http://www.example.com or
+
+[1]: https://www.qownnotes.org
+```
+
+[I'm an inline-style link](https://www.google.com)
+
+[I'm an inline-style link with title](https://www.google.com "Google's Homepage")
+
+[You can use numbers for reference-style link definitions][1]
+
+URLs and URLs in angle brackets will automatically get turned into links in the preview.
+http://www.example.com or
+
+[1]: https://www.qownnotes.org
+
+
+## Inline code and code blocks
+
+```markdown
+Inline `code` has `backticks around` it.
+```
+
+Inline `code` has `backticks around` it.
+
+Blocks of code are either fenced by lines with three backticks, or are indented with four spaces.
+
+### 4-Spaces fence
+
+```markdown
+ s = "Code with space indent"
+ print s
+```
+
+ s = "Code with space indent"
+ print s
+
+### Backtick fence
+
+ ```
+ Code goes here
+ Code goes here
+ ```
+
+```
+Code goes here
+Code goes here
+```
+
+### Backtick fence with code highlighting
+
+```bash
+# I am a comment
+cd Notes
+```
+
+## Tables
+
+Tables aren't part of the core Markdown spec, but many interpreters support them.
+
+```markdown
+Colons can be used to align columns.
+
+| Tables | Are | Cool |
+| ------------- |:-------------:| -----:|
+| col 3 is | right-aligned | $1600 |
+| col 2 is | centered | $12 |
+| zebra stripes | are neat | $1 |
+
+There must be at least 3 dashes separating each header cell.
+The outer pipes (|) are optional, and you don't need to make the
+raw Markdown line up prettily. You can also use inline Markdown.
+
+Markdown | Less | Pretty
+--- | --- | ---
+*Still* | `renders` | **nicely**
+1 | 2 | 3
+```
+
+Colons can be used to align columns.
+
+| Tables | Are | Cool |
+| ------------- |:-------------:| -----:|
+| col 3 is | right-aligned | $1600 |
+| col 2 is | centered | $12 |
+| zebra stripes | are neat | $1 |
+
+There must be at least 3 dashes separating each header cell. The outer pipes (|) are optional, and you don't need to make the raw Markdown line up prettily. You can also use inline Markdown.
+
+Markdown | Less | Pretty
+--- | --- | ---
+*Still* | `renders` | **nicely**
+1 | 2 | 3
+
+
+## Blockquotes
+
+```markdown
+> Blockquotes are very handy in email to emulate reply text.
+> This line is part of the same quote.
+
+Quote break.
+
+> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
+```
+
+> Blockquotes are very handy in email to emulate reply text.
+> This line is part of the same quote.
+
+Quote break.
+
+> This is a very long line that will still be quoted properly when it wraps. Oh boy let's keep writing to make sure this is long enough to actually wrap for everyone. Oh, you can *put* **Markdown** into a blockquote.
+
+
+## Line Breaks
+
+```markdown
+Here's a line for us to start with.
+
+This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
+
+This line is also begins a separate paragraph, but...
+This line is only separated by two trailing spaces and a single newline, so it's a separate line in the *same paragraph*.
+```
+
+Here's a line for us to start with.
+
+This line is separated from the one above by two newlines, so it will be a *separate paragraph*.
+
+This line is also begins a separate paragraph, but...
+This line is only separated by two trailing spaces and a single newline, so it's a separate line in the *same paragraph*.
+
+## Comments
+
+```markdown
+[comment]: # (This comment will not appear in the preview)
+```
+
+## Checkbox lists
+
+```markdown
+- [x] done
+- [ ] todo
+```
+
+- [x] done
+- [ ] todo
+
+---
+
+# The following markdown syntax is Hugo or Congo specific
+
+## Alert box
+```markdown
+{{* alert "x-twitter" */>}}
+**Warning!** This action is destructive!
+{{* /alert */>}}
+```
+
+{{< alert "x-twitter" >}}
+**Warning!** This action is destructive!
+{{< /alert >}}
+
+## Badges
+```markdown
+{{* badge */>}}
+New article!
+{{* /badge */>}}
+```
+
+{{< badge >}}
+New article!
+{{< /badge >}}
+
+
+## Buttons
+```markdown
+{{* button href="#button" target="_self" */>}}
+Call to action
+{{* /button */>}}
+```
+
+{{< button href="#button" target="_self" >}}
+Call to action
+{{< /button >}}
+
+
+## Charts
+```markdown
+{{* chart */>}}
+type: 'bar',
+data: {
+ labels: ['Tomato', 'Blueberry', 'Banana', 'Lime', 'Orange'],
+ datasets: [{
+ label: '# of votes',
+ data: [12, 19, 3, 5, 3],
+ }]
+}
+{{* /chart */>}}
+```
+
+{{< chart >}}
+type: 'bar',
+data: {
+ labels: ['Tomato', 'Blueberry', 'Banana', 'Lime', 'Orange'],
+ datasets: [{
+ label: '# of votes',
+ data: [12, 19, 3, 5, 3],
+ }]
+}
+{{< /chart >}}
+
+
+## Figures
+```markdown
+")
+```
+")
+
+
+## Icon
+```markdown
+{{* icon "github" */>}}
+```
+
+{{< icon "github" >}}
+
+
+## KaTex / LaTex
+```markdown
+{{* katex */>}}
+\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
+```
+
+{{< katex >}}
+\\(f(a,b,c) = (a^2+b^2+c^2)^3\\)
+
+
+## Lead
+```markdown
+{{* lead */>}}
+When life gives you lemons, make lemonade.
+{{* /lead */>}}
+```
+
+{{< lead >}}
+When life gives you lemons, make lemonade.
+{{< /lead >}}
+
+
+## Mermaid Figures
+```markdown
+{{* mermaid */>}}
+graph LR;
+A[Lemons]-->B[Lemonade];
+B-->C[Profit]
+{{* /mermaid */>}}
+```
+
+{{< mermaid >}}
+graph LR;
+A[Lemons]-->B[Lemonade];
+B-->C[Profit]
+{{< /mermaid >}}
+
+
+## Author Profile
+```markdown
+{{* profile align="center" */>}}
+```
+
+{{< profile align="center" >}}
+
+
+## Code block with Hugo's internal highlight shortcode
+```markdown
+{{* highlight html "linenos=table,hl_lines=4 7-9" */>}}
+
+
+
+
+
+ Example HTML5 Document
+
+
+
+
+
+{{< /highlight >}}
+
+
+## Ignore shortcode so that you can create Hugo documentation!
+```markdown
+{{*/* yourshortcode */*/>}}
+```
+
+{{* yourshortcode */>}}
+
+
+Credit: [markdown-here](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)
+License: [CC-BY](https://creativecommons.org/licenses/by/3.0/)
diff --git a/content/personal-blog/markdown-cheetsheet.md/markdown-mark-white-feature.svg b/content/personal-blog/markdown-cheetsheet.md/markdown-mark-white-feature.svg
new file mode 100644
index 0000000..85f998b
--- /dev/null
+++ b/content/personal-blog/markdown-cheetsheet.md/markdown-mark-white-feature.svg
@@ -0,0 +1,9 @@
+
+
+
+
diff --git a/content/professional-projects/_index.md b/content/professional-projects/_index.md
new file mode 100644
index 0000000..a28c0b2
--- /dev/null
+++ b/content/professional-projects/_index.md
@@ -0,0 +1,16 @@
+---
+title: "Professional Projects"
+description: "KarstTech Public Projects"
+
+cascade:
+ showEdit: false
+ showSummary: true
+---
+
+{{< lead >}}
+Public Projects, Published Works, and More
+{{< /lead >}}
+
+Only projects which are not confidential or otherwise protected information will be listed here.
+
+Feel free to browse the listing below, or you can search by [tags]({{< ref "tags" >}}), or [topics]({{< ref "categories" >}}).
diff --git a/content/professional-projects/usm-magnetics/12 Pipe.png b/content/professional-projects/usm-magnetics/12 Pipe.png
new file mode 100644
index 0000000..4330016
Binary files /dev/null and b/content/professional-projects/usm-magnetics/12 Pipe.png differ
diff --git a/content/professional-projects/usm-magnetics/Cylindrical Magnet.png b/content/professional-projects/usm-magnetics/Cylindrical Magnet.png
new file mode 100644
index 0000000..2b2f68c
Binary files /dev/null and b/content/professional-projects/usm-magnetics/Cylindrical Magnet.png differ
diff --git a/content/professional-projects/usm-magnetics/index.md b/content/professional-projects/usm-magnetics/index.md
new file mode 100644
index 0000000..3b894a7
--- /dev/null
+++ b/content/professional-projects/usm-magnetics/index.md
@@ -0,0 +1,14 @@
++++
+title = 'USM Magnetics'
+date = 2025-02-27T07:17:00-05:00
+draft = false
+categories = ['references']
+tags = ['USM', 'magnetics', 'data science', 'KarstTech', 'UUV']
++++
+
+Several months ago I was referred to the University of Southern Mississippi [Marine Research Center](https://www.usm.edu/ocean-enterprise/marine-research-center.php) by a coworker. They wanted some assistance from someone with a Physics and Data Science background to work on an autonomous underwater vehicle for the purpose of developing a magnetic sensing platform.
+
+The work sounded interesting, so I joined the team as a contractor. Fast forward several months, and we are making fantastic progress!
+
+The work began with using data acquired from high quality magnetic sensors including from [QUSPIN](https://quspin.com/), and processing the data to detect magnetic objects of interest. For those without a background in physics, you should know that magnetic fields fall off as the cube of the distance from the source. This makes for a much more challenging problem since the size of the signals we are looking for are TINY compared to the noise in the data once we get to any significant distance from the source. This is made even more difficult by the fact that the Earth's magnetic field is a very strong signal, which changes from the perspective of the vector magnetic sensor as the vehicle moves. The final wrinkle is that the targets of interest are passive ferromagnetic objects, meaning their field is created by becoming magnetized by the Earth's magnetic field, and so they are extremely weak fields when measured at a distance.
+