Compare commits

...

164 commits
v0.0.1 ... main

Author SHA1 Message Date
592df7d71d Update .forgejo/workflows/deploy.yaml
All checks were successful
Deploy to Web Server / deploy (push) Successful in 2m7s
2025-06-04 14:55:07 +10:00
85a95c3812 Update .forgejo/workflows/deploy.yaml
Some checks failed
Deploy to Web Server / deploy (push) Has been cancelled
2025-06-04 14:51:00 +10:00
9b0c82834c Update .forgejo/workflows/deploy.yaml
Some checks failed
Deploy to Web Server / deploy (push) Failing after 1s
2025-06-04 14:50:24 +10:00
b54d89b92b Update .forgejo/workflows/deploy.yaml
Some checks failed
Deploy to Web Server / deploy (push) Failing after 10m12s
2025-06-04 14:29:23 +10:00
2de9d62b76 Try using bazzite-dx for deployment
Some checks failed
Deploy to Web Server / deploy (push) Failing after -2s
2025-06-04 14:28:41 +10:00
66f30e0645
perf(index): move Amemoia's button to fallback smaller button
All checks were successful
Deploy to Web Server / deploy (push) Successful in 2m10s
2025-06-01 21:36:39 +10:00
1c5be72e77
fix(index): fix avif animated iamges not being usable 2025-06-01 21:36:16 +10:00
ff45976e1f
feat: prepare alternative custom button for Amemoia for performance reasons in the future
All checks were successful
Deploy to Web Server / deploy (push) Successful in 2m25s
2025-06-01 21:26:18 +10:00
d47996b308
perf(FriendLink*): add AVIF format to buttons 2025-06-01 21:25:38 +10:00
e14e66bcf9
perf(index): change Amemoia's button to FriendLinkLow 2025-06-01 21:23:53 +10:00
2bdd0f351b
bump: version 0.1.0 → 0.2.0
All checks were successful
Deploy to Web Server / deploy (push) Successful in 2m18s
2025-05-30 17:28:28 +10:00
17cbf928ef
feat(Aria-Board): add 4 new imaged to the mood board of motoko kusanagi 2025-05-30 17:28:06 +10:00
713ee6ef64
refactor(old/): remove old unused version of website 2025-05-30 17:09:42 +10:00
be256fc00e
build(pnpm): bump deps
All checks were successful
Deploy to Web Server / deploy (push) Successful in 2m53s
2025-05-30 17:03:11 +10:00
7c40abc424
bump: version 0.0.1 → 0.1.0
All checks were successful
Deploy to Web Server / deploy (push) Successful in 2m25s
2025-05-27 20:11:09 +10:00
ec39af67d7
feat(.cz.toml): add commitizen config 2025-05-27 20:11:05 +10:00
a95fde9df7
perf(NavHeader): reduce background quality a smidge 2025-05-27 20:07:54 +10:00
203414e26e
perf(index): move all FriendLinks over to high variant
All checks were successful
Deploy to Web Server / deploy (push) Successful in 2m24s
2025-05-27 20:00:21 +10:00
eec691aac0
feat(FriendLink): add high variant 2025-05-27 19:59:47 +10:00
83d634817a
perf(index): try 0x5066's button with FriendLinkLow 2025-05-27 19:53:55 +10:00
de43493c31
perf(index): move 0x5066's button to FriendLinkMid for further file size improvements
All checks were successful
Deploy to Web Server / deploy (push) Successful in 2m29s
2025-05-27 19:49:39 +10:00
bf50b23910
feat(<FriendLink>): add two lower quality version of FriendLink 2025-05-27 19:48:27 +10:00
fc4d13ed3c
perf(index): Swap 0x5066's button to v2 for smaller file size 2025-05-27 19:44:31 +10:00
d877b6974a
Bump deps
All checks were successful
Deploy to Web Server / deploy (push) Successful in 2m36s
2025-05-25 23:55:26 +10:00
4b207959be
Work on the storage blog post a little 2025-05-25 23:54:22 +10:00
bf3fcde4c7
Link keyoxide
All checks were successful
Deploy to Web Server / deploy (push) Successful in 35s
2025-05-21 15:48:57 +10:00
98f86ef576
List deltachat support
All checks were successful
Deploy to Web Server / deploy (push) Successful in 35s
2025-05-21 14:04:23 +10:00
0a5d5ca92d
Add start draft for post 4
All checks were successful
Deploy to Web Server / deploy (push) Successful in 34s
2025-05-21 02:03:44 +10:00
fce732ee41
Add the ability to support hidden draft posts 2025-05-21 02:03:33 +10:00
7548baa72d
Go back to scp
All checks were successful
Deploy to Web Server / deploy (push) Successful in 33s
2025-05-19 20:30:30 +10:00
6d3b723e3c
fix rsync perms
Some checks failed
Deploy to Web Server / deploy (push) Failing after 9s
2025-05-19 20:25:14 +10:00
9ba8c0ca48
Raw rsync use
Some checks failed
Deploy to Web Server / deploy (push) Failing after 2s
2025-05-19 20:21:01 +10:00
95866a046b
add -y
Some checks failed
Deploy to Web Server / deploy (push) Failing after 5s
2025-05-19 20:17:05 +10:00
48eff602bc
add rsync install step
Some checks failed
Deploy to Web Server / deploy (push) Failing after 10s
2025-05-19 20:10:08 +10:00
7bca28e484
Try rsync deploy
Some checks failed
Deploy to Web Server / deploy (push) Failing after 14s
2025-05-19 20:06:18 +10:00
f8207b4e07
Lower scp verbosity
All checks were successful
Deploy to Web Server / deploy (push) Successful in 27s
2025-05-19 19:57:07 +10:00
ed552c5084
Bump @iconify-json/tabler
All checks were successful
Deploy to Web Server / deploy (push) Successful in 36s
2025-05-19 19:53:03 +10:00
7cdee5396d
Add carbon rating badge 2025-05-19 19:52:19 +10:00
1555212dbd
go back to local network deploy & upgrade node
All checks were successful
Deploy to Web Server / deploy (push) Successful in 1m37s
2025-05-16 23:41:02 +10:00
a7bf919a3d
Add tun device to fix tailsacled
Some checks failed
Deploy to Web Server / deploy (push) Failing after 2m36s
2025-05-16 23:35:35 +10:00
96bba4677d
Move checkout back to the top
Some checks failed
Deploy to Web Server / deploy (push) Failing after 2m35s
2025-05-16 23:28:29 +10:00
d7bb294622
node:23-bookworm
Some checks failed
Deploy to Web Server / deploy (push) Failing after 59s
2025-05-16 23:19:45 +10:00
a60d770461
Move node install to the top
Some checks failed
Deploy to Web Server / deploy (push) Failing after 27s
2025-05-16 23:16:02 +10:00
1a1f6ea39d
checkout later in the workflow
Some checks failed
Deploy to Web Server / deploy (push) Failing after 28s
2025-05-16 23:14:41 +10:00
54c676b1bd
try debian container image
Some checks failed
Deploy to Web Server / deploy (push) Failing after 49s
2025-05-16 23:12:46 +10:00
1df985e246
Disablo tailscale cache
Some checks failed
Deploy to Web Server / deploy (push) Failing after 2m31s
2025-05-16 22:53:10 +10:00
c8c13c8c9e
Remove sudo group section
Some checks failed
Deploy to Web Server / deploy (push) Failing after 2m31s
2025-05-16 22:49:16 +10:00
5dbbf7d550
Cache pnpm deps 2025-05-16 22:49:04 +10:00
865798bf1a
Sudo setup?
Some checks failed
Deploy to Web Server / deploy (push) Failing after 2m26s
2025-05-16 22:42:41 +10:00
fa7ffbe64a
Attempt to deploy from new system over tailscale
Some checks failed
Deploy to Web Server / deploy (push) Failing after 2m27s
2025-05-16 21:56:15 +10:00
06eae936fc
Fix borked pnpm lock file
All checks were successful
Deploy to Web Server / deploy (push) Successful in 40s
2025-05-16 18:54:20 +10:00
b70dce674c
Bump pnpm deps
Some checks failed
Deploy to Web Server / deploy (push) Has been cancelled
2025-05-16 18:53:04 +10:00
ea8d10f1be
Remove shell.nix since I don't use nix anymore
All checks were successful
Deploy to Web Server / deploy (push) Successful in 34s
2025-05-16 18:27:32 +10:00
4cb622a7c5
Try building on 3900X system
All checks were successful
Deploy to Web Server / deploy (push) Successful in 36s
I have mp idea if this will work!
2025-05-16 17:29:11 +10:00
afa4f5489a
Fix links to my git page
All checks were successful
Deploy to Web Server / deploy (push) Successful in 3m47s
2025-05-16 17:27:57 +10:00
fbcb222a60
Bump deps once again
Some checks failed
Deploy to Web Server / deploy (push) Has been cancelled
2025-05-16 17:26:57 +10:00
b934ed6296
Properly remove greetings instead of using comment
Some checks failed
Deploy to Web Server / deploy (push) Has been cancelled
2025-05-16 17:22:52 +10:00
Aria
698b5b8a14
Fix git keys link
All checks were successful
Deploy to Web Server / deploy (push) Successful in 3m58s
2025-05-16 17:18:52 +10:00
Aria
ddc9055800
Replace greetings with important stuff
All checks were successful
Deploy to Web Server / deploy (push) Successful in 3m45s
2025-05-16 17:12:33 +10:00
cd97fabf9d Update .forgejo/workflows/deploy.yaml
All checks were successful
Deploy to Web Server / deploy (push) Successful in 6m26s
2025-05-16 14:54:25 +10:00
7c46749c8b Update .forgejo/workflows/deploy.yaml
Some checks are pending
Deploy to Web Server / deploy (push) Waiting to run
Since I have added another system to the runner list I needed to add a new label specifically for a server able to deploy to the web server. technically both systems should be capable but I had a third system in mind I wanna add and that one will not be able to
2025-05-16 14:50:58 +10:00
77b8fd39bd
Link deploy status badge to git.aria.coffee
All checks were successful
Deploy to Web Server / deploy (push) Successful in 3m50s
2025-05-14 20:55:32 +10:00
2f1e668b94
Test out animated avif support
Some checks failed
Deploy to Web Server / deploy (push) Has been cancelled
2025-05-14 20:53:48 +10:00
a2190f3187
Fix blog post time
All checks were successful
Deploy to Web Server / deploy (push) Successful in 3m50s
2025-05-13 01:47:38 +10:00
0bcba9da9e
Create a post about the new keys!
Some checks failed
Deploy to Web Server / deploy (push) Has been cancelled
2025-05-13 01:46:47 +10:00
a0c01dc4cc
Add screenshot for blog post 3
All checks were successful
Deploy to Web Server / deploy (push) Successful in 3m49s
2025-05-13 01:07:36 +10:00
eb20467cf2
Increase badge size by 3px to match text size
All checks were successful
Deploy to Web Server / deploy (push) Successful in 3m51s
2025-05-11 22:58:32 +10:00
44096a8802
Add workflow status to footer
Some checks failed
Deploy to Web Server / deploy (push) Has been cancelled
2025-05-11 22:56:06 +10:00
252a9652b1
Link to gallery from the directory
Some checks failed
Deploy to Web Server / deploy (push) Has been cancelled
2025-05-11 22:45:16 +10:00
9b70f945ff
change up image gen for gallery 2025-05-11 22:44:03 +10:00
22c295c82e
Link to OG image in gallery 2025-05-11 22:43:45 +10:00
795ccb7f7a
Add Synergia frames to gallery 2025-05-11 22:43:24 +10:00
79e8144fe2
Add donation page 2025-05-11 22:33:52 +10:00
a25e8c2d07
Add donations to about page 2025-05-11 22:29:26 +10:00
ecc6cbd35e
Add backup bsky to socials 2025-05-11 22:29:04 +10:00
16f233de2e
Add ari + witchcraft systems buttons 2025-05-11 21:58:59 +10:00
bb7bcc59a8
No need to check on deploys, thats for local dev or non-deploy ci
All checks were successful
Deploy to Web Server / deploy (push) Successful in 3m34s
2025-05-11 21:42:06 +10:00
31037308e8
Continue is fail instead of if failed()
Some checks failed
Deploy to Web Server / deploy (push) Has been cancelled
2025-05-11 21:40:58 +10:00
ab9baf0322
specify more exact node version 2025-05-11 21:37:34 +10:00
394306db77
Keep running even if previous folder related ssh commands fail
Some checks failed
Deploy to Web Server / deploy (push) Failing after 3m32s
2025-05-11 21:36:11 +10:00
ce488850ef
Haily mary sleep attempt?
Some checks failed
Deploy to Web Server / deploy (push) Failing after 3m44s
2025-05-11 21:27:52 +10:00
59a25e79d6
Specify pnpm version
Some checks failed
Deploy to Web Server / deploy (push) Failing after 3m34s
2025-05-11 21:10:58 +10:00
ad149cfce5
Actually link the external actions
Some checks failed
Deploy to Web Server / deploy (push) Failing after 1m18s
2025-05-11 21:08:50 +10:00
06c376ca3f
Fix assigned runner
Some checks failed
Deploy to Web Server / deploy (push) Failing after 2m10s
2025-05-11 21:04:17 +10:00
71797a760f
Fix assigned runner
Some checks are pending
Deploy to Web Server / deploy (push) Waiting to run
2025-05-11 21:03:11 +10:00
02a267bfd6
Auto deploy from git.aria.coffee
Some checks are pending
Deploy to Web Server / deploy (push) Waiting to run
2025-05-11 21:01:53 +10:00
2826325d8c
Fix itchio image 2025-05-11 16:25:09 +10:00
2d39184d0a
Add GWJ game to portfolio 2025-04-25 23:44:39 +10:00
Aria
5613e2f2f9
Finalise vibes 2025-04-25 05:22:35 +10:00
Aria
eedba4c364 f**k ahh syling and gallery work 2025-04-25 04:23:45 +10:00
3bf39af153
Update FUNDING.yml 2025-04-24 20:51:58 +10:00
febd3eacbf
Create FUNDING.yml 2025-04-24 20:51:10 +10:00
113de9fbf2
Bump deps 2025-04-24 19:50:48 +10:00
Aria
4d3a1f5cf3 Add weird extreme test 2025-04-24 18:48:22 +10:00
BuyMyMojo
eb3fb830b8
Fix commit link kinda, breaks docker builds tho 2025-04-04 23:45:08 +11:00
BuyMyMojo
5153e2deef
Move friend buttons to front page&re-encode images
Thanks specifically to @LeNooby09 for borking your website and making my
website have a borked image >:3
2025-04-04 22:53:37 +11:00
BuyMyMojo
5a72c0519e
Bump versions 2025-04-04 22:52:46 +11:00
BuyMyMojo
46fd39d6a1
Fix goofed up title 2025-03-26 03:11:10 +11:00
BuyMyMojo
b7f702b4b6
Update nix shell and compress-images to work properly 2025-03-26 03:10:29 +11:00
BuyMyMojo
0bb8b1c16a
Add meme video page relating to a soap skeet
Source:
https://bsky.app/profile/did:plc:lghfd7elj6cjjwlhecp2utao/post/3ll7hx7diu22d
https://web.archive.org/web/20250325154433/https://bsky.app/profile/did:plc:lghfd7elj6cjjwlhecp2utao/post/3ll7hx7diu22d
2025-03-26 03:00:16 +11:00
BuyMyMojo
c3970dca5b
Add nix shell 2025-03-25 03:55:58 +11:00
BuyMyMojo
54f1588091
Disable actions 2025-03-24 06:03:16 +11:00
303658c314
Disable astro.yml 2025-03-24 06:01:33 +11:00
Aria
fa9a8c2724
force the jxl loader code to point to the root dir of aria.coffee
Some checks failed
Deploy Astro site to Pages / Build (push) Has been cancelled
Docker Image CI / build (push) Has been cancelled
Deploy Astro site to Pages / Deploy (push) Has been cancelled
2025-03-19 09:19:26 +11:00
Aria
dcd92d0d6a
Fix bluesky username 2025-03-19 08:35:58 +11:00
Aria
4fe40bed6b
Add directory of extra pages 2025-03-19 08:31:08 +11:00
Aria
6e55b498f8
Add JXL decoder and test page 2025-03-19 08:30:51 +11:00
Aria
983ae3ae80
Update README 2025-03-19 07:26:56 +11:00
Aria
fcf86cefa3
Update deps 2025-03-19 07:26:28 +11:00
Aria
5b9dd52a6d
Add "special_blog" 2025-03-16 19:48:04 +11:00
Aria
f84e9a2465
Center footer text 2025-03-16 19:47:47 +11:00
Aria
5862d78613
Make link to commit open in new tab 2025-03-16 19:47:26 +11:00
Aria
c78d23920a
Add auto updating age to website 2025-03-12 22:48:20 +11:00
501a3a2062
Merge pull request #8 from BuyMyMojo/imgbot
[ImgBot] Optimize images
2025-03-10 22:45:53 +11:00
Aria
be7bc85ad1
Stop building dedicated server for now 2025-03-10 22:42:25 +11:00
Aria
4053fbad1e
Noi more docker build testing 2025-03-10 22:36:21 +11:00
Aria
68f698aea8
Fix broken docker build from last modified attempt 3 2025-03-10 22:34:00 +11:00
Aria
aa7cf4a987
Fix broken docker build from last modified attempt 2 2025-03-10 22:31:50 +11:00
Aria
1490a0b269
Fix broken docker build from last modified 2025-03-10 22:29:08 +11:00
ImgBotApp
d5fc90ff78
[ImgBot] Optimize images
*Total -- 30.51kb -> 13.76kb (54.9%)

