diff --git a/.releaserc.json b/.releaserc.json
index aa75008..21a4558 100644
--- a/.releaserc.json
+++ b/.releaserc.json
@@ -14,7 +14,7 @@
{ "type": "ci", "section": "CI/CD" },
{ "type": "docs", "section": "Documentation" },
{ "type": "refactor", "section": "Refactor" },
- { "type": "chore", "section": "Chores" }
+ { "type": "chore", "hidden": true }
]
},
"plugins": [
@@ -31,11 +31,11 @@
{ "type": "deps", "release": "minor" },
{ "type": "new", "release": "minor" },
{ "type": "fix", "release": "patch" },
- { "type": "build", "release": "patch" },
- { "type": "ci", "release": "patch" },
- { "type": "chore", "release": "patch" },
- { "type": "docs", "release": "patch" },
- { "type": "refactor", "release": "patch" }
+ { "type": "build", "release": false },
+ { "type": "ci", "release": false },
+ { "type": "chore", "release": false },
+ { "type": "docs", "release": false },
+ { "type": "refactor", "release": false }
]
}
],
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 5b8ee41..5f58d2c 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,31 +1,3 @@
-## [1.1.0](https://ssh.git.badblocks.dev/badbl0cks/portfolio/compare/v1.0.1...v1.1.0) (2025-08-15)
-
-### New Features
-
-* allow project card to show on-the-way button for projects not yet uploaded ([d2e0fbd](https://ssh.git.badblocks.dev/badbl0cks/portfolio/commit/d2e0fbdd737b42182af9b54adc77310749ccf794))
-
-### Bug Fixes
-
-* add around the View My Work button. update wording on ([6fd9f47](https://ssh.git.badblocks.dev/badbl0cks/portfolio/commit/6fd9f4732566bf9366cd05a7abf4310dea3fbe16))
-
-### Refactor
-
-* change button text to be more clear ([ed6188b](https://ssh.git.badblocks.dev/badbl0cks/portfolio/commit/ed6188bc759cbf0ab4c1f2ad5a548d8ea31dd7a5))
-
-### Chores
-
-* merge staging changes for next release ([48f5e7b](https://ssh.git.badblocks.dev/badbl0cks/portfolio/commit/48f5e7b46c1e1a318d1eca26ab1d9365d1acdbcc))
-
-## [1.0.1](https://ssh.git.badblocks.dev/badbl0cks/portfolio/compare/v1.0.0...v1.0.1) (2025-08-15)
-
-### CI/CD
-
-* don't hide or ignore any commit types, at least bump the patch version if ([185dc5f](https://ssh.git.badblocks.dev/badbl0cks/portfolio/commit/185dc5f66267d5ab8446ab51e03f051a4210e0b3))
-
-### Chores
-
-* merge staging changes for next release ([cea509a](https://ssh.git.badblocks.dev/badbl0cks/portfolio/commit/cea509a0cee89047e9b261c87906cd05349ca1fd))
-
## 1.0.0 (2025-08-15)
### New Features
diff --git a/README.md b/README.md
index 7065355..2d2fe62 100644
--- a/README.md
+++ b/README.md
@@ -5,12 +5,12 @@ A sweet little portfolio site with some absolutely ridiculous SMS shenanigans bu
## β¨ The Good Stuff
- π **Night mode everything** - DaisyUI components that won't burn your eyeballs
-- π± **SMS contact form** - Because I get wayyyyy too many emails already
-- π **Snazzy animations** - ScrollReveal, Typed.js, and more doing their thang
+- π± **SMS contact form** - Because I get wayyy too many emails already
+- π **Snazzy animations** - ScrollReveal + Typed.js doing their thang
- π³ **Zero-downtime deploys** - Blue-green magic with Docker & HAProxy
-- π§ **Overengineered infrastructure** - If you didn't spend a week working on a fun but useless feature that will never be used, did you really do any development?
+- π§ **Overengineered infrastructure** - We like to do things the hard way over here
-## πββοΈ Wanna Try It Out?
+## πββοΈ Getting Started
```bash
# Grab the dependencies
@@ -38,9 +38,9 @@ bun run generate
## π Contact Form Wizardry
-Two-step verification anti-abuse dance: drop your message β prove you're human with SMS β message gets yeeted to my phone via some very questionable infrastructure choices!
+Two-step verification dance: drop your message β prove you're human with SMS β message gets yeeted to my phone via some questionable infrastructure choices.
-Rate-limited because spam just sucks!
+Rate-limited because spam just sucksssss! π‘οΈ
## ποΈ Infrastructure Tomfoolery
@@ -57,8 +57,8 @@ Here's where things get ~completely~ unhinged:
I'm running the `android-sms-gateway` app on a completely deranged setup:
- **Hardware:** Pixel 1 with the battery surgically removed (no spicy pillows please)
- **Power:** Permanently plugged into the wall like some kind of cursed landline
-- **Network:** Hardwired ethernet via attached USB hub (WhyFight with WiFi?)
-- **Purpose:** Sits there patiently 24/7 just waiting to send OTPs and forward your messages to my actual phone
+- **Network:** Hardwired ethernet via USB-C adapter ("WhyFight" with WiFi?)
+- **Purpose:** Sits there 24/7 just waiting to send OTPs and forward your messages to my actual phone
The whole contraption lives on my home network and the VPS reaches it through a WireGuard tunnel because apparently I enjoy making simple things complicated just to save $2 a month!
@@ -67,83 +67,84 @@ The whole contraption lives on my home network and the VPS reaches it through a
This repo follows a three-branch strategy with some absolutely bonkers automated promotions because manually managing branches is for chumps:
- **`dev`** - Where the magic happens! All new features and fixes go here
-- **`staging`** - Integration testing playground, auto-promoted from dev daily at 04:00 PST via scheduler
-- **`main`** - Production branch, gets promoted from staging weekly on Sundays at 05:00 PST via scheduler
+- **`staging`** - Integration testing playground, auto-promoted from dev daily at 13:00 UTC via scheduler
+- **`main`** - Production branch, gets promoted from staging weekly on Sundays at 14:00 UTC via scheduler
### The Repository Setup
-It's a bit of a funky setup here:
-- **Primary repo:** My Forgejo server (I obviously like self-hosting things)
-- **GitHub Mirror:** Forgejo repo configured to push-only mirror to Github for CI/CD and visibility
+We're running a bit of a funky setup here:
+- **Primary repo:** Git origin (configurable - can be self-hosted, GitHub, etc.)
+- **GitHub Mirror:** Optional push-only mirror for CI/CD and visibility
- **CI/CD:** GitHub Actions (triggered by pushes or scheduled workflows)
-So the workflow is: do some coding, commit and push to my Forgejo instance β mirror to GitHub β GitHub Actions does the heavy lifting so my little VPS doesn't have to suffer so much.
+So the workflow is: push to Git origin β (optional mirror to GitHub) β GitHub Actions does the heavy lifting.
### Branch Promotion Dance π
**Daily (dev β staging):**
-- Wannabe robot overlord wakes up at 04:00 PST every day
-- Checks if dev has new commits (because we're not doing all this work for nothing!)
+- Robot overlord wakes up at 13:00 UTC every day
+- Checks if dev has new commits (because we're not animals)
- Actually validates the build passed via GitHub API (fancy!)
- Fast-forward merge to staging (keeps git history from becoming spaghetti)
+- Supports `[skip ci]` in commit messages for when you inevitably break something
- Manual "YOLO deploy anyway" button available
**Weekly (staging β main):**
-- Sunday funday at 05:00 PST for production releases
+- Sunday funday at 14:00 UTC for production releases
- Runs semantic-release for proper versioning (we're not completely chaotic)
-- Seduce the GitHub API with a token for build status
-- SSH-signed commits because I <3 cryptography
+- Some gnarly branch gymnastics to keep everything synchronized
+- SSH-signed commits because we pretend to care about security
- Manual panic button also available
### π€ The 5-Workflow CI/CD Circus
-Because apparently one workflow is never enough, I've got a whole collection of automations:
+Because apparently one workflow wasn't enough, we've got a whole circus of automation:
-1. **`build.yml`** - The overachiever that builds everything and gets good grades
+1. **`build.yml`** - The overachiever that builds everything
- Gets triggered by basically anything that moves
- - Smart enough to skip builds when we already did the work (lazy!)
- - Hoards artifacts for 30 days like a digital packrat
- - Has more caching layers than an onion-flavored wedding cake
+ - Smart enough to skip builds when we already did the work (lazy efficiency!)
+ - Hoards artifacts for 2 days like a digital packrat
+ - Has more caching layers than a wedding cake
2. **`deploy.yml`** - The deployment minion (does what it's told)
- Gets bossed around by the other workflows
- Juggles blue-green deployments without dropping anything
- Speaks fluent SSH and WireGuard
- - Downloads artifacts faster than you can say "docker load"
+ - Downloads artifacts faster than you can say "containerization"
3. **`stage.yml`** - The daily grind automation
- Wakes up every day to promote dev β staging
- Actually checks if builds passed (responsible adult behavior)
- - Signs commits with SSH keys because I'm fancy like that
+ - Signs commits with SSH keys because we're fancy like that
- Has a "force" option for when things go sideways
-4. **`release.yml`** - The weekly release partayyyy
+4. **`release.yml`** - The weekly release party host
- Shows up every Sunday with semantic versioning
- Does some serious git branch yoga to keep everything aligned
- - Maintains that linear history we all pretend to care about but never look at
+ - Maintains that linear history we all pretend to care about
5. **`scheduler-*.yml`** - The workflow orchestrators
- Exists because GitHub has weird scheduling quirks
- - Makes sure the workflow runs from the right branch
+ - Makes sure the right code runs from the right branch
- Basically the puppet masters of this whole operation
## π’ Deployment Shenanigans
-Pushes to `staging` or `main` branches trigger some absolutely wild blue-green deployment wizardry with more caching than your browser!
+Pushes to `staging` or `main` branches trigger some absolutely wild blue-green deployment wizardry with more caching than your browser history!
### Blue-Green Magic β¨
1. **Build Phase:** Smart enough to skip rebuilding stuff we already built (because efficiency is sexy)
-3. **Configure Phase:** Update HAProxy's config, then call it's cell phone and SIG_HUP!
-3. **Deploy Phase:** Download cached goodies and poke the new containers to make sure they're alive
-4. **Cleanup Phase:** Yeet the old containers into the great /dev/null
-5. **Artifact Hoarding:** Keeps old build artifacts much longer than you'd ever need (30 days)
-6. **Moon Phases:** π π π π π π π π π
+2. **Deploy Phase:** Download cached goodies and poke the new containers to make sure they're alive
+3. **Switch Phase:** HAProxy does the old switcheroo faster than a shell game
+4. **Cleanup Phase:** Yeet the old containers into the digital void
+5. **Artifact Hoarding:** Keeps build artifacts for 30 days like a digital packrat with commitment issues
+6. **Moon Phases:** π π π π π π π π π (for spiritual alignment)
-### GitHub Secrets/.env Setup
-Deployments generate the needed .env from GitHub secrets, so make sure to slap some secrets up first or copy the .env.example file and edit!
+### GitHub Secrets Setup
+Deployments generate the needed .env from GitHub secrets, so make sure to slap some secrets up first!
### WireGuard Setup
-The stack is rocking the popular [gluetun](https://github.com/qdm12/gluetun) container, so just set up your WIREGUARD_ environment variables with your Github secrets!
+The stack is rocking gluetun, so just set up your WIREGUARD_ environment variables in Github secrets:
## π Security Fortress
@@ -152,7 +153,7 @@ The stack is rocking the popular [gluetun](https://github.com/qdm12/gluetun) con
- π’ TOTP phone verification + rate limiting
- π€ ASCII-only validation (No spammy weird characters please!)
-## π Note to Self: When Things Go Wrong
+## π When Things Go Wrong
```bash
# Check if containers are actually alive
@@ -186,4 +187,4 @@ This project is licensed under **AGPL 3.0 only** - see the [LICENSE](LICENSE) fi
---
-*Built with β€οΈ and lots of β! (Wow, if you've read this far, and you're hiring, just hire me!)*
+*Built with β€οΈ and lots of β! (Sheesh, if you've read this far, just hire me, please!)*
diff --git a/app/components/ContactForm.vue b/app/components/ContactForm.vue
index 33b2627..eb4531d 100644
--- a/app/components/ContactForm.vue
+++ b/app/components/ContactForm.vue
@@ -145,7 +145,7 @@
:disabled="!isVerified || isSendingMessage || isMessageSent"
>
- Send Me a Text!
+ Text Me! (Rob βΊοΈ)
diff --git a/app/components/ProjectCard.vue b/app/components/ProjectCard.vue
index a61ad64..49ae0c8 100644
--- a/app/components/ProjectCard.vue
+++ b/app/components/ProjectCard.vue
@@ -18,9 +18,6 @@
>
Source Code
-
diff --git a/app/pages/index.vue b/app/pages/index.vue
index 6109a34..c10526b 100644
--- a/app/pages/index.vue
+++ b/app/pages/index.vue
@@ -8,9 +8,7 @@
Hi, I'm Rob!
I'm
- Hi! I'm a passionate and creative web developer with a knack for
+ Hiya! I'm a passionate and creative web developer with a knack for
building beautiful and functional websites. I love learning new
technologies and I'm always looking for exciting projects to work
on.
@@ -54,44 +52,34 @@
Works in Progress
+ Current Projects
- Neat Things I've Done
-
+ Past Projects