/public/static/img/88x31/eyes.gif -- 5.36kb -> 1.09kb (79.76%)
/public/static/img/88x31/vscbutton.gif -- 1.91kb -> 0.79kb (58.53%)
/public/static/img/88x31/kde.gif -- 19.48kb -> 8.18kb (58%)
/public/static/img/88x31/firefox.gif -- 2.30kb -> 2.27kb (1.44%)
/public/static/img/88x31/jellyfin.gif -- 1.45kb -> 1.43kb (1.41%)

Signed-off-by: ImgBotApp <ImgBotHelp@gmail.com>
2025-03-10 11:27:41 +00:00
Aria
be848a1d04
Add commit hiding for docker build fix 2025-03-10 22:25:48 +11:00
Aria
e14a8dd894
Extra additions to about page 2025-03-10 22:12:52 +11:00
Aria
4cfbebaf35
undo previous changes 2025-03-10 22:12:04 +11:00
Aria
651c4ef318
Update docker file in order to fix builds 2025-03-10 22:09:20 +11:00
Aria
42dcc2ec6f
Add ackwell to friends 2025-03-10 21:32:07 +11:00
Aria
1c053c714c
Remove useless image set? 2025-03-10 20:49:20 +11:00
Aria
599a07e6c0
Add auto linking to current git commit 2025-03-10 20:43:23 +11:00
Aria
ed2eafd664
Create a very personal but needed post 2025-03-10 14:36:41 +11:00
Aria
ff8adf421c
Increase blog post title size 2025-03-10 13:42:54 +11:00
Aria
895fba4138
Display new blog posts at the top of the list 2025-03-10 13:33:45 +11:00
Aria
92992c6142
Add auto updating last modified code to blog posts 2025-03-10 13:31:51 +11:00
Aria
9c6d49e14f
Fix incorrect image size in post-1 2025-03-10 13:13:03 +11:00
Aria
73266c5455
Addition tweaks to blog post 1 2025-03-10 13:08:51 +11:00
Aria
6fc2e356fe
Add description to blog post page rendering 2025-03-10 13:08:39 +11:00
Aria
6be2479c08
Link to uncompressed images in blog post 2025-03-10 12:49:38 +11:00
Aria
b9f80f9787
additional fix to compress-images.sh 2025-03-10 12:39:24 +11:00
Aria
16458c6f59
Move blog to use mdx 2025-03-10 12:37:37 +11:00
Aria
90d6d10292
NavHeader image changes 2025-03-10 12:23:22 +11:00
Aria
489ee77341
bump deps 2025-03-10 12:23:08 +11:00
Aria
8439519feb
Fix compress-images.sh 2025-03-10 12:22:46 +11:00
Aria
6a99f94759
God I love optimisation 2025-03-10 11:43:45 +11:00
Aria
7721ded376
Add LeNooby 09 to friends 2025-03-02 22:28:18 +11:00
Aria
2683be2626
Fix missing images from friend's buttons 2025-03-02 22:15:30 +11:00
Aria
edbb0381ad
Bump website deps 2025-03-02 22:15:09 +11:00
f2d240ebe2 Add deploy steps I use to README.md 2025-01-15 13:12:51 +11:00
e88c5452e1 Remove SteamReplay submodule for now 2025-01-15 13:03:03 +11:00
435319af5e Update Alex's prefered name 2025-01-15 13:02:38 +11:00
8cb1515f6d
chore(PortfolioProject.astro): Remove unused prop 2024-12-29 15:44:50 +11:00
4f347285bb
feat: Add a portfolio to the website 2024-12-29 15:43:17 +11:00
e1ee5f3fa5
chore(aria.css): Change the look for hyperlinks 2024-12-29 15:00:22 +11:00
121d0898a6
chore: Move blog tags button onto blog page 2024-12-29 12:36:20 +11:00
e75e001368
style: Biome check, lint and format 2024-12-27 14:56:29 +11:00
23050eea56
chore(friends.astro): remove unused js 2024-12-27 14:50:36 +11:00
9f5dd40f89
chore(friends.astro): Adjust styling of friends box 2024-12-27 14:43:45 +11:00
9319d53bc9
chore(friends.astro):
Doube size of my own button to keep styling consistent
2024-12-27 14:32:14 +11:00
ebc6168caa
feat(friends.astro): Add tess' buttons 2024-12-27 14:14:06 +11:00
7a030a0a67
chore: Double the size of 88x31 buttons to improve rendering 2024-12-27 14:13:00 +11:00
a872096063
feat(other buttons.astro): Add button for eightyeightthirty.one
The scraper finally picked me up so I can link directly to my place in the "web"

https://eightyeightthirty.one/#aria.coffee
2024-12-26 19:47:43 +11:00
30845e5d63
feat(other buttons.astro): Add two additional buttons
spec savers because that's funny and archive.org
2024-12-23 02:58:36 +11:00
62955a7837
feat(Docker Image): Add a docker image that uses bun for the server for testing later 2024-12-20 21:29:08 +11:00
cdf2653993
fix(Docker Image): output SSR site when in docker 2024-12-20 20:55:43 +11:00
2f0eeecb9e
fix(Docker Image): output SSR site when in docker 2024-12-20 20:35:27 +11:00
07255c57a0 fix(GH actions): fix docker build context 2024-12-20 20:25:13 +11:00
84044fbe3d fix(GH actions): remove cosine from docker action 2024-12-20 20:23:29 +11:00
152 changed files with 4186 additions and 2022 deletions

7
.cz.toml Normal file
View file

@ -0,0 +1,7 @@
[tool.commitizen]
name = "cz_conventional_commits"
tag_format = "v$version"
version_scheme = "semver"
version_provider = "npm"
update_changelog_on_bump = true
major_version_zero = true

1
.env.example Normal file
View file

@ -0,0 +1 @@
PUBLIC_REPOURL=https://github.com/BuyMyMojo/aria.coffee/

View file

@ -0,0 +1,79 @@
name: Deploy to Web Server
on:
push:
branches:
- main
jobs:
deploy:
# runs-on: WebDeployment
runs-on: 3900x
container:
image: docker.io/node:24-bookworm
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install pnpm
uses: https://github.com/pnpm/action-setup@v4
with:
version: 10
- name: Install Node.js
uses: https://github.com/actions/setup-node@v4
with:
node-version: 24
cache: 'pnpm'
# - uses: https://github.com/denoland/setup-deno@v2
# with:
# deno-version: vx.x.x
# cache: true
- name: Install SSH key
uses: https://github.com/shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: aria-coffee-deploy # optional
known_hosts: ${{ secrets.KNOWN_HOSTS }}
if_key_exists: fail
- run: pnpm install
# - run: deno install
- name: Build website
run: pnpm run build-action
# run: deno run build-action
- name: Create folder if not exists
continue-on-error: true
run: |
ssh -i ~/.ssh/aria-coffee-deploy ${{ vars.SERVER_USER }}@${{ vars.SERVER_HOST }} "mkdir -p /var/www/Aria/"
- name: Clear old backup
continue-on-error: true
run: |
ssh -i ~/.ssh/aria-coffee-deploy ${{ vars.SERVER_USER }}@${{ vars.SERVER_HOST }} "[ -d "/var/www/Aria/dist-old" ] && rm -r /var/www/Aria/dist-old"
- name: Backup current install
continue-on-error: true
run: |
ssh -i ~/.ssh/aria-coffee-deploy ${{ vars.SERVER_USER }}@${{ vars.SERVER_HOST }} "[ -d "/var/www/Aria/dist" ] && mv /var/www/Aria/dist /var/www/Aria/dist-old"
- name: Copy over new build-action
run: |
scp -i ~/.ssh/aria-coffee-deploy -rC ./dist ${{ vars.SERVER_USER }}@${{ vars.SERVER_HOST }}:/var/www/Aria
# - name: install rsync
# run: |
# apt-get update -y && apt-get install rsync -y
# - name: rsync deployments
# run: |
# rsync -avzrP -e "ssh -i ~/.ssh/aria-coffee-deploy" ./dist ${{ vars.SERVER_USER }}@${{ vars.SERVER_HOST }}:/var/www/Aria
- name: Set permissions on the deployed files
run: |
ssh -i ~/.ssh/aria-coffee-deploy ${{ vars.SERVER_USER }}@${{ vars.SERVER_HOST }} "chmod -R 755 /var/www/Aria/dist"

5
.gitattributes vendored Normal file
View file

@ -0,0 +1,5 @@
*.mp4 filter=lfs diff=lfs merge=lfs -text
*.avi filter=lfs diff=lfs merge=lfs -text
*.ogg filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

View file

@ -7,7 +7,7 @@ name: Deploy Astro site to Pages
on:
# Runs on pushes targeting the default branch
push:
branches: ["main"]
branches: []
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:

View file

@ -2,11 +2,11 @@ name: Docker Image CI
on:
push:
branches: [ "main" ]
branches: [ ]
# Publish semver tags as releases.
tags: [ 'v*.*.*' ]
pull_request:
branches: [ "main" ]
branches: [ ]
env:
@ -14,6 +14,7 @@ env:
REGISTRY: ghcr.io
# github.repository as <account>/<repo>
IMAGE_NAME: ${{ github.repository }}
DOCKER_BUILD: true
jobs:
@ -29,12 +30,6 @@ jobs:
- name: Checkout repository
uses: actions/checkout@v4
- name: Install cosign
if: github.event_name != 'pull_request'
uses: sigstore/cosign-installer@f3c664df7af409cb4873aa5068053ba9d61a57b6 #v2.6.0
with:
cosign-release: 'v1.11.0'
- name: Setup Docker buildx
uses: docker/setup-buildx-action@v3
@ -56,17 +51,12 @@ jobs:
id: build-and-push
uses: docker/build-push-action@v6
with:
context: "{{defaultContext}}:src"
# context: "{{defaultContext}}"
push: ${{ github.event_name != 'pull_request' }} # Don't push on PR
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
cache-from: type=gha
cache-to: type=gha,mode=max
- name: Sign the image with cosign
if: github.event_name != 'pull_request'
run: |
cosign sign --key cosign.key ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}:
# - name: Build the Docker image
# run: docker build . --file Dockerfile --tag aria-coffee:$(date +%s)

6
.github/FUNDING.yml vendored Normal file
View file

@ -0,0 +1,6 @@
# These are supported funding model platforms
github: BuyMyMojo
ko_fi: buymyaria
buy_me_a_coffee: buymymojo
thanks_dev: d/gh/buymymojo

3
.gitmodules vendored
View file

@ -1,3 +0,0 @@
[submodule "public/static/BACKUPS/SteamReplays"]
path = public/static/BACKUPS/SteamReplays
url = https://github.com/BuyMyMojo/SteamReplays.git

68
CHANGELOG.md Normal file
View file

@ -0,0 +1,68 @@
## v0.2.0 (2025-05-30)
### Feat
- **Aria-Board**: add 4 new imaged to the mood board of motoko kusanagi
### Refactor
- **old/**: remove old unused version of website
## v0.1.0 (2025-05-27)
### Feat
- **.cz.toml**: add commitizen config
- **FriendLink**: add high variant
- **<FriendLink>**: add two lower quality version of FriendLink
- Add a portfolio to the website
- **friends.astro**: Add tess' buttons
- **other buttons.astro**: Add button for eightyeightthirty.one
- **other buttons.astro**: Add two additional buttons
- **Docker Image**: Add a docker image that uses bun for the server for testing later
### Fix
- **Docker Image**: output SSR site when in docker
- **Docker Image**: output SSR site when in docker
- **GH actions**: fix docker build context
- **GH actions**: remove cosine from docker action
### Perf
- **NavHeader**: reduce background quality a smidge
- **index**: move all FriendLinks over to high variant
- **index**: try 0x5066's button with FriendLinkLow
- **index**: move 0x5066's button to FriendLinkMid for further file size improvements
- **index**: Swap 0x5066's button to v2 for smaller file size
## v0.0.1 (2024-12-20)
### Feat
- **Gh actions**: Auto build and push docker builds to GH registry
- :zap: Setup preconnect and dns-prefetch for transing.neocities.org
- :sparkles: Move from FontAwesome to astro-icons + iconify
- **NavHeader.astro**: use image-set to supply multiple file types for heder background
- **NavHeader**: Supply client with avif, webp, jpeg and png options for profile picture
- Add SteamReplay backups repo as submodule
- **other buttons.astro**: add increment counter
- trans the internet a little more
### Fix
- **aria.css**: :ambulance: Fix comic mono never being served from website
- **aria.css**: :ambulance: Fix comic mono never being served from website
- **friends.astro**: :bug: move my own button to using `<img />` again over Astro's `<Image />`
- **NavHeader.astro**: I had 33x31 instead of 88x31...
- repair miyuko's button being stretched for some reason
- manually install sharp so the pipeline doesn't get mad
- **astro.yml**: specify pnpm in
### Refactor
- **aria.css**: dont serve Comic Shanns font file
- **NavHeader.astro**: :recycle: Increase quality of header images
- **NavHeader.astro**: :zap: Optimise size and scale of pfp in header
- **NavHeader.astro**: :zap: Optimise the header background image size and resolution
- **FriendLink.astro**: Move from <img /> to <Image /> for buttons

View file

@ -5,6 +5,7 @@ RUN npm install -g pnpm
RUN pnpm install --shamefully-hoist
COPY . .
COPY . .
RUN apt-get update -y
@ -14,7 +15,7 @@ RUN wget https://github.com/shssoichiro/oxipng/releases/download/v9.1.3/oxipng_9
RUN apt-get install -y ./oxipng_9.1.3-1_amd64.deb
RUN rm ./oxipng_9.1.3-1_amd64.deb
RUN pnpm run build
RUN PUBLIC_COMMIT="" pnpm run build
ENV HOST=0.0.0.0
ENV PORT=4321

24
Dockerfile-bun Normal file
View file

@ -0,0 +1,24 @@
FROM node:lts AS runtime
WORKDIR /app
COPY package.json pnpm-lock.yaml ./
RUN npm install -g pnpm
RUN npm install -g bun
RUN pnpm install --shamefully-hoist
COPY . .
RUN apt-get update -y
RUN apt-get install -y jpegoptim
RUN wget https://github.com/shssoichiro/oxipng/releases/download/v9.1.3/oxipng_9.1.3-1_amd64.deb
RUN apt-get install -y ./oxipng_9.1.3-1_amd64.deb
RUN rm ./oxipng_9.1.3-1_amd64.deb
RUN pnpm run build
ENV HOST=0.0.0.0
ENV PORT=4321
EXPOSE 4321
CMD bun ./dist/server/entry.mjs

View file

@ -1 +1,24 @@
# Wowie what a gay little website for my gay little self
## Setup
You must create a `.env` file with the contents of `.env.example` and set the URL of your repo for the commit footer.
Example URL: `https://github.com/BuyMyMojo/aria.coffee/` - Notice the trailing `/`, this is required
## Deploy steps (Pre-rendered website)
On dev machine:
```sh
pnpm run build && rm -r ./dist-new && mv ./dist ./dist-new && croc send --zip ./dist-new
```
The `--zip` is required as there is some file name somewhere that croc doesn't like so putting in a zip fixes this.
on server:
```sh
CROC_SECRET="XXXX-word-word-word" croc
rm -r ./dist-old/ && mv ./dist ./dist-old && mv ./dist-new ./dist
```

View file

@ -1,17 +1,59 @@
// @ts-check
import { defineConfig } from 'astro/config';
import { defineConfig } from "astro/config";
import { remarkModifiedTime } from "./remark-modified-time.mjs";
import preact from "@astrojs/preact";
import tailwind from "@astrojs/tailwind";
import node from "@astrojs/node";
import icon from "astro-icon";
import mdx from "@astrojs/mdx";
// https://astro.build/config
export default defineConfig({
output: process.env.DOCKER_BUILD ? "server" : "static",
site: "https://aria.coffee",
integrations: [preact(), tailwind(), icon()],
integrations: [preact(), tailwind(), icon(), mdx()],
image: {
domains: ["buymymojo.net", "aria.coffee", "github.com", "githubusercontent.com", "avatars.githubusercontent.com", "camo.githubusercontent.com", "user-images.githubusercontent.com", "private-user-images.githubusercontent.com"],
domains: [
"buymymojo.net",
"aria.coffee",
"github.com",
"githubusercontent.com",
"avatars.githubusercontent.com",
"camo.githubusercontent.com",
"user-images.githubusercontent.com",
"private-user-images.githubusercontent.com",
"alyxia.dev",
"nanoshinono.me",
"ata.moe",
"buh.moe",
"hayden.moe",
"onz.ee",
"notnite.com",
"erisdump.neocities.org",
"espi.me",
"alula.me",
"sapphic.moe",
"calayucu.com",
"meow-d.github.io",
"girlthi.ng",
"lenooby09.tech",
"ackwell.au",
"ari.express"
],
},
markdown: {
remarkPlugins: [remarkModifiedTime],
},
});
// Bellow is for when dedicated server is wanted?
// ,
//
// adapter: node({
// mode: "standalone",
// })

View file

@ -1,17 +1,3 @@
#!/bin/bash
find ./dist \( -iname "*.jpg" -o -iname "*.jpeg" \) | jpegoptim -p -P --files-stdin -w $(nproc --all)
oxipng -o max -a -r ./dist
if command -v jpegoptim >/dev/null 2>&1 ; then
echo "jpegoptim found"
find ./public \( -iname "*.jpg" -o -iname "*.jpeg" \) | jpegoptim -p -P --files-stdin -w $(nproc --all)
else
echo "jpegoptim was not found! install either with your package manager or get the binary from the github"
echo "https://github.com/tjko/jpegoptim/releases/latest"
fi
if command -v oxipng >/dev/null 2>&1 ; then
echo "oxipng found"
oxipng -o max -a -r ./public
else
echo "oxipng was not found! install with your package manager, cargo or get the binary from the github"
echo "https://github.com/shssoichiro/oxipng/releases/latest"
fi

27
flake.lock generated Normal file
View file

@ -0,0 +1,27 @@
{
"nodes": {
"nixpkgs": {
"locked": {
"lastModified": 1742669843,
"narHash": "sha256-G5n+FOXLXcRx+3hCJ6Rt6ZQyF1zqQ0DL0sWAMn2Nk0w=",
"owner": "nixos",
"repo": "nixpkgs",
"rev": "1e5b653dff12029333a6546c11e108ede13052eb",
"type": "github"
},
"original": {
"owner": "nixos",
"ref": "nixos-unstable",
"repo": "nixpkgs",
"type": "github"
}
},
"root": {
"inputs": {
"nixpkgs": "nixpkgs"
}
}
},
"root": "root",
"version": 7
}

17
flake.nix Normal file
View file

@ -0,0 +1,17 @@
{
description = "A very basic flake";
inputs = {
nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
};
outputs = { self, nixpkgs }:
let
pkgs = nixpkgs.legacyPackages."x86_64-linux";
in
{
devShells."x86_64-linux".default = pkgs.callPackage ./shell.nix { inherit pkgs; };
};
}

View file

@ -1,25 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<link rel="stylesheet" href="src/aria.css" />
<title>Aria</title>
</head>
<body>
<div class="container">
<div style="align-self: end">
<a href="https://aria.coffee"
><img
class="logo"
src="img/buttons/aria.gif"
style="width: 16em"
/></a>
<div style="align-self: start">
<p>This is a test</p>
<p>again</p>
</div>
</div>
</div>
</body>
</html>

View file

@ -1,32 +0,0 @@
html {
font-size: 100%;
line-height: 1.5;
-ms-text-size-adjust: 100%;
-webkit-text-size-adjust: 100%;
}
body {
background-color: black;
color: white;
}
.container {
display: flex;
flex-direction: column;
background-color: #1f2d39;
max-width: 756px;
height: 500px;
border-radius: 12px;
}
.logo {
image-rendering: pixelated;
border-radius: 24px;
}
.badge {
image-rendering: pixelated;
}

View file

@ -1,29 +1,37 @@
{
"name": "astro",
"type": "module",
"version": "0.0.1",
"version": "0.2.0",
"scripts": {
"dev": "astro dev",
"build": "astro check && ./compress-images.sh && astro build",
"build": "astro check && astro build && ./compress-images.sh",
"build-action": "astro build",
"preview": "astro preview",
"astro": "astro"
},
"dependencies": {
"@astrojs/check": "^0.9.4",
"@astrojs/preact": "^4.0.0",
"@astrojs/rss": "^4.0.10",
"@astrojs/tailwind": "^5.1.3",
"astro": "^5.1.0",
"astro-icon": "^1.1.4",
"preact": "^10.25.2",
"@astrojs/mdx": "^4.3.0",
"@astrojs/node": "^9.2.2",
"@astrojs/preact": "^4.1.0",
"@astrojs/rss": "^4.0.11",
"@astrojs/tailwind": "^5.1.5",
"astro": "^5.8.1",
"astro-icon": "^1.1.5",
"dayjs": "^1.11.13",
"preact": "^10.26.8",
"sharp": "^0.33.5",
"tailwindcss": "^3.4.16",
"typescript": "^5.7.2"
"tailwindcss": "^3.4.17",
"typescript": "^5.8.3"
},
"devDependencies": {
"@iconify-json/mdi": "^1.2.2",
"@iconify-json/cib": "^1.2.2",
"@iconify-json/hugeicons": "^1.2.5",
"@iconify-json/mdi": "^1.2.3",
"@iconify-json/meteor-icons": "^1.2.1",
"@iconify-json/tabler": "^1.2.13",
"@tailwindcss/typography": "^0.5.15"
"@iconify-json/tabler": "^1.2.18",
"@iconify-json/token": "^1.2.16",
"@tailwindcss/typography": "^0.5.16",
"vite": "^6.3.5"
}
}

3804
pnpm-lock.yaml generated

File diff suppressed because it is too large Load diff

3
pnpm-workspace.yaml Normal file
View file

@ -0,0 +1,3 @@
onlyBuiltDependencies:
- esbuild
- sharp

1
public/jxl.min.js vendored Normal file
View file

@ -0,0 +1 @@
!function(){"use strict";let e={useCache:!0,imageType:"png"},a,t={};function s(s,i,n,r){let l=s.dataset.jxlSrc;if(i instanceof Blob)c(s,URL.createObjectURL(i),n,r);else if("OffscreenCanvas"in window){let d=new OffscreenCanvas(i.width,i.height);t[l].postMessage({canvas:d,imgData:i,imageType:e.imageType},[d]),t[l].addEventListener("message",t=>{t.data.url&&t.data.blob&&(c(s,t.data.url,n,r),e.useCache&&a&&a.put(l,new Response(t.data.blob)))})}else{let g=document.createElement("canvas");g.width=i.width,g.height=i.height,g.getContext("2d").putImageData(i,0,0),g.toBlob(t=>{c(s,URL.createObjectURL(t),n,r),e.useCache&&a&&a.put(l,new Response(t))},"image/"+e.imageType)}}function c(a,t,s,c){s?a.style.backgroundImage='url("'+t+'")':c?(a.srcset=t,a.type="image/"+e.imageType):a.src=t}async function i(c,i,n){let r=c.dataset.jxlSrc=i?getComputedStyle(c).backgroundImage.slice(5,-2):n?c.srcset:c.currentSrc;if(i||n||(c.srcset="",c.src="data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw=="),e.useCache){try{a=a||await caches.open("jxl")}catch(l){}let d=a&&await a.match(r);if(d){let g=await d.blob();requestAnimationFrame(()=>s(c,g,i,n));return}}let o=await fetch(r),u=await o.arrayBuffer();t[r]=new Worker("https://aria.coffee/jxl_dec.js"),t[r].postMessage({jxlSrc:r,image:u}),t[r].addEventListener("message",e=>e.data.imgData&&requestAnimationFrame(()=>s(c,e.data.imgData,i,n)))}new MutationObserver(e=>e.forEach(e=>e.addedNodes.forEach(e=>{e instanceof HTMLImageElement&&e.src.endsWith(".jxl")?e.onerror=()=>i(e,!1,!1):e instanceof HTMLSourceElement&&e.srcset.endsWith(".jxl")?i(e,!1,!0):e instanceof Element&&getComputedStyle(e).backgroundImage.endsWith('.jxl")')&&i(e,!0,!1)}))).observe(document.documentElement,{subtree:!0,childList:!0})}();

2
public/jxl_dec.js Normal file

File diff suppressed because one or more lines are too long

BIN
public/jxl_dec.wasm Normal file

Binary file not shown.

@ -1 +0,0 @@
Subproject commit ea17d4eb7c76aa7602daf369f9a2d50ba7142fee

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.5 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 326 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 812 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1 MiB

Binary file not shown.

View file

@ -0,0 +1,13 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
mDMEaCHi6hYJKwYBBAHaRw8BAQdAUkJKd5594hqQ6PmzlENC4drfNZ6snlgNzOIw
c7IHbbC0GEFyaWEgPGhlbGxvQGFyaWEuY29mZmVlPoiTBBMWCgA7FiEEfr0+DH09
XH1cqKA/SXdurIcriEsFAmgh4uoCGwMFCwkIBwICIgIGFQoJCAsCBBYCAwECHgcC
F4AACgkQSXdurIcriEvFtgD/b9xp7v1K0Yf7RwfDr586bp08M7t2d6YViLSq3+l+
sSQBAIsabbm5pOroeBEKVCWVbu4KHujVxekE6O8h8FMklW4CuDgEaCHi6hIKKwYB
BAGXVQEFAQEHQIUP1QGeR6y4ofAg+sWHQsUw4TkSXRe1Nuwg83vJ+twPAwEIB4h4
BBgWCgAgFiEEfr0+DH09XH1cqKA/SXdurIcriEsFAmgh4uoCGwwACgkQSXdurIcr
iEtkXwEA7iAz732NYxpWFJqzBiD+4j1CMxwFrCslY+4Bsi07Ky0A/RFfz9OIHuSm
rvZLEtze+HO+dJDRGTRoHCbjEeVQey0D
=LJQZ
-----END PGP PUBLIC KEY BLOCK-----

View file

@ -0,0 +1,29 @@
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Email: hello@aria.coffee
Website: aria.coffee
Main Git: https://git.aria.coffee/aria
Backup Git(GitHub): https://github.com/BuyMyMojo
Alt Git: https://git.witchcraft.systems/Aria
bsky: https://bsky.app/profile/did:plc:bzrn33tcfgjxnsanvg6py3xn
bsky alt (pds.witchcraft.systems): https://bsky.app/profile/did:plc:valun42etpm73we7bgyh64ge
PGP fingerprint: 7EBD 3E0C 7D3D 5C7D 5CA8 A03F 4977 6EAC 872B 884B
PGP Key: https://aria.coffee/static/keys/49776EAC872B884B_public.asc
PGP Keyservers: https://keyserver.ubuntu.com & https://keys.openpgp.org
SSH key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBi5QCHIPTT6Uvq2SLxWUKxcN7RgdtrgJxVs2muVUbqe
Crypto Wallets:
XMR: 48NZQ5rYpiNEjNtsWKbyniVY3FpJ9kLVA815cxfSMPF5gvjrBiHH9x5JLr3aBYhvKvENCdhrYgzQ9LhBnR5NoinWDCGBzNm
BTC: bc1qeqz2fswpn4hjjy373gyvjgkq63hv7mknwd6cau
LTC: LW4tGWNzYQ21eJ8G2LZaLqroYU67nSNwnY
ETH/USDC/USDT: 0xDd947270bCE2bBB3a3E3eCc4eA5095c14aa9ec58
-----BEGIN PGP SIGNATURE-----
iHUEARYKAB0WIQTnt7jSDIdTwHf5sXEZq3qkYrirOwUCaCIXOQAKCRAZq3qkYrir
OyZvAQDPFtFOpgFumJBjL5AuwBv2ezxBu//WmQcwMIY6NDReewEAq6i+Q0GOC8FI
1lqnI9uxr10FIGSemJ4FbUmve6GrWgE=
=J+Ky
-----END PGP SIGNATURE-----

9
remark-modified-time.mjs Normal file
View file

@ -0,0 +1,9 @@
import { execSync } from "node:child_process";
export function remarkModifiedTime() {
return (tree, file) => {
const filepath = file.history[0];
const result = execSync(`git log -1 --pretty="format:%cI" "${filepath}"`);
file.data.astro.frontmatter.lastModified = result.toString();
};
}

View file

@ -1,10 +1,16 @@
---
title: 'The beginning (Again)'
pubDate: 2024-12-17T00:49:00.000+11
description: 'This is the first post of my new website.'
description: 'This is the first post of my new website. featuring information on why I chose Astro to rewrite it and some extra fun information along the way!'
author: 'Aria'
tags: ["blogging", "learning in public", "development"]
draft: false
---
import { Picture, getImage } from "astro:assets";
import FriendLink from "../components/FriendLink.astro";
import orderConfirmedImg from "../img/blog/aira.coffee-cloudflair-alldone.png";
import useAFrameworkImg from "../img/blog/UseAFramework_20241217_002719.png";
I'll be expanding this as I work on it but for now this is my first more indepth website
@ -18,28 +24,51 @@ Recently I joined a community for some very **🏳️‍⚧️**(mostly, there a
We where discussing domain names and this one wasn't owned! I'm addicted to coffee so it seemed like the perfect fit for me~
![A picture of the "Order Confirmed" pafe from cloudflair](/static/img/blog/aira.coffee-cloudflair-alldone.png)
<a href ={orderConfirmedImg.src} target="_blank">
<Picture
src={orderConfirmedImg}
quality={95}
densities={[0.75, 1, 2]}
formats={['avif', 'webp', 'jpeg']}
alt="A picture of the 'Order Confirmed' pafe from cloudflair"
/>
</a>
After purchasing I needed to decide what I wanted to do with it, for a little over a day (Until not long before I started to write this) it just redirected to my [BlueSky](https://bsky.app/profile/did:plc:bzrn33tcfgjxnsanvg6py3xn) account.
I eventually got inspired by both [Alyxia](https://alyxia.dev/) and [Annie's](https://buh.moe/) websites. Finally convinced to make something from scratch I made the website you're looking at now!
I eventually got inspired by both [Alyxia](https://alyxia.dev/) and [Alex's](https://buh.moe/) websites. Finally convinced to make something from scratch I made the website you're looking at now!
This has been my first time working mostly from scratch to make my personal website, more on that described bellow!
## The How
This website was made using [Astro](https://astro.build/) for the build system and I decided to use [Tailwind](https://tailwindcss.com/) instead of basing my own css off Annie's after she convinced me.
This website was made using [Astro](https://astro.build/) for the build system and I decided to use [Tailwind](https://tailwindcss.com/) instead of basing my own css off Alex's after she convinced me.
![A discord screenshot containing the following messages: Sent by @BuyMyMojo: "getting my brain around css and styling hurts, I'm man handling some of your css @amemoia", Sent by @amemoia: "DONT LOOK AT MY CSS ITS SO BAD", "EVERYTHING HAS ITS OWN CLASS", "USE A FRAMEWORK"](/static/img/blog/UseAFramework_20241217_002719.png)
<a href ={useAFrameworkImg.src} target="_blank">
<Picture
src={useAFrameworkImg}
quality={95}
width={630}
densities={[0.75, 1, 2,]}
formats={['avif', 'webp', 'jpeg']}
alt="A discord screenshot containing the following messages: Sent by @BuyMyMojo: 'getting my brain around css and styling hurts, I'm man handling some of your css @amemoia', Sent by @amemoia: 'DONT LOOK AT MY CSS ITS SO BAD', 'EVERYTHING HAS ITS OWN CLASS', 'USE A FRAMEWORK'"
/>
</a>
While I got started early on following the basic [blog tutorial](https://docs.astro.build/en/tutorial/0-introduction/) but took a break to make my very first 88x31px button!
![88x31 pixel button with the text 'Aria' and the top half of a human human face on the right hand side](https://web.archive.org/web/20241216133507if_/https://dev.aria.coffee/static/img/buttons/aria.gif)
<a href="https://aria.coffee/" target="_blank">
<img
alt="88x31 pixel button with the text 'Aria' and the top half of a human human face on the right hand side"
src="https://aria.coffee/static/img/buttons/aria.gif"
style="min-width: 88px; width: 176px; min-height: 31px; height: 62px; image-rendering: pixelated;"
/>
</a>
<sub>This is a version of the image hosted on archive.org so the blog doesn't change</sub>
I made it pretty quickly in Krita using the lovely picute of me which was drawn by Auryn!
88x31 buttons have a history that I wont get into here, you can read more [here](https://tekeye.uk/computer_history/powered-by) and if you'd like to see thhe buttons of my friends then go to the [friends page](/friends)
88x31 buttons have a history that I wont get into here, you can read more in <a alt="This article looks back at a couple of popular screen elements in early web pages. The Powered By logo and 88x31 pixel buttons." href="https://tekeye.uk/computer_history/powered-by" target="_blank">this article</a> and if you'd like to see thhe buttons of my friends then go to the [friends page](/friends)
<sub>If you wanna exchange buttons shoot me a message on <a href="https://discord.com/users/383507911160233985" target="_blank">discord!</a></sub>
## Final thoughts

93
src/blog/post-2.mdx Normal file
View file

@ -0,0 +1,93 @@
---
title: 'Pre-HRT musing'
pubDate: 2025-03-10T14:35:00.000+11
description: 'HRT appointment is getting closer and I have some thoughts and want to go over the story'
author: 'Aria'
tags: ["personal", "HRT", "🏳️‍⚧️"]
draft: false
---
## The story so far
### In the beginning
At first I tried to sort this out through a local <abbr title="General Practitioner">GP</abbr> and they where genuinely pretty helpful, this was around this time last year(2024).
I first reached out to them over email asking if there was a GP there willing to help me out, I thought this email wasn't tied to me but apparently it was on file..
It was terrifying when they used my first name in the response, it wasn't good news right away either. No GP in my town had experience with trans related issues and most GPs where booked out so they couldn't fit me in anyway.
I felt pretty dejected by that *but then* the very next day they emailed me again! The worker who received the email was talking to some of the GPs and one was more than willing to help! he even squeezed me in his extremely packed schedule to help me out.
I went and talked to him a bit, he got some blood tests ordered for me and I went in for another appointment after getting the results, once again less than stellar news followed.
I cleared for any issues relating to blood clot risk which was nice, then I found that they weren't comfortable prescribing HRT themselves since they weren't trained in the field (Sad but fair enough!).
We looked through option for clinics and of course the only one is in the city 4~ hours away and with a *2 freaking year* waiting list.
whatever, __put me on the list__.
### The waiting game
Waiting and waiting and waiting with no word felt terrible.
While waiting I was shown the <a href="https://www.ttgc.com.au/" target="_blank"><abbr title="The Telehealth Gender Clinic">TTGC</abbr></a>, an all online Telehealth clinic specializing in gender affirming care!
Sadly they are pretty expensive and not covered by health care. I saved up and a little after christmas 2024 I was able to schedule an appointment, I'll get back to this~
### Update from the GPs referral
On the 11th of Feb I got a call from [Monash Health](https://monashhealth.org/services/gender-clinic/), if you check out the website at the time of writing<sub>[archive](https://web.archive.org/web/20250310025317/https://monashhealth.org/services/gender-clinic/)</sub> then you'll see the issue I faced.
__2+ years of wait time!!__
I still did have a lovely call with the lady on the phone, I am on the very long wait list for *free* 1 on 1 voice coaching (24 months) which is nice and I'm on a waiting list for again __free__ laser hair removal (only 2-4 months! target areas: arms + face).
They left me on the waiting list for HRT just in case, no harm done there but encouraged me to try and get a local GP to handle it.
### Back to the Telehealth appointment
Okay so the appointment is scheduled for `2PM Friday the 21st of March` which is less than 2 weeks away at time of writing!
As the actual date gets closer I get more and more impatient, it's finally so close.
This is an initial video call to do the usual thing of going over what my goals are, discussing how HRT will affect me and stuff, typically they will order blood work but since I got mine done "recently" I'm going to see if that is worth using or if I need to get it done again.
After this appointment I will send them the paper work and schedule a second appointment. if they approve the treatment (which they most likely will thanks to my previous clean bill of health from the GP) then they will sort out my prescription right there and I can order my HDR treatment.
Finally once I've started I will need to get a quick 10 minute review appointment with repeat blood work to check on my progress and update dosages every 3 months for the first year and then every 6 - 12 months in subsequent years.
## The thoughts going around my noggin
### 🥚🥚🥚
As the date rappidly draws closer I can feel my brain going over my past and realizing "Wow girl.. you where such an 🥚 this whole time".
I didn't let myself explore much during high school, thinking my general disgust for my appearance and body was just because of body weight or depression but after going from 120KG+ fo 78KG in a year and being in a much less toxic environment that high school I can really see that those reasons dont fir the bill.
Thinking about how I try to not look at myself in the mirror when my facial hair grows out or how general masculine traits of myself were off putting to me for such a long time.
I went through the funny timeline of: Maybe I'm gay? -> Bi? -> okay I'm pan? -> sure okay but along with that I could be a femboy right? they seem cool -> wait... I can just *be* a woman? -> Shit maybe I've been a woman this whole time...
I've since worn a skirt, tried to feel more feminine, desired to sound feminine, and more. I've let myself explore who I *want to be* not just who *I should be by others' standards*.
It's freeing.
### What next?
I'm so ready to move forward in this journey. I ~im~-patiently await for the appointment and plan for the hardest step yet; coming out to people in meatspace.
It has been well over a year now since I've been publicly She/Her online with friends and strangers alike but coming out in person is a much larger beast to tackle.
For context I live in bum-fuck nowhere, Victoria, Australia. I've had the pleasure of listening to my family be generally hostile towards marginalized groups in "jokes" and conversation, when gay marriage was made legal in Australia I was in the room with my <abbr title="Grand Father">pop</abbr> when it was shown on the news and without missing a beat I got to hear him say "Those kinds of people shouldn't exist".
In a small town where these views are prevalent I run a business, a small phone repair shop that barely scrapes by so the idea of being my true self here is scary.
It might not be right away but I'll get there, I got some very encouraging words from some close friends of mine and I'll hopefully make some more "local" like minded friends in the TTRPG game store the next town over(46 minute drive).
## Thanks
I guess thanks for reading! I doubt anyone has but hey I needed to just get this out of my system. this is such a dry ass post with 0 images or intrigue but at least it helped me resolidify my *need* to live as myself how I want to.
I'll hopefully share more once HRT is started but we will see how long that takes ;;;
Take care of yourselves and don't let anyone tell you who you should be, be who you feel comfortable being \<3

267
src/blog/post-3.mdx Normal file
View file

@ -0,0 +1,267 @@
---
title: 'My Online Identity and Security'
pubDate: 2025-05-13T01:47:00.000+11
description: 'Time to get my keys and addresses all sorted'
author: 'Aria'
tags: ["learning in public", "security", "GPG"]
draft: false
---
import { Picture, getImage } from "astro:assets";
import ssh_autofill from "../img/blog/Screenshot_20250513_004022.png";
## Email
My past emails, like hello@buymymojo.net, have been shackled to google because I relied on "Login with google" a little too much when I was younger and now I'm stuck with it... at least until I wanna deal with *the horrors* of figuring out what accounts I'll lose access too.
In the mean time I need a new personal email that actually fits my needs! For this I decided on [purelymail](https://purelymail.com/) as it is just one of the best deals around if you just *need email*, which is what I'm here for.
My new email is hello@aria.coffee! More on communication standards and stuff bellow!
## GPG
So for the longest time I have handled PGP very poorly, my main use case was literally just "I want that pretty verified label on my github commits" which is NOT a good reason!
I am setting out to fix this and learn why things are done the way they are, my main goals is to have a key I can proudly display on my website and know I did everything properly and have taken proper measures to not lose it.
First thing first is to generate the key, so one ed25519 generation later and we have it!
```bash
gpg --full-generate-key
```
Next I need to make revoke keys just in case. I will create two keys, one for if the key is compromised and one for if I replace this key in the future.
```bash
gpg --gen-revoke 49776EAC872B884B > 49776EAC872B884B_revoke_comp.asc
# Please select the reason for the revocation:
# 0 = No reason specified
# 1 = Key has been compromised
# 2 = Key is superseded
# 3 = Key is no longer used
# Q = Cancel
# (Probably you want to select 1 here)
# Your decision? 1
# Enter an optional description; end it with an empty line:
# > Please look https://aria.coffee/blog for more details!
gpg --gen-revoke 49776EAC872B884B > 49776EAC872B884B_revoke_superseded.asc
# Please select the reason for the revocation:
# 0 = No reason specified
# 1 = Key has been compromised
# 2 = Key is superseded
# 3 = Key is no longer used
# Q = Cancel
# (Probably you want to select 1 here)
# Your decision? 2
# Enter an optional description; end it with an empty line:
# > Please look https://aria.coffee/blog for more details!
```
Now I need to store these keys securely. I will create a 7z file that is encrypted
```bash
7z a -mx9 -mmt=off -pPASSWORDHERE 49776EAC872B884B_revoke_keyz.7z 49776EAC872B884B_revoke_comp.asc 49776EAC872B884B_revoke_superseded.asc
```
Since I want to store these files digitally somewhere and 7z [doesn't have redundancy](https://en.wikipedia.org/wiki/7z#Limitations) I will have to create some recovery data myself using [par2cmdline](https://github.com/Parchive/par2cmdline)
```bash
par2 c -r25 ./49776EAC872B884B_revoke_keyz.7z.par2 ./49776EAC872B884B_revoke_keyz.7z
```
Here I am using `-r25` to specify that I want enough recovery data that 25% of the archive could be corrupt and I still want to get it back, it is over kill and produces files totalling more than the origional archive but total these files are tiny so it is fine for me. This is now what the folder contains:
```bash
.
├── 49776EAC872B884B_revoke_keyz.7z
├── 49776EAC872B884B_revoke_keyz.7z.par2
├── 49776EAC872B884B_revoke_keyz.7z.vol00+01.par2
├── 49776EAC872B884B_revoke_keyz.7z.vol01+02.par2
├── 49776EAC872B884B_revoke_keyz.7z.vol03+04.par2
├── 49776EAC872B884B_revoke_keyz.7z.vol07+08.par2
├── 49776EAC872B884B_revoke_keyz.7z.vol15+16.par2
└── 49776EAC872B884B_revoke_keyz.7z.vol31+11.par2
```
One encrypted 7z containing the keys and 8 files that hold all the data I need to keep it safe from bitrot.
just a quick cleanip before I do the same with a backup of my private key
```bash
mkdir pgp_revoke_keys && mv ./*.* ./pgp_revoke_keys/
# .
# └── pgp_revoke_keys
# ├── 49776EAC872B884B_revoke_keyz.7z
# ├── 49776EAC872B884B_revoke_keyz.7z.par2
# ├── 49776EAC872B884B_revoke_keyz.7z.vol00+01.par2
# ├── 49776EAC872B884B_revoke_keyz.7z.vol01+02.par2
# ├── 49776EAC872B884B_revoke_keyz.7z.vol03+04.par2
# ├── 49776EAC872B884B_revoke_keyz.7z.vol07+08.par2
# ├── 49776EAC872B884B_revoke_keyz.7z.vol15+16.par2
# └── 49776EAC872B884B_revoke_keyz.7z.vol31+11.par2
```
now to quickly backup my private and public keys
```bash
# Export
gpg --export-secret-keys --armor 49776EAC872B884B > 49776EAC872B884B_secret.asc
gpg --export --armor 49776EAC872B884B > 49776EAC872B884B_public.asc
# Encrypt
7z a -mx9 -mmt=off -pPASSWORDHERE 49776EAC872B884B_revoke_keyz.7z 49776EAC872B884B_secret.asc
# Parity
par2 c -r25 ./49776EAC872B884B_keys.par2 -- ./49776EAC872B884B_secret.7z 49776EAC872B884B_public.asc
# .
# ├── 49776EAC872B884B_keys.par2
# ├── 49776EAC872B884B_keys.vol00+01.par2
# ├── 49776EAC872B884B_keys.vol01+02.par2
# ├── 49776EAC872B884B_keys.vol03+04.par2
# ├── 49776EAC872B884B_keys.vol07+08.par2
# ├── 49776EAC872B884B_keys.vol15+16.par2
# ├── 49776EAC872B884B_keys.vol31+32.par2
# ├── 49776EAC872B884B_keys.vol63+33.par2
# ├── 49776EAC872B884B_public.asc
# └── 49776EAC872B884B_secret.7z
```
This time I did parity a little different! we created the same 8 files but now they handle recovery for both `49776EAC872B884B_public.asc` and `49776EAC872B884B_secret.7z` since I plan on keeping those two together!
Now I have all the backups I need I can upload my keys linked to hello@aria.coffee to key servers!
```bash
gpg --send-keys 49776EAC872B884B # Defaults to https://keyserver.ubuntu.com
gpg --keyserver https://keys.openpgp.org --send-keys 49776EAC872B884B
```
You can now find my key on both places by searching hello@aria.coffee!
<sub>
[ubuntu key server](https://keyserver.ubuntu.com/pks/lookup?search=hello%40aria.coffee&fingerprint=on&op=index)
[openpgp key server](https://keys.openpgp.org/search?q=hello@aria.coffee)
</sub>
## Passwords & Secure Managment
I was going to go directly into SSH here but I needed to take care of something else first.
After talking to [Ari](https://ari.express/) I was convinced to move my password and key managment over to [1password](https://1password.com/).
After making anew account you are given an "Emergency Kit" PDF which contains the email you signed up with, a secret key generated directly by your device and not their servers for recovering your account and a blank space to enter in your password.
Before this I used bitwarden so I exported my vault as a CSV file and took the time to clear out some unwanted fluf that I did not need saved... this experince was not very enjoyable, needing to manually tell 1password how to read the bitwarden CSV file isn't fun.
Now that is over I can get into the real goodies that convinced me to switch, the `1password-cli`!
Using this cli I can manage my vault from the terminal as you'd expect but I can also use it to handle ssh auth and git commit signing! There are also a ton of [shell plugins](https://developer.1password.com/docs/cli/shell-plugins) to automatically handle auth for different cli tools.
We will now move onto the next section where I can go more indepth into using 1password
## SSH
Now that I have 1password I can quickly generate the ssh key:
```bash
op item create --category ssh --title "hello@aria.coffee"
# ID: [REDACTED]
# Title: hello@aria.coffee
# Vault: Personal ([REDACTED])
# Created: now
# Updated: now
# Favorite: false
# Version: 1
# Category: SSH_KEY
# Fields:
# public key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBi5QCHIPTT6Uvq2SLxWUKxcN7RgdtrgJxVs2muVUbqe
# fingerprint: SHA256:WqtcVnDMrv1lnUlNah5k31iywFUI/DV+5yHzCTO4Vds
# private key: [use 'op item get [REDACTED] --reveal' to reveal]
# key type: ed25519
```
this quickly generated an ssh key with the public key `ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBi5QCHIPTT6Uvq2SLxWUKxcN7RgdtrgJxVs2muVUbqe` and saves it to my vault.
once the kay I need to add a simple section to my ssh config:
```toml
Host *
IdentityAgent ~/.1password/agent.sock
```
from here I just need to add the public key to clients and git hosts and we're gaming, auth is even handles by 1password which can get set to use the same login flow as your system so if you have a finger print scanner setup you could use that for your ssh connections.
while adding my key to https://git.aria.coffee and https://git.witchcraft.systems I noticed something very cool, 1password has autofill support for Forgejo and github!
<a href ={ssh_autofill.src} target="_blank">
<Picture
src={ssh_autofill}
quality={95}
densities={[0.75, 1, 2]}
formats={['avif', 'webp']}
fallbackFormat="jpeg"
alt="A picture of the 'Order Confirmed' pafe from cloudflair"
/>
</a>
finally after [editing my gitconfig](https://developer.1password.com/docs/ssh/git-commit-signing/#step-1-configure-git-commit-signing-with-ssh) all my commits are now signed with the same ssh key!
## AGE
For encrypted messaging and files I prefer to use [age](https://github.com/FiloSottile/age)! This tool can take in ssh keys as the identity for encryption so I have setup some fish aliases to to the following:
```bash
op read "op://Personal/[REDACTED]/public key" | age --encrypt --armor -R - input.txt # the fish alias would end at the - so I can both pass in my own files and add recipients
op read "op://Personal/[REDACTED]/private key?ssh-format=openssh" | age -d -i - input.txt
```
This uses 1password to fetch the correct key for encryption and decryption, making sure I can always decrypt my own files if needed.
## Crypto
Thanks to me being trans in rurual middle of nowhere I have been ordering my [HRT online](https://www.youtube.com/watch?v=o2Ggwe2j0Gc) and the most cost effective method to do so is crypto.
For holding onto my coin I chose to go with [Exodus](https://www.exodus.com/), Ari reccomended it when I brought up this topic with a group chat and it was a wallet I had already heard of before.
I decided to go with XMR, BTC, LTC and ETH wallets, not that I have funding in them all but they seem like solid contenders to just *have*.
```yaml
XMR: 48NZQ5rYpiNEjNtsWKbyniVY3FpJ9kLVA815cxfSMPF5gvjrBiHH9x5JLr3aBYhvKvENCdhrYgzQ9LhBnR5NoinWDCGBzNm
BTC: bc1qeqz2fswpn4hjjy373gyvjgkq63hv7mknwd6cau
LTC: LW4tGWNzYQ21eJ8G2LZaLqroYU67nSNwnY
ETH/USDC/USDT: 0xDd947270bCE2bBB3a3E3eCc4eA5095c14aa9ec58
```
## Finale
Here are the addresses & keys I have settled on, signed with the mentioned GPG key.
[here](/static/messages/keys_and_addrs.txt) is the origional signed file if you want it~
```md
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Email: hello@aria.coffee
Website: aria.coffee
Main Git: https://git.aria.coffee/aria
Backup Git(GitHub): https://github.com/BuyMyMojo
Alt Git: https://git.witchcraft.systems/Aria
bsky: https://bsky.app/profile/did:plc:bzrn33tcfgjxnsanvg6py3xn
bsky alt (pds.witchcraft.systems): https://bsky.app/profile/did:plc:valun42etpm73we7bgyh64ge
PGP fingerprint: 7EBD 3E0C 7D3D 5C7D 5CA8 A03F 4977 6EAC 872B 884B
PGP Key: https://aria.coffee/static/keys/49776EAC872B884B_public.asc
PGP Keyservers: https://keyserver.ubuntu.com & https://keys.openpgp.org
SSH key: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIBi5QCHIPTT6Uvq2SLxWUKxcN7RgdtrgJxVs2muVUbqe
Crypto Wallets:
XMR: 48NZQ5rYpiNEjNtsWKbyniVY3FpJ9kLVA815cxfSMPF5gvjrBiHH9x5JLr3aBYhvKvENCdhrYgzQ9LhBnR5NoinWDCGBzNm
BTC: bc1qeqz2fswpn4hjjy373gyvjgkq63hv7mknwd6cau
LTC: LW4tGWNzYQ21eJ8G2LZaLqroYU67nSNwnY
ETH/USDC/USDT: 0xDd947270bCE2bBB3a3E3eCc4eA5095c14aa9ec58
-----BEGIN PGP SIGNATURE-----
iHUEARYKAB0WIQTnt7jSDIdTwHf5sXEZq3qkYrirOwUCaCIXOQAKCRAZq3qkYrir
OyZvAQDPFtFOpgFumJBjL5AuwBv2ezxBu//WmQcwMIY6NDReewEAq6i+Q0GOC8FI
1lqnI9uxr10FIGSemJ4FbUmve6GrWgE=
=J+Ky
-----END PGP SIGNATURE-----
```

27
src/blog/post-4.mdx Normal file
View file

@ -0,0 +1,27 @@
---
title: 'Storage & backup of my security'
pubDate: 2025-05-21T01:47:00.000+11
description: 'Where do you even keep all these?!'
author: 'Aria'
tags: ["learning in public", "security", "GPG", "storage", "backups"]
draft: true
---
import { Picture, getImage } from "astro:assets";
## Why backup?
This probably doesn't need an explanation for anyone reading this but backups are important!
When you're online accounts rely on just a few files or physical devices for access making sure you have securely stored backups is essential to not loose access to those accounts.
## What did I need to backup?
I'll expand on some more of the security stuff I have setup from the last post here too.
- SSH key(s)
- PGP Key(s)
- 2FA codes
- Security Keys ([Yubikey](https://www.yubico.com/au/product/yubikey-5-series/yubikey-5-nfc/))
- 1password Emergency Kit
- Account 2FA backups codes (For example discord provides codes to recover your account if you cannot access your codes)
- Exodus wallet backup keys

View file

@ -0,0 +1,89 @@
---
const kofi = "https://ko-fi.com/buymyaria";
const buymeacoffee = "https://buymeacoffee.com/buymymojo";
import Partition from "../components/Partition.astro";
import { Icon } from "astro-icon/components";
---
<Partition>
<h1>Feel free to fund me at these places:</h1>
<ul class="list-disc p-4 whitespace-nowrap">
<li>
<a href={kofi} class="p-1" target="_blank"
><Icon name="hugeicons:ko-fi" class={"svg-inline"} /> Ko-Fi</a>
</li>
<li>
<a href={buymeacoffee} class="p-1" target="_blank"
><Icon name="cib:buy-me-a-coffee" class={"svg-inline"} /> Buy Me a Coffee</a>
</li>
<li>
<Icon name="token:xmr" class={"svg-inline"} /> XMR: <textarea
onclick="this.select()"
readonly
cols="95"
rows="1"
class="rounded backdrop-brightness-0"
style="background-color: var(--third-colour); resize: none;"
>48NZQ5rYpiNEjNtsWKbyniVY3FpJ9kLVA815cxfSMPF5gvjrBiHH9x5JLr3aBYhvKvENCdhrYgzQ9LhBnR5NoinWDCGBzNm</textarea
>
</li>
<li>
<Icon name="token:btc" class={"svg-inline"} /> BTC: <textarea
onclick="this.select()"
readonly
cols="42"
rows="1"
class="rounded backdrop-brightness-0"
style="background-color: var(--third-colour); resize: none;"
>bc1qeqz2fswpn4hjjy373gyvjgkq63hv7mknwd6cau</textarea
>
</li>
<li>
<Icon name="token:ltc" class={"svg-inline"} /> LTC: <textarea
onclick="this.select()"
readonly
cols="34"
rows="1"
class="rounded backdrop-brightness-0"
style="background-color: var(--third-colour); resize: none;"
>LW4tGWNzYQ21eJ8G2LZaLqroYU67nSNwnY</textarea
>
</li>
<li>
<Icon name="token:eth" class={"svg-inline"} /> ETH: <textarea
onclick="this.select()"
readonly
cols="42"
rows="1"
class="rounded backdrop-brightness-0"
style="background-color: var(--third-colour); resize: none;"
>0xDd947270bCE2bBB3a3E3eCc4eA5095c14aa9ec58</textarea
>
</li>
<li>
<Icon name="token:usdc" class={"svg-inline"} /> USDC(ETH): <textarea
onclick="this.select()"
readonly
cols="42"
rows="1"
class="rounded backdrop-brightness-0"
style="background-color: var(--third-colour); resize: none;"
>0xDd947270bCE2bBB3a3E3eCc4eA5095c14aa9ec58</textarea
>
</li>
<li>
<Icon name="token:usdt" class={"svg-inline"} /> USDT(ETH): <textarea
onclick="this.select()"
readonly
cols="42"
rows="1"
class="rounded backdrop-brightness-0"
style="background-color: var(--third-colour); resize: none;"
>0xDd947270bCE2bBB3a3E3eCc4eA5095c14aa9ec58</textarea
>
</li>
</ul>
</Partition>

View file

@ -1,9 +1,8 @@
---
const description = "Just my little website do be gay and do crime on~";
const embedImage = "https://aria.coffee/static/img/sites/avatar.png";
const embedColour = "#380A84";
const { pageTitle } = Astro.props;
const { pageTitle, description } = Astro.props;
---
<meta content={pageTitle} property="og:title" />
<meta content={description} property="og:description" />

View file

@ -2,17 +2,42 @@
const buttonFormat = "gif";
import { Icon } from "astro-icon/components";
import { execSync } from "node:child_process";
const commitURL = `https://git.aria.coffee/aria/aria.coffee/commit/${execSync(`git log -1 --pretty="format:%H"`)}`;
const COMMIT = `<a href=${commitURL} target="_blank">${execSync(`git log -1 --pretty="format:%h"`)}</a>`;
---
<hr class="h-1" style="" />
<footer class="flexcol">
<div class="flexrow">
<p>
<a href="https://github.com/BuyMyMojo/aria.coffee" target="_blank"
><Icon name="mdi:source-branch" class={"svg-inline"}/> Source Code</a
> | <a href="https://aria.coffee/rss.xml" target="_blank"
><Icon name="mdi:rss" class={"svg-inline"}/> RSS Feed</a
<p class="text-center">
| <a
href="https://github.com/BuyMyMojo/aria.coffee"
target="_blank"
>
<Icon name="mdi:source-branch" class={"svg-inline"} />Source</a
> - Commit:<Fragment set:html={COMMIT} /> | <a
href="https://aria.coffee/rss.xml"
target="_blank"
>
<Icon name="mdi:rss" class={"svg-inline"} />RSS Feed</a
> | <span class="tooltip"
><a href="/special_blog">
<Icon name="mdi:rss" class={"svg-inline"} />blog for robots!</a
>
<span class="tooltiptext"><nobr>AI Honeypot~</nobr></span></span
> | <a
href="https://git.aria.coffee/aria/aria.coffee/actions?workflow=deploy.yaml"
target="_blank"
><img
src="https://git.aria.coffee/aria/aria.coffee/badges/workflows/deploy.yaml/badge.svg"
width="130px"
height="23"
style="display: inline-block;"
/></a
> |
<br />
</p>
</div>
<div class="flex">
@ -24,6 +49,10 @@ import { Icon } from "astro-icon/components";
/>
<script is:inline defer src="https://transring.neocities.org/ring.js"
></script>
<div id="wcb" class="carbonbadge wcb-d"></div>
<script
src="https://unpkg.com/website-carbon-badges@1.1.3/b.min.js"
defer></script>
</div>
</footer>
<style is:global>

View file

@ -1,14 +1,16 @@
---
import { Image } from "astro:assets";
import { Image, Picture } from "astro:assets";
const { name, image, target } = Astro.props;
---
<a href={`${target}`} target="_blank"><Image src={image} width={88} height={31} alt={`${name}`} /></a>
<a href={`${target}`} target="_blank"><Picture src={image} width={88} height={31} alt={`${name}`} class="flex" quality="max" decoding="async" loading="lazy" formats={['avif', 'webp']} /></a>
<style>
img {
image-rendering: pixelated;
width: 88px;
height: 31px;
min-width: 88px;
width: 176px;
min-height: 31px;
height: 62px;
padding: 4px;
}
</style>

View file

@ -0,0 +1,16 @@
---
import { Image, Picture } from "astro:assets";
const { name, image, target } = Astro.props;
---
<a href={`${target}`} target="_blank"><Picture src={image} width={88} height={31} alt={`${name}`} class="flex" quality="high" decoding="async" loading="lazy" formats={['avif', 'webp']} /></a>
<style>
img {
image-rendering: pixelated;
min-width: 88px;
width: 176px;
min-height: 31px;
height: 62px;
padding: 4px;
}
</style>

View file

@ -0,0 +1,16 @@
---
import { Image, Picture } from "astro:assets";
const { name, image, target } = Astro.props;
---
<a href={`${target}`} target="_blank"><Picture src={image} width={88} height={31} alt={`${name}`} class="flex" quality="low" decoding="async" loading="lazy" formats={['avif', 'webp']} /></a>
<style>
img {
image-rendering: pixelated;
min-width: 88px;
width: 176px;
min-height: 31px;
height: 62px;
padding: 4px;
}
</style>

View file

@ -0,0 +1,16 @@
---
import { Image, Picture } from "astro:assets";
const { name, image, target } = Astro.props;
---
<a href={`${target}`} target="_blank"><Picture src={image} width={88} height={31} alt={`${name}`} class="flex" quality="low" decoding="async" loading="lazy" formats={['webp']} /></a>
<style>
img {
image-rendering: pixelated;
min-width: 88px;
width: 176px;
min-height: 31px;
height: 62px;
padding: 4px;
}
</style>

View file

@ -0,0 +1,16 @@
---
import { Image, Picture } from "astro:assets";
const { name, image, target } = Astro.props;
---
<a href={`${target}`} target="_blank"><Picture src={image} width={88} height={31} alt={`${name}`} class="flex" quality="mid" decoding="async" loading="lazy" formats={['avif', 'webp']} /></a>
<style>
img {
image-rendering: pixelated;
min-width: 88px;
width: 176px;
min-height: 31px;
height: 62px;
padding: 4px;
}
</style>

View file

@ -0,0 +1,16 @@
---
import { Image, Picture } from "astro:assets";
const { name, image, target } = Astro.props;
---
<a href={`${target}`} target="_blank"><Picture src={image} width={88} height={31} alt={`${name}`} class="flex" quality="mid" decoding="async" loading="lazy" formats={['webp']} /></a>
<style>
img {
image-rendering: pixelated;
min-width: 88px;
width: 176px;
min-height: 31px;
height: 62px;
padding: 4px;
}
</style>

View file

@ -8,10 +8,11 @@ export default function Greeting({ messages }) {
return (
<div>
<h3>{greeting}! Thank you for visiting!</h3>
<h2>{greeting}! Thank you for visiting!</h2>
<button
class="greetButton px-2 rounded-xl"
onClick={() => setGreeting(randomMessage())}
type="submit"
>
New Greeting
</button>

View file

@ -8,32 +8,27 @@ import myBackground from "../img/sites/avatar-ht-f.png";
const optimizedBackground = await getImage({
src: myBackground,
format: "avif",
quality: 50,
width: 680,
quality: 45,
width: 512,
});
const optimizedBackgroundLQ = await getImage({
src: myBackground,
format: "jpeg",
quality: 60,
width: 680,
format: "webp",
quality: 45,
width: 512,
});
---
<style is:inline>
image-set(
url("image1.avif") type("image/avif"),
url("image2.jpg") type("image/jpeg")
);
</style>
<div
style={`width: 670px; border: 1px solid var(--border); background-image: image-set(url('${optimizedBackground.src}') type("image/avif"), url('/static/img/sites/avatar-ht-f.webp') type("image/webp"), url('${optimizedBackgroundLQ.src}') type("image/jpeg"));`}
style={`border: 1px solid var(--border); background-image: image-set(url('${optimizedBackground.src}') type("image/avif"), url('/static/img/sites/avatar-ht-f.webp') type("image/webp"), url('${optimizedBackgroundLQ.src}') type("image/jpeg"));`}
class="rounded-2xl flex flex-col shadow-xl shadow-black py-8 mb-8 items-center bg-center bg-cover"
>
<Picture
src={pfp}
class="size-40 rounded-full shadow shadow-black m-4"
width={320}
height={320}
quality={70}
width={192}
height={192}
quality={65}
densities={[1, 1.25, 1.5, 1.75, 2, 3, 4]}
formats={['avif', 'webp', 'jpeg']}
alt="Arias's profile picture"
/>
@ -45,10 +40,13 @@ const optimizedBackgroundLQ = await getImage({
</div>
</div>
<Partition>
<a href="/" class="nav-btn">Home</a> |
<p class="text-center">
| <a href="/" class="nav-btn">Home</a> |
<a href="/blog" class="nav-btn">Blog</a> |
<a href="/about" class="nav-btn">About</a> |
<a href="/tags" class="nav-btn">Tags</a> |
<a href="/friends" class="nav-btn">Friends</a> |
<a href="/other buttons" class="nav-btn">Moar 88x31</a>
<!-- <a href="/friends" class="nav-btn">Friends</a> | -->
<a href="/directory" class="nav-btn">Other Pages</a> |
<a href="/portfolio" class="nav-btn">Portfolio</a> |
<a href="/pay-me" class="nav-btn">Donate</a> |
</p>
</Partition>

View file

@ -4,7 +4,7 @@
<div
class="rounded-xl flex-row p-4 mb-4 shadow"
style="width: 670px; border: 1px solid var(--border); background-color: var(--third-colour);"
style="border: 1px solid var(--border); background-color: var(--third-colour);"
>
<slot />
</div>

View file

@ -0,0 +1,12 @@
---
import Partition from "./Partition.astro";
const { name, date, tags, link } = Astro.props;
---
<Partition>
<h2><a class="nav-btn text-2xl" href={link} target="_blank">{name}</a></h2>
<p>Date: {date}</p>
<p>Tags: <sub>{tags}</sub></p>
<hr/>
<p><slot /></p>
</Partition>

View file

@ -4,6 +4,7 @@ const discord = "https://discord.com/users/383507911160233985";
const github = "https://github.com/BuyMyMojo";
const steam = "https://steamcommunity.com/profiles/76561198227003516";
const bsky = "https://bsky.app/profile/did:plc:bzrn33tcfgjxnsanvg6py3xn";
const bskybackup = "https://bsky.app/profile/did:plc:valun42etpm73we7bgyh64ge";
const bskyArchive = "https://buymymojo.net/bsky/";
import { Icon } from "astro-icon/components";
@ -15,7 +16,14 @@ import { Icon } from "astro-icon/components";
<a href={bsky} class="p-1" target="_blank"
><Icon name="meteor-icons:bluesky" class={"svg-inline"} /> Bluesky</a
> - <button id="bskypid"
>@femgo.buymymojo.net (Click to copy DID)</button
>@aria.coffee (Click to copy DID)</button
>
</li>
<li>
<a href={bskybackup} class="p-1" target="_blank"
><Icon name="meteor-icons:bluesky" class={"svg-inline"} /> Bluesky Backup</a
> - <button id="bskypid-backup"
>@aria.pds.witchcraft.systems (Click to copy DID)</button
>
</li>
<li>
@ -51,10 +59,17 @@ import { Icon } from "astro-icon/components";
<script>
const bskypid = document.querySelector("#bskypid");
const bskypidbackup = document.querySelector("#bskypid-backup");
if (bskypid != null) {
bskypid.addEventListener("click", () => {
navigator.clipboard.writeText("did:plc:bzrn33tcfgjxnsanvg6py3xn");
});
}
if (bskypidbackup != null) {
bskypidbackup.addEventListener("click", () => {
navigator.clipboard.writeText("did:plc:valun42etpm73we7bgyh64ge");
});
}
</script>

View file

@ -0,0 +1,3 @@
<link rel="prefetch" href="https://aria.coffee/jxl_dec.js" fetchpriority="high">
<link rel="prefetch" href="https://aria.coffee/jxl_dec.wasm" fetchpriority="high">
<script src="https://aria.coffee/jxl.min.js" type="text/javascript"></script>

View file

@ -1,17 +1,31 @@
// Import utilities from `astro:content`
import { defineCollection, z } from "astro:content";
// Import the glob loader
import { glob } from "astro/loaders";
// Import utilities from `astro:content`
import { z, defineCollection } from "astro:content";
// Define a `loader` and `schema` for each collection
const blog = defineCollection({
loader: glob({ pattern: "**/[^_]*.md", base: "./src/blog" }),
loader: glob({ pattern: "**/[^_]*.{md,mdx}", base: "./src/blog" }),
schema: z.object({
title: z.string(),
pubDate: z.date(),
description: z.string(),
author: z.string(),
tags: z.array(z.string()),
draft: z.boolean(),
}),
});
const albums = defineCollection({
type: "data",
schema: ({ image }) =>
z.object({
title: z.string(),
description: z.string().optional(),
cover: image(),
}),
});
// Export a single `collections` object to register your collection(s)
export const collections = { blog };
export const collections = { blog, albums };

View file

@ -0,0 +1,3 @@
title: Aria Board
description: A bunch of images making up my vibes
cover: ./aria-board/1-Tw1nkPad.webp

Binary file not shown.

After

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 555 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 639 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 833 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 793 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 402 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 421 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 545 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 113 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 361 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 249 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.8 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 104 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

Some files were not shown because too many files have changed in this diff Show more