Compare commits

..

99 commits
dev ... master

Author SHA1 Message Date
Tabby
8495215748 changed redirect 2026-03-20 11:49:24 +00:00
Tabby
4593a47135 hopefully last test 2026-03-16 14:16:11 +00:00
Tabby
319974cac0 tesing keys 2026-03-16 13:51:38 +00:00
Tabby
e91e2cb017 revert test change 2026-03-16 13:44:27 +00:00
Tabby
4f49d9217d test change after forgejo migration 2026-03-16 13:41:25 +00:00
Tabby
aefa0fdc1e final update to github version 2026-03-16 13:14:48 +00:00
Tabby
37d7a0f83c added server charm slides redirect 2026-03-03 03:32:25 +00:00
Tabby
a44e76def4 added tinywebsite to current projects, new badge 2026-01-31 05:50:14 +00:00
Tabby
736823ebc7 fixed image formatting, new post done! 2026-01-24 04:06:29 +00:00
Tabby
782ff5f430 new blog post! 2026-01-24 02:52:05 +00:00
Tabby
ba4dd4a955 miaw 2026-01-21 02:35:50 +00:00
Tabby
fe0be38ffe it will return 2026-01-20 01:38:00 +00:00
Tabby
556501dddd updated with rust hacker 2026-01-18 10:57:19 +00:00
Tabby
536c4161f0 added new project card for gamejam 2026-01-11 09:03:18 +00:00
Tabby
6b6689d706 added pounce, updated projects 2026-01-09 02:33:34 +00:00
Tabby
aebebf0a52 hi page now redirects home outside of events 2026-01-09 02:18:26 +00:00
Tabby
db758dd407 added aoc, rust badge 2025-12-02 11:00:17 +11:00
Tabby
a23dcbe25c this should work... 2025-11-29 00:10:20 +11:00
Tabby
ee1a1fa71a update projects 2025-11-02 17:14:27 +11:00
Tabby
349bb6e290 added assignemnt 4 to wanderstep 2025-11-01 20:27:02 +11:00
Tabby
e98d12f6c1 added playtester info doc 2025-10-05 20:58:59 +11:00
Tabby
1621d288dd wrong folder oops 2025-10-05 19:27:50 +11:00
Tabby
36c8f0db7c updated wanderstep build 2025-10-05 19:24:17 +11:00
Tabby
4b9367e8e8 not a linux user 😢 2025-10-01 22:54:10 +10:00
Tabby
0a246a9db2 download videogame 2025-10-01 22:19:24 +10:00
Tabby
d0a175a34d gave wanderstep an image 2025-09-27 15:27:35 +10:00
Tabby
d7b7051328 idk whats up with the deeplinks 2025-09-18 13:43:50 +10:00
Tabby
3b45ddb21f deeplink testing 2025-09-17 20:34:24 +10:00
Tabby
b47b8fbb27 updated projects 2025-09-17 19:38:56 +10:00
Tabby
2012470396 type 2025-09-13 00:18:22 +10:00
Tabby
8f9894f5c0 hrt experiement made public 2025-09-13 00:17:52 +10:00
Tabby
d19d89f67e added sgs assignment 2 link 2025-09-13 00:15:58 +10:00
Tabby
ecdc1b3ca1 mrew 2025-09-08 14:36:39 +10:00
Tabby
52b2c49b50 updated homepage projects 2025-09-03 21:23:30 +10:00
Tabby
ceaf7b2e2c meow 2025-09-03 00:22:07 +10:00
Tabby
624e81b979 forogr comma 2025-09-03 00:21:10 +10:00
Tabby
99e29fd3a2 meow 2025-09-02 23:59:21 +10:00
Tabby
738888d8b5 add lockdown island link 2025-08-30 20:18:38 +10:00
Tabby
f2294c8465 updated email in privacy policy 2025-08-25 11:29:57 +10:00
Tabby
8600744845 update to current projects cards 2025-08-16 23:01:39 +10:00
Tabby
b2c3c95dca more projects 2025-08-14 15:13:36 +10:00
Tabby
7faa3603c2 minor update to featured cards 2025-08-13 22:43:08 +00:00
Tabby
4dd20fcf04 added ihub guide 2025-08-11 04:41:07 +00:00
Tabby
5bfb3260a7 added cards for my GDS2 and SGS projects 2025-08-03 18:32:29 +10:00
Tabby
9c45b47745 moved artfight to the all projects page 2025-08-01 17:14:41 +10:00
Tabby
5e494a2977 update projects 2025-07-21 15:01:31 +10:00
Tabby
33488695ca updated hi page 2025-07-09 16:38:27 +10:00
Tabby
bab9f55c4f icons fixed 2025-07-01 17:36:50 +10:00
Tabby
7142d83c07 update 2025-06-29 20:24:07 +10:00
Tabby
01c456cba3 add backlogged 2025-06-29 20:13:15 +10:00
Tabby
a9db28d1a8 partially added badges, currently buggy 2025-06-28 18:06:11 +10:00
Tabby
2119279787 bunch of updates 2025-06-28 13:33:50 +10:00
Tabby
43cea9f457 homepage update 2025-06-26 14:47:16 +10:00
Tabby
5cb1ecb477 updated name in blog 2025-06-24 13:19:01 +10:00
Tabby
ec2d8ee28a added samurai sculpt 2025-06-15 15:40:14 +10:00
Tabby
2636ec6199 homepage update 2025-06-15 15:23:43 +10:00
Tabby
037bda350d test2 2025-06-10 14:52:57 +10:00
Tabby
1b0e6e12d8 test embed 2025-06-10 14:47:38 +10:00
Tabby
2486d30943 homepage 2025-06-10 14:41:47 +10:00
Tabby
3817e54e0e mobile 2025-06-04 17:39:36 +10:00
Tabby
bc364d931c stays on screen 2025-06-04 17:37:30 +10:00
Tabby
1044ec8105 domain warning complete? 2025-06-04 17:35:01 +10:00
Tabby
7cb1abc494 Merge branch 'master' of https://github.com/tabby-cat-nya/vue-website 2025-06-04 17:19:25 +10:00
Tabby
ffd60b4bca testing 2025-06-04 17:19:20 +10:00
Tabby
97d4f0233d Update first-post.md and nuxt.config.ts 2025-05-27 17:59:18 +10:00
Tabby
ccda48ca21 pronoun change 2025-05-19 15:37:23 +10:00
Tabby
a11a19c70f removed 1 social 2025-05-18 12:45:13 +10:00
Tabby
8e41686a78 site updates for new project 2025-05-17 19:26:26 +10:00
Tabby
628418168d removed 2 socials 2025-05-14 16:28:32 +10:00
Tabby
969c89eb04 oh cool it just didnt work at all 2025-05-11 18:34:40 +10:00
Tabby
3f5db49d6e added iframe i def wont regret later and then remove 2025-05-11 18:22:06 +10:00
Tabby
cd580ba075 switch 2025-05-11 14:47:23 +10:00
Tabby
6cfe3bbd5a sddsa 2025-05-11 13:23:01 +10:00
Tabby
ca1a2492ee updated homepage 2025-05-11 13:21:45 +10:00
Tabby
f0a7d89328 added PIU full mode code 2025-05-03 11:58:24 +10:00
Tabby
dbdca34574 huge speed boost 2025-05-02 21:31:24 +10:00
Tabby
3ab088dd0a arcades post update! 2025-05-02 21:07:51 +10:00
Tabby
c1203381ab increased font size 2025-05-01 13:17:57 +10:00
Tabby
894adc52ea added arcades blog post 2025-04-30 22:30:52 +10:00
Tabby
f4b35da4d9 minor changes to css and first post 2025-04-30 22:21:22 +10:00
Tabby
12f7995358 this seems unwise 2025-04-28 00:41:25 +10:00
Tabby
b5ae86ade4 added more projects and brought back the current projects section of the index 2025-04-24 15:11:25 +10:00
Tabby
debe015932 mobile layout of projects page 2025-04-23 22:38:04 +10:00
Tabby
5d0e51cd6c projects page coming along nicely 2025-04-23 22:36:19 +10:00
Tabby
7d95482a50 meow 2025-04-23 21:43:40 +10:00
Tabby
d33022ac09 new project cards with modals! 2025-04-23 21:32:06 +10:00
Tabby
99c911c5d4 updated bio 2025-04-23 14:02:34 +10:00
Tabby
94543d80ac moved bluesky image 2025-04-23 13:50:17 +10:00
Tabby
30f19f7718 added bluesky social 2025-04-22 12:48:38 +10:00
Tabby
9a4216a7dc spelling error 2025-04-11 22:03:28 +10:00
Tabby
9a30b45529 contact 2025-04-11 00:23:15 +10:00
Tabby
954d16c91c added desc 2025-04-11 00:21:34 +10:00
Tabby
8e7a628c4e minor changes 2025-04-11 00:20:33 +10:00
Tabby
4a86b2941f added hrt experience and hidden blog posts 2025-04-11 00:15:40 +10:00
Tabby
f36b168aa0 chrono chamber landing page 2025-04-10 01:59:20 +10:00
Tabby
0c39c7da06 update homepage 2025-04-08 11:46:01 +10:00
Tabby
3f808b7b2c chrono chamber base page 2025-04-06 11:49:51 +10:00
Tabby
d3686e5029 okiee fixed the styling~ 2025-04-05 20:02:54 +11:00
Tabby
b43ce422dc testing 2025-04-05 19:21:13 +11:00
87 changed files with 1740 additions and 126 deletions

View file

@ -1,5 +1,8 @@
<script setup lang="ts">
import { SpeedInsights } from '@vercel/speed-insights/vue';
</script>
<template>
@ -10,6 +13,7 @@ import { SpeedInsights } from '@vercel/speed-insights/vue';
<NuxtLoadingIndicator />
<NuxtLayout>
<!-- <Navbar /> -->
<DomainWarning />
<NuxtPage />
</NuxtLayout>
</div>

View file

@ -17,6 +17,21 @@ body{
background-color: var(--bg);
color: var(--fg);
font-family: "Baloo Chettan 2";
font-size: 18px;
}
hr {
width: 100%;
height: 0px;
border: 5px var(--accent);
border-style: dotted none none none;
max-width: var(--max-width);
}
table, th, td {
border: 1px solid;
border-collapse:collapse;
border-color: var(--accent);
}
// html {

82
components/Badge.vue Normal file
View file

@ -0,0 +1,82 @@
<template>
<div class="badge" :style="badges[props.id].color" v-if="badges[props.id]">
<!-- <div class="badge" v-if="badges[props.id]"> -->
<img :src=badges[props.id].icon class="icon" />
<p class="text">{{ badges[props.id].name }}</p>
</div>
</template>
<script lang="ts" setup>
// methods:{
// meow()
// {
// return "color : blue;"
// }
// }
const props = defineProps<{
id: string,
// text: string,
// icon: string,
}>();
type IBadge = {
name: string;
icon: string;
color: string;
}
function meow() {
return 1;
}
//todo: in future make the icons local instead of links
const badges: { [id: string]: IBadge; } = {
"godot4": { name: "Godot 4", color:"background-color : white", icon: "img/badges/godot.png"},
"unity": { name: "Unity", color:"background-color : white", icon: "img/badges/unity.png"},
"gamejam": { name: "Game Jam!", color:"background-color : yellow", icon: "img/badges/gamejam.webp"},
"vue": { name: "Vue", color:"background-color : white", icon: "img/badges/vue.png"},
"nuxt": { name: "Nuxt", color:"background-color : white", icon: "img/badges/nuxt.svg"},
"my-linkedin": { name: "Tom Howarth", color:"background-color : white", icon: "https://upload.wikimedia.org/wikipedia/commons/thumb/c/ca/LinkedIn_logo_initials.png/960px-LinkedIn_logo_initials.png"},
"my-email": { name: "tomhowarth23@gmail.com", color:"background-color : white", icon: "https://static-00.iconduck.com/assets.00/email-circle-fill-icon-2048x2048-pa63yusl.png"},
"airtable": { name: "Airtable", color:"background-color : white", icon: "img/badges/airtable.svg"},
"threejs": { name: "Three.js", color:"background-color : white", icon: "img/badges/three.png"},
"steam": { name: "Steam API", color:"background-color : white", icon: "img/badges/steam.png"},
"prototype":{name: "Prototype", color:"background-color : CornflowerBlue", icon:"img/badges/prototype.png"},
"rust":{name: "Rust", color:"background-color : White", icon:"img/badges/rust.png"},
"esp32":{name: "ESP32", color:"background-color : White", icon:"img/badges/micro.png"},
};
// i wanna add some sort of data here, likely a dictionary, that matches a string to a Display name, Icon and Color for a badge
// match the given id to the dictionary, then load its values into the html
</script>
<style scoped>
.badge{
display: flex;
flex-direction: row;
background-color: rgb(255, 255, 255);
color: black;
border-radius: 10px;
align-items: center;
padding: 5px;
gap: 5px;
}
.icon{
width: 20px;
height: 20px;
}
.text{
margin: 0;
font-size: 14px;
}
</style>

View file

@ -1,7 +1,9 @@
<template>
<a class="big-button" :href="props.href">
<div class="button-box">
<NuxtLink class="big-button" :to="props.href">
<h2>{{props.text}}</h2>
</a>
</NuxtLink >
</div>
</template>
<script lang="ts" setup>
@ -11,12 +13,21 @@
});
</script>
<style>
<style scoped>
.big-button{
background-color: var(--accent);
color: black;
width: 80%;
text-decoration: none;
display: block;
margin-left: auto;
margin-right: auto;
/* justify-self: center; */
}
.button-box{
width: 100%;
}

View file

@ -10,7 +10,7 @@ const props = defineProps({
</script>
<template>
<a class="blog-card" :href="props.href">
<NuxtLink class="blog-card" :to="props.href">
<div class="blog-header">
<h2> {{props.heading}}</h2>
<p v-if="tags===''" class="blog-subheading">{{props.subheading}} - #{{ props.id }}</p>
@ -21,7 +21,7 @@ const props = defineProps({
<p>{{props.description}}</p>
</div>
</a>
</NuxtLink >
</template>
@ -37,6 +37,7 @@ const props = defineProps({
h2{
margin: 0;
text-align: center;
}
.blog-header{

View file

@ -14,7 +14,7 @@ const props = defineProps({
</template>
<style>
<style scoped>
.button {
background-color: #3f0064;
border: none;

View file

@ -0,0 +1,36 @@
<template>
<div class="top" v-if="url.hostname=='www.clevertop.dev'">
<!-- <div class="top" > -->
<p><b>Warning!</b> my old domain clevertop.dev (which you're currently visiting from!), is expiring on <b>June 19</b>, to access my site, please use <a href="https://tabbycat.dev">tabbycat.dev</a></p>
</div>
</template>
<script lang="ts" setup>
const url = useRequestURL()
console.log('host name', url.hostname)
</script>
<style scoped>
.top{
background-color: rgb(255, 92, 92);
color: black;
width: 100%;
padding: 5px;
text-align: center;
/* min-height: 100px; */
position: fixed;
top:0;
left:0;
z-index:100;
}
p{
margin: 0;
}
a{
color: blueviolet;
}
</style>

View file

@ -18,7 +18,7 @@ const props = defineProps({
</template>
<style>
<style scoped>
.image-container{
position: relative;
text-align: center;

View file

@ -0,0 +1,69 @@
<template>
<div>
<!-- <button @click="$emit('close')"> Close </button> -->
<img src="/public\img\close.png" class="close-button" @click="$emit('close')">
<h2>{{title}}</h2>
<p>{{description}}</p>
<br>
<!-- <ClientOnly> -->
<div class="badges-container">
<Badge v-for="(data, i) of badges" :key="i" :id="data" />
</div>
<div class="buttons">
<SmallButton v-for="(data, i) of buttons" :key="i" class="button" :text="data.text"
:href="data.link" />
</div>
<!-- </ClientOnly> -->
<br>
<p class="multiline-css-fix">{{longDescription}}</p>
</div>
</template>
<script lang="ts" setup>
import {defineProps, defineEmits} from 'vue'
import type { BadgeData } from './ProjectCardV2.vue';
export interface ButtonData {
text: string,
link: string,
}
const props = defineProps<{
title: string,
description: string,
longDescription?: string,
buttons?: Array<ButtonData>,
badges?: Array<string>,
}>();
defineEmits("close")
</script>
<style scoped>
.close-button{
float:right;
/* display: block; */
/* margin-left: auto; */
width: 32px;
&:hover{
filter: invert();
}
}
.multiline-css-fix{
white-space: pre-wrap;
}
.badges-container{
display: flex;
flex-direction: row;
gap: 5px;
flex-wrap: wrap;
margin-bottom: 10px;
}
</style>

View file

@ -0,0 +1,173 @@
<template>
<div class="top-level">
<!-- <button @click="isOpen=true">Open</button> -->
<!-- Project Card -->
<div @click="isOpen=true" class="card">
<!-- <div class="project-image"></div> -->
<img class="project-image" :src="props.src">
<div class="content">
<h2>{{props.title}}</h2>
<p>{{props.description}}</p>
<div class="badges-container">
<!-- <Badge text="Godot" icon="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Godot_icon.svg/2048px-Godot_icon.svg.png" />
<Badge text="Badge2" icon="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Godot_icon.svg/2048px-Godot_icon.svg.png" />
<Badge text="Badge3" icon="https://upload.wikimedia.org/wikipedia/commons/thumb/6/6a/Godot_icon.svg/2048px-Godot_icon.svg.png" /> -->
<Badge v-for="(data, i) of badges" :key="i" :id="data" />
</div>
</div>
</div>
<!-- Popup Modal -->
<Teleport to="body">
<div class="modal" v-if="isOpen">
<div>
<ProjectCardContent
@close="isOpen = false"
:title=props.title
:description=props.description
:long-description=props.longDescription
:buttons=props.buttons
:badges=props.badges
/>
</div>
</div>
</Teleport>
</div>
</template>
<script lang="ts" setup>
import {ref, defineProps} from 'vue'
import ProjectCardContent from './ProjectCardContent.vue';
const isOpen = ref(false)
export interface ButtonData {
text: string,
link: string,
}
export interface BadgeData {
text: string,
icon: string,
}
const props = defineProps<{
title: string,
description: string,
longDescription?: string,
src: string,
buttons?: Array<ButtonData>,
badges?: Array<string>, //just the id's
}>();
</script>
<style scoped>
.root{
position:relative
}
.top-level{
margin-right: 10px;
margin-bottom: 5px;
}
.card{
position: relative;
text-align: center;
overflow: hidden;
border-color: var(--accent);
border-width: 3px;
border-style: solid;
width: 100%;
/* overflow: auto; */
height: max-content;
&:hover{
border-color: white;
cursor: pointer;
}
}
.project-image{
width: 100%;
/* height: 100px; */
object-fit: cover;
background-color: aqua;
margin-bottom: -7px;
}
.content{
position: absolute;
bottom: 8px;
left: 16px;
text-align: left ;
visibility:hidden;
/* font-size: 14px; */
margin-right: 10px;
/* &:hover{
visibility: visible;
} */
}
.card>img:hover{
/* filter: brightness(40%) blur(2px); */
}
.card:hover, .content:hover{
border-color: white;
cursor: pointer;
}
@media (min-width: 1000px){
.card:hover, .content:hover{
.content{
visibility: visible;
}
.project-image{
filter: brightness(40%) blur(2px);
}
}
}
.modal {
position: fixed;
top: 0;
left: 0;
z-index: 100;
background-color: rgba(0,0,0,0.1);
width: 100%;
height: 100%;
display: flex;
justify-content: center;
align-items: center;
}
.modal > div{
background-color: rgb(53, 53, 53);
padding: 50px;
border-radius: 10px;
margin: 10%;
max-height: calc(100vh - 210px);
overflow-y: auto;
}
.badges-container{
display: flex;
flex-direction: row;
gap: 5px;
flex-wrap: wrap;
}
</style>

View file

@ -0,0 +1,41 @@
<script setup lang="ts">
const props = defineProps({
href: String,
text: String
});
</script>
<template>
<a class="button" :href="props.href">
<p>{{ props.text }}</p>
</a>
</template>
<style scoped>
.button {
background-color: #8904aa;
border: none;
color: white;
padding: 5px;
border-radius: 5px;
text-align: center;
text-decoration: none;
display: inline-block;
font-size: 16px;
overflow: hidden;
margin-right: 5px;
}
.button:hover{
background-color: var(--accent);
color: black;
}
p{
font-weight: 100;
margin: 0;
}
</style>

View file

@ -4,7 +4,7 @@
</div>
</template>
<style>
<style scoped>
.socials {
display: flex;
flex-wrap: wrap;

View file

@ -22,7 +22,7 @@ const props = defineProps({
</template>
<style>
<style scoped>
.text-container{
position: relative;
text-align: center;

View file

@ -15,7 +15,7 @@ So i guess this is the first proper post for my site where i will explain how th
- **Framework:** I've made this evrsion of my website with Nuxt.js which is a framework based on Vue.js
- **Hosting:** The site is hosted on Vercel within the free teir
- **Domain Manageemnt:** I put the domain on cloudflare for now at least
- **Domain Management:** I put the domain on cloudflare for now at least
### Markdown Formatting

View file

@ -44,6 +44,25 @@ Text Styles:
var x = 1
```
| heading 1 | heading 2 |
| ---------- | ---------- |
| content 1a | content 2a |
| content 1b | content 2b |
<!-- ::ProjectCardV2
---
src:https://img.itch.zone/aW1nLzE3MzE3NDAzLnBuZw==/315x250%23c/pxmt%2BB.png
title:ChronoChamber
description:Complete the level before time catches up to you
---
:: -->
> [!NOTE] test
> Contents
$1m^3$
---
### Links to google:

View file

@ -19,7 +19,7 @@ This singleton only works in web exports since it allows us to connect the engin
- Pros: If you can do it in JS, you can almost certainly do it here
- Cons: Godots inbuilt editor has basically no support for it so you'll be editing JS code without any error checking/IntelliSense unless you make it in another IDE
![A text string containing JavaScript Code](https://github.com/Clevertop/vue-website/blob/master/public/img/blogImages/JsCodeInString.png?raw=true)
![A text string containing JavaScript Code](/img/blogImages/godot-file-access-web/JsCodeInString.png)
## Loading/Uploading Files
Uploading files is by far more complicated and while I'm sure you could implement it from scratch with the bridge I opted to use the [FileAccessWeb addon by scrawach](https://godotengine.org/asset-library/asset/2118) as it is exactly what I needed for my project

View file

@ -0,0 +1,71 @@
---
title: 'My experience with Dr Caran Cheung, Mascot Medical, NSW (MtNB)'
description: "Post I originally put on Reddit about the process of starting feminising HRT through Caran Cheung at Mascot Medical"
date: 'Originally Posted 23-02-2024'
id: 9
tags: 'Queerness'
hidden : false
---
This post was originally posted in the r/transgenderau subreddit here: https://www.reddit.com/r/transgenderau/comments/1axl4pz/my_experience_with_dr_caran_cheung_mascot_medical/ but I've deciided to make a copy of it here for archival and as an alternative to reddit :3
---
When deicing which doctor to use for starting hrt I found it really helpful to be able to read about other people experiences with particular doctors, that was one of the things that helped me decide to speak to Dr Caran Cheung at Mascot Medical when I wanted to properly start my medical transition a few weeks ago. Now that the process is complete and I had my first dose yesterday, I want to give back by detailing me experience with her :)
The first appointment was about 40 minutes long but this was made a little bit longer since we had to go over alot of the basic medical history questions. Once those were out of the way we talked about how I wanted to start gender affirming hormones under the informed consent model, my goals and the effects of feminizing hrt.
Since my goals mostly focus on the mental effects of hrt (I currently see the psychical effects as a bonus but not the main thing) we determined that a low dose of Cypro and Estrogen would be most suitable for me. As another user mentioned in their post (https://www.reddit.com/r/transgenderau/comments/xz897n/hrt\_with\_dr\_caran\_cheung/) Dr Caran did ask me about some of my mental health history but I agree that it did not feel cold or uncaring (I'm not even sure if asking about it is a choice for them, is it possible that they just have to make sure were in a stable mental position to start hrt?).
At the end of the appointment she gave me a copy of the patient information and consent form (https://static1.squarespace.com/static/5d8c2136980d9708b9ba5cd3/t/5e7a65dce1294b32cd6929d3/1585079773283/Informed+Consent\_Feminising+Hormone+Therapy\_TH2019.pdf) aswell as a slip to take to Laverty pathology for a blood test (note it did require fasting so I did it the next morning)
12 days later the blood test results were returned and I had my second appointment. Caran walked me though the meanings of each section of results and how we will be targeting certain values with the hrt, All the blood test results were clear for me so we were able to move forward quickly.
She took a couple more baseline measurements of my weight and height before we had another talk - in more detail this time - about goals and the permanent/reversible effects and risks of hrt. She also answered any additional questions I had about the drugs and the process. Once that was done I filled out the consent form and we moved onto the prescribing!
Since I wanted to at least start things slowly she prescribed a quarter cypro tablet every 2 days and 1 pump of estrogel (0.75mg estradiol) per day but also included enough in the prescription such that if I choose to I can increase the dose myself to 2 pumps per day, the prescriptions were delivered by email but she also offered SMS or physical copies. Finally she gave me another slip for a blood test at the 3 month mark for our next check-in!
After the appointment I had the two scripts and was able to fulfill them at the Priceline Pharmacy that is right next-door to the medical practice. So finally I had everything I needed to start my medical transition :D
# Time
The entire process for booking the 1st appointment to receiving the prescriptions took 13 days! Its worth noting that I was able to get an appointment for the very next day when I was booking and also that I might have been able to shorten the time even more if I had called up earlier to check if they had received the blood test results
# Cost
Each appointment was classed as a "Long Consultation" which was $150 or $70.30 after the Medicare rebate, additionally if you have a Centrelink HCC you can get a further discount on the fees of about $25
At the next-door Priceline the bottles of estrogel were $34.95 each (lasts about 1-2 months depending on dosage, not covered by PBS) and the Cyproterone was $6.70 (enough for more than 2 years at current dosage)
# Other Notes
* As mentioned in the time section I didn't receive any call or message to alert me that the blood test results had been returned, you might want to start checking after 2-3 business days if you want to make the process as fast as possible
* For some reason they weren't able to give me the HCC discount for the first appointment, I never really pushed to know why but after making sure they had my HCC details I had no issues with it for the second appointment
* Mascot medical is located really nicely just a couple minutes walk from Mascot train station
* During both visits the whole shopping area where mascot medical was had very poor mobile data connection, this made accessing the prescriptions (from my email) and my digital wallet rather tricky, you may want to consider a different format for the prescriptions if this continues to be the case
Overall I had a really good experience with Dr Caran and highly recommend her for anyone else looking to start hrt! happy to answer questions if i missed anything, good luck out there!
---
# Notes since original post (11/04/2025)
Theres a few little updates and changes that I'll mention here:
- Just passed one year and things are going really well :3
- Estrogen Gel is now available much cheaper if you have a health care card since it has been added to PBS
If you'd liek to ask any questions, feel free to message me on bluesky or anywhere you can find me

20
content/blog/ihub.md Normal file
View file

@ -0,0 +1,20 @@
---
title: 'How to gain access to the iHub at UTS'
description: "their documentation is out of date"
date: '11-08-2025'
id: 8
tags: ''
---
Had quite a few people wonder how to gain access to the [iHub at UTS](https://www.uts.edu.au/for-students/current-students/managing-your-course/current-students-information-engineering-and-information-technology/innovation-hub) but the information on that page seems quite out of date so heres a little guide if it helps~
1. First, head over to https://login.uts.edu.au and login with your student or staff account
2. In the list of apps, find and click on "Rapid Global" - this is the platform they use for all their training modules
3. Click "Trainee Portal"
4. Click "Courses" at the top
5. The course "Safety and Wellbeing Essentials" should be listed under *courses requiring action* but if it isn't, try pressing the "Add Course" button and search for it
6. Complete the course and quiz
7. Once done, your card should automatically be enabled for the room, however it may take a few days to activate!
Hope that helps :3

View file

@ -13,16 +13,16 @@ Pikmin Bloom is a location based game made by Niantic, heard of Pokemon Go? It's
I started playing in mid December, A few days before heading down to the country to spend Christmas with my family, and hoped that the game would be a nice little motivation to spend time outside and go on walks. During the time I spent in the country this worked great, and at the start of January I made it a goal to try and get 12000 event points for the *Blue Choclateir Dress* and track my progress throughout the month.
![A screenshot of my spreadsheet for tracking my stats in Pikmin Bloom](https://github.com/Clevertop/vue-website/blob/master/public/img/blogImages/PikminSpreadsheet.jpg?raw=true)
![A screenshot of my spreadsheet for tracking my stats in Pikmin Bloom](/img/blogImages/pikmin-bloom/PikminSpreadsheet.jpg)
Within the first couple weeks, I was well on my way and had gathered some interesting information about how the game seemed to distribute rewards - One of the games mechanics is *mushrooms*. These are points of interest that appear on the map and players must work together to destroy them. Usually they would provide a reward relevant to the color of the mushroom but the monthly *event mushrooms* instead provide a mystery box.
From the data I had collected, I found that providing a higher contribution to a mushroom battle compared to your peers resulted in a statistically better chance at receiving a higher quality mystery box that could contain better rewards - and most importantly for my objectives - **more event points**!
![Some of my findings from the pikmin bloom stats showing the above discovery](https://github.com/Clevertop/vue-website/blob/master/public/img/blogImages/PikminBluesky.png?raw=true)
![Some of my findings from the pikmin bloom stats showing the above discovery](/img/blogImages/pikmin-bloom/PikminBluesky.png)
This was very good news as I had already found that the event mushrooms were the single biggest source of event points in the game, so it was important to use all 3 attacks effectively to provide the best chances of receiving the event points that were needed. Especially since I figured out at the start of the month that I would need approximately 429 event points per day in order to reach my goal of 12000 by the end of the (28 day) month.
![A table showing my cocoa earnigns over the first 11 days of the challenge](https://github.com/Clevertop/vue-website/blob/master/public/img/blogImages/PikminCocoa.png?raw=true)
![A table showing my cocoa earnigns over the first 11 days of the challenge](/img/blogImages/pikmin-bloom/PikminCocoa.png)
For the first couple weeks I was able to maintain the required average but then the strategy unfortunately fell apart when I returned to Sydney. While I was in the country, I had been logging on a few times a day when I had a bit of downtime to send my Pikmin off to battle mushrooms in a largely uncontested area. When I returned to the city, this was no longer the case and suddenly the game changed from a relaxing way to fill downtime to a frustrating search for mushrooms to attack.

View file

@ -0,0 +1,72 @@
---
title: 'Eliminate advertising on Steam'
description: 'Want steam to just manage your games and stop trying to sell you new ones? heres some tips and tricks'
date: '24-01-2026'
id: 10
tags: 'Gaming'
hidden: false
---
By default, the steam client has a number of ways to push you towards buying new games, not exactly a surprise since they are primarily a videogame storefront and distributor, however the adverting can still get annoying when all you want to do is play the games you already have. I've made this post to be a summary of all the ways you can reduce and/or eliminate steam promotional material.
### The Promotions Popup
![promotions-popup.png](/img/blogImages/steam-adverts/promotions-popup.png){style="width: 25vw;"}
You know that popup that appears everytime steam launches? You can switch it off!
**Steam -> Settings -> Interface -> "Notify me about additions or changes to my games, new releases, and upcoming releases"**
![promotions-popup-fix.png](/img/blogImages/steam-adverts/promotions-popup-fix.png){style="width: 50vw;"}
### Startup Location
By default, steam opens to the store page, wouldn't it be more useful if it opened to your library?
**Steam -> Settings -> Interface -> "Start Up Location" (Change to Library)**
![startup-location.png](/img/blogImages/steam-adverts/startup-location.png){style="width: 50vw;"}
### What's New Promotions
![whatsnew-before-after.png](/img/blogImages/steam-adverts/whatsnew-before-after.png){style="width: 50vw;"}
At the top of the library there is a What's New panel that often shows alot of promotions - albeit from developers themselves rather than from steam but still, if you want to limit it to only patch notes theres a handy setting, However, it is worth noting this setting is quite senstive and will also affect patch notes with any mention of promotional material aswell as posts which are both non-promotional and non-patch notes (for example community update posts)
**Library Tab -> What's New (Cog icon) -> "Only show product updates not other types of events and news"**
![whatsnew-fix.png](/img/blogImages/steam-adverts/whatsnew-fix.png){style="width: 50vw;"}
### Emails
Steam has many different categories of promotional emails, your preferences can be managed from:
**Steam -> Settings -> Account -> Account Details -> Manage Email Preferences**
Below are the main advertising related options, switch off those which you don't want
- A discount is applied to an item on my wishlist.
- An item on my wishlist has released (including full release or Early Access), or has transitioned from Early Access to full release.
- A demo for an item on my wishlist has released.
- A Greenlight submission I followed or favorited is released (including full release or Early Access), or has transitioned from Early Access to full release.
- A publisher or developer I followed has released (including full release or Early Access), or has transitioned from Early Access to full release.
- A publisher or developer I followed has released a demo.
- A seasonal promotion is beginning.
- A Steam sponsored Theme fest and sale is beginning.
- Steam Next Fest is beginning. This occurs three times a year, celebrating upcoming games with free demos.
### Steam Notifications
Steam also displays notifications while the client is running, they can be configured from:
**Steam -> Settings -> Notifications**
These are the options most related to game promotions:
- Steam Notifications: An item on my Wishlist is on sale
- Steam Notifications: There's a major sale
- Friend Notifications: When a friend joins a game
### Small Mode
If you mostly only use steam as a game launcher and are not very interested in the rest of the features of the client, you might find *Small Mode* useful. This option hides everything except the library games list for a minimalist and advertising free client
**View -> Small Mode**
![small-mode.png](/img/blogImages/steam-adverts/small-mode.png){style="width: 25vw;"}

View file

@ -0,0 +1,288 @@
---
title: 'Sydney Arcade Rhythm Games Guide'
description: "My hopefully comphensive guide to the best places to play arcade rhythm games in Sydney!"
date: '30-04-2025'
id: 7
tags: 'Gaming'
---
Been wanting to play arcade rhythm games including MaiMai, Chunithm and DDR lately but was wondering where is the best place to play them in Sydney. So over the past week or so I've been visiting all the main arcades and comparing their machines and pricing setups to figure out where the best place is to play!
If you're not interested in all the research and calculations, feel free to [Skip to the conclusions](/blog/sydney-arcades#conclusions-and-key-takeaways)
---
1. [Arcades](/blog/sydney-arcades#arcades)
2. [Credit Pricing](/blog/sydney-arcades#credit-pricing)
3. [Game Selection](/blog/sydney-arcades#game-selection)
4. [Game Pricing](/blog/sydney-arcades#game-pricing)
1. [MaiMai](/blog/sydney-arcades#maimai)
2. [Chunithm](/blog/sydney-arcades#chunithm)
3. [Taiko](/blog/sydney-arcades#taiko)
4. [Sound Voltex](/blog/sydney-arcades#sound-voltex)
5. [Beatmania IIDX](/blog/sydney-arcades#beatmania-iidx)
6. [Dance Dance Revolution](/blog/sydney-arcades#dance-dance-revolution)
7. [Pump it Up](/blog/sydney-arcades#pump-it-up)
8. [Dancerush](/blog/sydney-arcades#dancerush)
5. [Other Deals](/blog/sydney-arcades#other-deals)
6. [Conclusions and key takeaways](/blog/sydney-arcades#conclusions-and-key-takeaways)
#### Update 02/05/2025
- Added Timezone Game20 Promo
- Added Purikura Photoland to comparisons, thankyou [Office Lesbian on Bluesky](https://bsky.app/profile/maid.dating)!!
- Added Machines present at the Koko arcade city heros location - just across the road from their George St venue
- Added table of contents to quickly navigate the (increasingly unwieldy) page
- Added indicators for the best price normally, and the best price during promotions
- Added Pump it up to all sections
---
## Arcades
I've collected my data from 4 arcades in Sydney:
- Koko Arcade on George St (Including the games hidden away across the road at City Heros)
- Timezone at Haymarket
- Timezone in Central Park Mall (need to check if its the same)
- Fortress Arcade in Central Park Mall
- Purikura Photoland at Capitol Square
![[arcades-map.png]]
## Credit Pricing
Each arcade has their own credit pricing scheme where generally, the more you top up at once, the more bonus credit you get. This is very important for getting the best pricing but requires some planning.
Higher "Credit per real $" is better
### Koko Arcade
| Amount spent | Provided Credit | Credit per real $ |
| ------------ | --------------- | ----------------- |
| $30 | $40 | $1.33 |
| $60 | $90 + VIP | $1.50 |
| $100 | $160 + VIP | $1.60 |
| $200 | $340 + VIP | $1.70 |
From the numbers, the $200 top-up is the best deal *but* that is alot of money, so for the later calculations ill be comparing both the $100 and $200 top-up options.
### Timezone (All Locations)
| Amount spent | Provided Credit | Credit per real $ |
| ------------ | --------------- | ----------------- |
| $35 | $40 | $1.14 |
| $50 | $70 + VIP | $1.40 |
| $100 | $150 + VIP | $1.50 |
| $120 | $200 + VIP | $1.67 |
Across the board these are much weaker deals but that is likely in no small part due to the fat they periodically run the Double Dollars promotion:
#### Double Dollars
It is generally agreed that the best (and ideally only) time you should top-up at Timezone is during double dollars promotions. These run every 1-2 months.
This is exactly what it says on the tin, the amount you top-up + the same amount in bonus credit.:
| Amount spent | Provided Credit | Credit per real $ |
| ------------ | --------------- | ----------------- |
| $60 | $120 + VIP | $2.00 |
| $100 | $200 + VIP | $2.00 |
#### Game20 Promo
Sometimes they also run a special promo where you can get $20 off any topup at or over $30. You can also get $200 credit for $80. *Note this can only be redeemed once every time the promo is run*
| Amount spent | Provided Credit | Credit per real $ |
| ------------ | --------------- | ----------------- |
| $10 | $30 | $3.00 |
| $80 | $200 | $2.50 |
I'll be using the 80/200 topup in comparisons because while the 10/30 is a better rate it is difficult to utilize when it can only be redeemed once every time it runs. It is also run much less frequently than Double Dollars
### Fortress
| Amount spent | Provided Credit | Credit per real $ |
| ------------ | --------------- | ----------------- |
| $20 | $25 | $1.25 |
| $40 | $55 | $1.38 |
| $60 | $90 | $1.50 |
| $80 | $130 | $1.63 |
| $100 | $170 | $1.70 |
The newest location in Sydney is the Fortress Arcade located across from the Timezone in Central Park Mall.
Overall better than Timezone outside of promos, and on-par with Koko when it comes to credit amounts alone, Fortress does not have a VIP system.
Fortress Melbourne appears to have very promising student deals however these cannot currently be applied to the Sydney venue. That said, I spoke to one of the staff about it and they said that they are planning on introducing student deals at some point
### Purikura Photoland
Only uses coins for game payment, so no special rules here, $1 spent is $1 credit
## Game Selection
Before we move onto game pricing, Now is a good time to have a quick look at the selection of games that each arcade offers.
The "Single" or "Double" notation represents the configuration of the machine - whether it is a single machine that stands on its own or a double machine that is physically connected. It is important to note that most double machines will almost always only support 1 player playing alone or two players playing together. ***Not two players playing separately***.
| Game | Koko | TZ Haymarket | TZ Central | Fortress | Purikura Photoland |
| ------------------------------ | ---- | ------------ | ---------- | -------- | ------------------ |
| MaiMai - Double | 5+1* | 2 | 2 | 1 | 0 |
| Chunithm - Single | 3 | 2 | 1 | 0 | 0 |
| Taiko - Double | 5 | 1 | 2 | 1 | 1+1* |
| Sound Voltex - Single | 3 | 1 | 1 | 0 | 5 |
| Beatmania IIDX - Double | 1 | 0 | 0 | 0 | 2 |
| DanceDance Revolution - Double | 2+1* | 2 | 0 | 1 | 0 |
| Pump It Up - Double | 1 | 0 | 1 | 0 | 0 |
| Dancerush - Single | 2 | 1 | 0 | 0 | 0 |
One thing that is apparent from this is that there are by far the most machines at the Koko arcade. This is especially relevant if you want to play the more popular games such as MaiMai, Chunithm and Taiko as you will hopefully be able to find a free machine or at least not have to wait as long.
On the other hand, fortress have the least at only 3 games of interest. That said, due to the age requirement of 18+ and its tucked away location, this arcade was completely empty when i checked it at about 5pm.
## Game Pricing
We've had a look at the top up prices, but those mean little without the context of the games pricing. The most important value here is the "Real cost" that is, the amount of money you would have had to have spent in a top up, in order to play the game. While the amount displayed on the reader is also listed, that is less important. For each game I will compare against the following top-ups:
- Koko $100
- Koko $200
- Timezone $120
- Timezone DD (Double Dollars)
- Timezone Game (Game20 Promo)
- Fortress $100
- Purikura Cash
I will also be using the VIP price since if you did top-up with any of these amounts you should get it (except for fortress which doesn't have a VIP scheme).
### MaiMai
| Option | Reader Price | Real Cost |
| --------------- | ------------ | ----------------------- |
| Koko $100 | $3.20 | $2.00 |
| Koko $200 | $3.20 | $1.88 |
| Timezone $120 | $3.30 | $1.98 |
| Timezone DD | $3.30 | $1.65 |
| Timezone Game20 | $3.30 | **$1.32** (Best Promo) |
| Fortress $100 | $2.70 | **$1.59** (Best Normal) |
Note on the songs: If you play alone you only get 3 songs, If you play cabinet to cabinet then you get 4.
I did not expect Fortress to win this one, but here we are.
#### Offline Machine at City Heros
| Option | Reader Price | Real Cost |
| --------- | ------------ | ---------------- |
| Koko $100 | $2.40 | $1.50 |
| Koko $200 | $2.40 | **$1.41** (Best) |
There is also a MaiMai festival machine located at the Koko Arcade city heros location. This is priced cheaper but as I understand, This cannot be used with save data cards that have played any of the later versions of the game
### Chunithm
| Option | Reader Price | Real Cost |
| --------------- | ------------ | ----------------------- |
| Koko $100 | $2.40 | $1.50 |
| Koko $200 | $2.40 | **$1.41** (Best Normal) |
| Timezone $120 | $2.60 | $1.56 |
| Timezone DD | $2.60 | $1.30 |
| Timezone Game20 | $2.60 | **$1.04** (Best Promo) |
I'm not entirely sure why its cheaper, maybe the fact that they are single machines is a part of it but they still offer the bonus song when playing with someone.
### Taiko
| Option | Reader Price | Real Cost |
| --------------- | ------------ | ----------------------- |
| Koko $100 | $2.40 | $1.50 |
| Koko $200 | $2.40 | **$1.41** (Best Normal) |
| Timezone $120 | $2.80 | $1.68 |
| Timezone DD | $2.80 | $1.40 |
| Timezone Game20 | $2.80 | **$1.12** (Best Promo) |
| Fortress $100 | $2.69 | $1.58 |
| Purikura Cash | $2.00 | $2.00 |
Timezone with promos wins. Otherwise Koko is best outside of special promos
At Purikura there is also a very retro (CRT screen and everyhting) Taiko machine that can be played for $2
### Sound Voltex
| Option | Reader Price | Real Cost |
| --------------- | ------------ | ----------------------- |
| Koko $100 | $2.60 | $1.63 |
| Koko $200 | $2.60 | $1.53 |
| Timezone $120 | $2.40 | **$1.44** (Best Normal) |
| Timezone DD | $2.40 | $1.20 |
| Timezone Game20 | $2.40 | **$0.96** (Best Promo) |
| Purikura Cash | $2.00 | $2.00 |
Timezone wins this one even outside of promos.
### Beatmania IIDX
| Option | Reader Price | Real Cost |
| ------------- | ------------ | ---------------------- |
| Koko $100 | $3.20 | $2.00 |
| Koko $200 | $3.20 | **$1.88** (Best Promo) |
| Purikura Cash | $2.00 | $2.00 |
Couldn't find many of this machine, Only 1 at Koko and 2 at Purikura. By value the big Koko top-up wins, but that's a lot to spend.
### Dance Dance Revolution
| Option | Reader Price | Real Cost |
| --------------- | ------------ | ----------------------- |
| Koko $100 | $3.00 | $1.88 |
| Koko $200 | $3.00 | $1.76 |
| Timezone $120 | $2.60 | **$1.56** (Best Normal) |
| Timezone DD | $2.60 | $1.30 |
| Timezone Game20 | $2.60 | **$1.04** (Best Promo) |
| Fortress $100 | $2.70 | $1.59 |
A decisive win for Timezone, even without promos.
Make sure you pick premium play (assuming it is also 1 credit for you) unlike standard play it grantees you get to play all 3 songs plus potentially an extra stage depending on your performance (It's a complicated system so I think I'll talk about this and many other beginner DDR tips in another post!). The menu option is listed because in some regions Standard play is a cheaper option but comes at the risk of your game ending early if you perform poorly.
#### Special Machine
In the Koko City Hero's location there is also a custom DDR machine managed by a community member running Stepmania!
At the moment it looks like the machine can be a little temperamental so try checking their website if you're having any trouble: https://sil.fyi/chgs-itg/
| Option | Reader Price | Real Cost |
| --------- | ------------ | ---------------- |
| Koko $100 | $2.30 | $1.44 |
| Koko $200 | $2.30 | **$1.35** (Best) |
### Pump it Up
| Option | Reader Price | Real Cost |
| --------------- | ------------ | ----------------------- |
| Koko $100 | $2.80 | $1.75 |
| Koko $200 | $2.80 | $1.65 |
| Timezone $120 | $2.40 | **$1.44** (Best Normal) |
| Timezone DD | $2.40 | $1.20 |
| Timezone Game20 | $2.40 | **$0.96** (Best Promo) |
Timezone always wins again
By default the machine is limited to only a small selection of easy songs. In order to unlock "Full Mode" you need to enter a code sequence on the pads or buttons, see here: https://www.youtube.com/watch?v=LpRiN-hRrLI
### Dancerush
| Option | Reader Price | Real Cost |
| --------------- | ------------ | ---------------- |
| Koko $100 | $3.30 | $2.06 |
| Koko $200 | $3.30 | **$1.94** (Best) |
| Timezone $120 | ??? | ??? |
| Timezone DD | ??? | ??? |
| Timezone Game20 | ??? | ??? |
*(Timezone pricing unknown as the machine in Timezone Haymarket was out of order when I went to check it, will update if I see it working)*
With such flashy machines, the increased price doesn't surprise me.
Always play Standard mode instead of Lite mode assuming its the same price. In both light and standard you play two songs but in standard mode you get to play an extra song if you score 180% over the first two songs. Note that for the extra song you only get 10 lives instead of a life bar but if they are the same price there's no reason not to go for it.
## Other Deals
A few other offers I saw that may be worth considering depending on what you play at the arcade:
### Koko Arcade Package Deals
these are special offers that include a certain amount of plays on games depending on the color of the reader, and a flat amount of tickets (no tickets can be earned during gameplay with these offers). There are 3 options:
| $28 Package | $35 Package | $45 Package |
| ---------------------------------------------- | ----------------------------------------------- | ------------------------------------------------ |
| 60 mins unlimited red and yellow | 90 mins unlimited red and yellow | 120 mins unlimited red and yellow |
| 5x Rainbow premium games<br>(worth upto $9.40) | 7x Rainbow premium games<br>(worth upto $13.16) | 10x Rainbow premium games<br>(worth upto $18.80) |
| 2x Blue attraction games | 4x Blue attraction games | 8x Blue attraction games |
| 8x Purple prize games | 10x Purple prize games | 20x Purple prize games |
| 350 tickets | 500 tickets | 700 tickets |
If you're reading this post, then you are probably most interested in the rhythm games listed above which are all "Rainbow premium games" so its not much of a value proposition if that's all you're playing. However, it may be worth considering if you play the other kinds of games.
*Note: According to the poster I saw, the package deals must be booked two weeks in advance.*
### Fortress Membership
Fortress offer a month membership for $20/month, One of the perks it provides is $15 arcade credit per month this is *not* worth it at all on its own, but if you frequent fortress it may make sense for you.
## Conclusions and key takeaways
With all that said and done, this is the best value way to play each game:
- **MaiMai** - On price, Fortress wins except for when Timezone runs the rare Game20 promotion
- **Chunithm** - Either Timezone promo is the best deal, otherwise its the $200 Koko top-up
- **Sound Voltex** - Always Timezone, even without either promo
- **Beatmainia IIDX** - Koko Arcade is cheaper in the long run, but if you only want to play a few games maybe try Purikura
- **DanceDance Revolution** - Also Always Timezone, even without either promo
- **Pump It Up** - Also Always Timezone, even without either promo
- **Dancerush** - Currently, the only functional machines I know of are at Koko Arcade
Also worth considering the number of machines. As I mentioned before, Koko has by far the most which might make it easier to get a game? Then again its also very popular which potentially cancels out the benefit.
Finally the quality of machines may vary depending on the location so it could be worth playing a test game before doing a big top-up.
### Please let me know if I've made any mistakes or you want to see any games added!!
The most likely mistake that could have occured is that the game settings might be different at each location - maybe the machines are set to play less songs or cost more credits to do things that would only cost 1 at some locations like playing double DDR. since I didn't want to spend too much on this project I have not verified all the settings are the same. If I've missed something, please let me know on my Bluesky:
https://bsky.app/profile/tabbycat.dev
Likewise, If you want me to add a game, let me know there too!
### Final thoughts~
Hope this helped clear up all the pricing systems that the arcades use, now go out and play some games :3

View file

@ -6,5 +6,6 @@ export default defineNuxtConfig({
modules: ["@nuxt/content", "@nuxt/image"],
content: {
documentDriven: false
}
},
// ssr:true,
})

27
pages/TestPage.vue Normal file
View file

@ -0,0 +1,27 @@
<template>
<div>
<ProjectCardV2
title="Arcane Raiders but really really long"
description="Cool game"
:buttons='[
{ link: "https://tabbycat.dev", text: "tabbycat.dev" },
{ link: "https://www.linkedin.com/in/tom--howarth/", text: "Linkedin" },
{ link: "https://bsky.app/profile/tabbycat.dev", text: "Bluesky" },
{ link: "https://tabby-cat-nya.itch.io/", text: "Itch.io" }
]'
/>
<!-- <BoldButton
text="test"
href="hello"
/> -->
</div>
</template>
<script lang="ts" setup>
</script>
<style>
</style>

View file

@ -2,19 +2,20 @@
<main>
<!-- <a href="/"><-- Return Home</a> -->
<BigButton text="<<< Return Home" href="/"/>
<h1>Tom's Blog</h1>
<h1 class="no-margin">Tabby's Blog</h1>
<p class="no-margin" v-if="qSupplied">Selected Tag: <strong>{{query}}</strong> <a v-if="qSupplied" href="blog-index">(Clear Search)</a></p>
<p class="no-margin">Tag Search:
<a href="blog-index?tag=Programming">Programming</a> -
<a href="blog-index?tag=Godot">Godot</a> -
<a href="blog-index?tag=Tech">Tech</a> -
<a href="blog-index?tag=Queerness">Queerness</a>
<a href="blog-index?tag=Queerness">Queerness</a> -
<a href="blog-index?tag=Gaming">Gaming</a>
<!-- <a class="no-posts" href="blog-index?tag=Mental Health">Mental Health</a> -->
</p>
<hr>
<!-- <div> -->
<div>
<BlogCard v-for="post in data" class="posts-list"
:key="post.id"
:href="post._path"
@ -24,7 +25,7 @@
:id="post.id"
:tags="post.tags"
/>
<!-- </div> -->
</div>
</main>
@ -50,10 +51,10 @@
// console.log('tag successful')
qSupplied = true
}
var { data } = await useAsyncData('home', () => queryContent('blog').where({ tags: { $contains: query } }).sort({id:-1}).find())
var { data } = await useAsyncData('home', () => queryContent('blog').where({ tags: { $contains: query },hidden: {$not : true}},).sort({id:-1, $numeric: true}).find())
</script>
<style>
<style scoped>
main {
/* display: flex; */
/* flex-direction: column; */
@ -62,14 +63,21 @@
margin-top: 3.5rem;
/* gap: 0rem; */
/* width: 80%; */
}
.posts-list{
width: 80%;
display: block;
margin-left: auto;
margin-right: auto;
}
.no-margin{
margin: 0
margin: 0;
text-align: center;
}
.no-posts{

View file

@ -29,7 +29,7 @@
</main> -->
</template>
<style>
<style scoped>
.post{
width: 50%;
@ -38,6 +38,7 @@
/* i wonder if this will cause issues */
img{
width: 100%;
}
@media (max-width: 1000px){
@ -59,4 +60,14 @@
/* gap: 2rem; */
}
/* ContentRenderer>table, th, td {
border: 1px solid;
} */
/* .post>.thingy{
p{
background-color: aqua;
}
} */
</style>

View file

@ -1,13 +1,112 @@
<!-- portal page -->
<template>
<div>
Chrono chamber landing page/redirect to steam, probably like teamstingray.dev/arcane
<div class="landing-div">
<img class="image-card" src="https://img.itch.zone/aW1nLzE3MzE3NDAzLnBuZw==/315x250%23c/pxmt%2BB.png"></img>
<hr>
<!-- <br></br>
<a href="https://store.steampowered.com/app/2899410/Arcane_Raiders/">
<div class="landing-card" >
<h2 class="landing-subheading">Steam</h2>
<p>Wishlist the game!</p>
</div>
</a> -->
<br></br>
<a href="https://tabby-cat-nya.itch.io/chronochamber">
<div class="landing-card" >
<h2 class="landing-subheading">Itch.io</h2>
<p>Play the game now!</p>
</div>
</a>
<br></br>
<a href="https://tabbycat.dev">
<div class="landing-card" >
<h2 class="landing-subheading">tabbycat.dev</h2>
<p>Check out my site!</p>
</div>
</a>
<!-- <br></br>
<a href="https://discord.gg/3BPYMHqNve">
<div class="landing-card" >
<h2 class="landing-subheading">Discord</h2>
<p>Chat with the devs and get exclusive updates!</p>
</div>
</a> -->
</div>
</template>
<script lang="ts" setup>
</script>
<style scoped>
/* Tech Fest Landing Page Styles */
.landing-div{
padding: 10%;
align-items: center;
text-align: center;
margin-left: 15%;
margin-right: 15%;
<style>
}
.landing-heading{
font-size: 40px;
font-weight: 600;
}
.landing-subheading{
font-size: 30px;
font-weight: 500;
}
.landing-card{
background-color: rgb(132, 0, 184);
padding: 10px;
overflow: hidden;
border-radius: 10px;
transition: 0.3s;
}
.landing-card:hover {
background-color: rgb(200, 0, 207);
}
.image-card{
overflow: hidden;
border-radius: 10px;
align-items: center;
text-align: center;
/* margin-left: auto;
margin-right: auto; */
/* max-width: 100%; */
width: 100%;
}
p, h1, h2{
color: white;
font-family:Arial, Helvetica, sans-serif;
text-decoration: none;
}
a:link{
text-decoration: none;
}
a:visited{
text-decoration: none;
}
</style>

View file

@ -1,35 +1,64 @@
<script setup lang="ts">
// when theres an event or something, comment this out so users dont get sent to the homepage
navigateTo('/')
useSeoMeta({
title: "hi from SXSW!",
ogTitle: "hi from SXSW!",
description: "Landing page for visitors who scanned my business card",
ogDescription: "Landing page for visitors who scanned my business card",
title: "hi from Smash!",
ogTitle: "hi from Smash!",
description: "meow meow meow!!",
ogDescription: "meow meow meow!!",
});
</script>
<template>
<main>
<h1>Welcome!</h1>
<img src="/img/Tabby.JPG" class="pfp" />
<h1>Welcome! <Purple>miaw!!</Purple></h1>
<img src="/img/cat.png" class="pfp" />
<hr>
<p>Coming here from SXSW and wanna check out the games I was showcasing? Check them out below!</p>
<p>Coming here from Smash and wanna play the games I was showcasing? Check them out below!</p>
<div class="container">
<ProjectCard
src="https://img.itch.zone/aW1nLzE2Mjg0ODg2LnBuZw==/315x250%23c/6FRKz0.png"
href="https://teamstingray.dev/arcane-raiders"
heading="Arcane Raiders"
description="Fight to the top of the tower with up to 4 players and an arsenal of powerful spells! We'll be showcasing it at SXSW Sydeny and its already avilable to wishlist on Steam!"
<ProjectCardV2
src="https://img.itch.zone/aW1nLzE3MzE3NDAzLnBuZw==/315x250%23c/pxmt%2BB.png"
title="ChronoChamber"
description="Complete the level before time catches up to you"
long-description=
"Short experimental puzzle game where you have to plan your moves before starting each level.
'The Chronos Terminal is a powerful device that executes command blocks based into it as soon as you unseal the chamber. Use it to your advantage to escape the time loop you've been caught in!'
- Winner of the Playmakers August Game Jam!
- Showcased at the playmakers booth for Smash 2025!"
:buttons='[
{ link: "https://tabby-cat-nya.itch.io/chronochamber", text: "Play on Itch.io" }
]'
:badges='["godot4","gamejam"]'
/>
<ProjectCard
src="https://img.itch.zone/aW1nLzE2NTkxMzEyLnBuZw==/315x250%23c/0Y7BUi.png"
href="https://clevertop.itch.io/kitten-calamity"
heading="Kitten Calamity"
description="Cute little game made in about 29 hours for the UTS Tech Fest game jam! Grab a friend and find out who can be the most destructive little kitten in one minute :3"
<ProjectCardV2
src="https://img.itch.zone/aW1nLzE2Mjg0ODg2LnBuZw==/315x250%23c/6FRKz0.png"
title="Arcane Raiders"
description="Fight to the top of the tower with up to 4 players and an arsenal of powerful spells! Now available to play on Steam!"
long-description=
"Initially, This project was a part of Game Design Studio 1 at UTS where we worked in teams of 5 people to create a game through the semester.
During the assignment, my main contributions were general programming and game logic as well as some of the back-end code for the local and online multiplayer systems and UI.
After the completion of the subject, our group continued to work on the project in our own time to further improve it and showcase it at future events such as the UTS Tech Fest where we received the Best Student Game award, and also South By South West where we were nominated for Best Student Game.
In these later stages of development my focus shifted more to project management in addition building the Steam page and finalizing the integration of services such as achievements, cloud saves and discord rich presence into the game.
On the 19th of February the game was released and since then we have had over 4200 unique players!"
:buttons='[
{ link: "https://store.steampowered.com/app/2899410/Arcane_Raiders/", text: "Play on Steam" },
{ link: "https://discord.com/invite/3BPYMHqNve", text: "Join Discord" },
{ link: "https://cookiespl.itch.io/arcane-raiders", text: "View Itch.io page (Outdated)" }
]'
:badges='[ "godot4", "steam"]'
/>
</div>
@ -41,11 +70,41 @@ useSeoMeta({
/>
<hr>
<h2 class="no-margin">Contact Details</h2>
<!-- <h2 class="no-margin">Contact Details</h2>
<div class="no-margin">
<p>Email: <a href="mailto:tabby@tabbycat.dev">tabby@tabbycat.dev</a></p>
<p>Linkedin: <a href="https://www.linkedin.com/in/tom--howarth/">https://www.linkedin.com/in/tom--howarth/</a></p>
</div>
</div> -->
<Socials>
<Social
src="img/bluesky.png"
href="https://bsky.app/profile/tabbycat.dev"
/>
<Social
src="img/github.svg"
href="https://github.com/tabby-cat-nya"
/>
<Social
src="img/itch-io.svg"
href="https://tabby-cat-nya.itch.io/"
/>
<Social
src="img/steam.svg"
href="https://store.steampowered.com/search/?developer=Tabby"
/>
<Social
src="img/backlogged.png"
href="https://backloggd.com/u/tabby_cat/games/user-rating/type:played"
/>
<Social
src="img/furry.png"
href="https://www.furaffinity.net/user/fuzzysparkles/"
/>
</Socials>
<hr>
</main>
@ -67,7 +126,7 @@ useSeoMeta({
border-radius: 10px;
border: 7px solid #e17ff5;
width: 80%;
max-width: 600px;
max-width: 300px;
}
@media (max-width: 1000px){

View file

@ -1,25 +1,58 @@
<template>
<main>
<div class="columns">
<div class="container">
<i><a href="http://tabbycat.dev/"> hop to tabbycat.dev</a></i>
<p>Dont forget to take your estrogen and cypro! 🏳</p>
<h1>Tabbybox</h1>
<a href="http://tabbybox:8096/">Jellyfin</a>
<a href="http://tabbybox:1880/">Node Red</a>
<a href="http://tabbybox:1880/">Node Red</a>
<a href="http://tabbybox:1880/dashboard/">Node Red Dashboard</a>
<h1>Instagram Feeds</h1>
<h1>Links</h1>
<a href="https://mail.google.com/mail/u/0/#inbox">E-mail</a>
<a href="https://calendar.google.com">Calendar</a>
<a href="https://www.furaffinity.net/user/fuzzysparkles/">Furaffinity*</a>
<a href="https://artfight.net/">Artfight</a>
<h2>Chats</h2>
<a href="https://web.whatsapp.com/">Whatsapp</a>
<a href="https://web.telegram.org/a/">Telegram</a>
<h2>Instagram Feeds</h2>
<a href="https://www.instagram.com/crap.uts/">CRAP</a>
<a href="https://www.instagram.com/usydcatsoc/">Catsoc</a>
<a href="https://www.instagram.com/usyd_dbsoc/">Baking Soc</a>
<a href="https://www.instagram.com/transhub_acon/">Transhub ACON</a>
<a href="https://www.instagram.com/climbingqts/">Climbing QTs</a>
<a href="https://www.instagram.com/twenty10nsw/">Twenty10</a>
<h1>Goals</h1>
<h2>Etsy Presentations - Have 12</h2>
<p>🔵🔵🔵🔵🟢🟢</p>
</div>
<!-- <iframe src="http://tabbybox:1880/dashboard/page1" title="node-red dashboard" height="900" class="frame" ></iframe> -->
</div>
</main>
</template>
<style>
<style scoped>
.container{
padding-left: 1cm;
width: 100%;
}
.columns{
display: flex;
flex-direction: row;
}
.frame{
width: 100%;
}
</style>

View file

@ -1,6 +1,15 @@
<script setup lang="ts">
// import ProjectCard from '~/components/ProjectCard.vue';
// const route=useRoute();
// const path = computed(() =>route.path);
// const path = ref(window.location.pathname);
// console.log("starting meow");
// console.log(path);
useSeoMeta({
title: "Home",
ogTitle: "Home",
@ -8,7 +17,7 @@ useSeoMeta({
ogDescription: "My personal website.",
});
var { data } = await useAsyncData('home', () => queryContent('blog').sort({id:-1}).limit(3).find())
var { data } = await useAsyncData('home', () => queryContent('blog').where({hidden : {$not : true}}).sort({id:-1, $numeric: true}).limit(3).find())
</script>
@ -17,15 +26,15 @@ var { data } = await useAsyncData('home', () => queryContent('blog').sort({id:-1
<div class="container">
<div class="left-col">
<img src="https://avatars.githubusercontent.com/u/41929769" class="pfp" />
<img src="https://forge.tabbycat.dev/avatars/f48cb754cf8aa29aaafed6a51bac1074c2561f58a3b6b82fd83ce9d30ea3c1ff?size=512" class="pfp" />
<div class="aboutme">
<h1>About Me</h1>
<ul>
<li>21 years old, born in 2003</li>
<li>i use she/they pronouns</li>
<li>studying games development @ UTS</li>
<li>linux initiate, currently using Mint 22</li>
<li>i use they/she pronouns</li>
<li>studying games development</li>
<!-- <li>linux initiate, currently using Mint 22</li> -->
<li>Favourite game engine: <Purple>Godot!</Purple></li>
<li>Terrified of big numbers</li>
<li>meow meow~ nya!!! :3</li>
</ul>
</div>
@ -33,86 +42,157 @@ var { data } = await useAsyncData('home', () => queryContent('blog').sort({id:-1
<div class="right-col">
<h1>Heyo! I'm <Purple>Tabby</Purple> 👋</h1>
<p>I'm a Games Developer from Sydney, Australia.</p>
<p>I've been programming since 2015 and am currently in my final year of the Games Development degree at UTS</p>
<p>Currently im working with my group, <a href="https://teamstingray.dev">Team Stingray</a>, to finish up our uni project <a href="https://teamstingray.dev/arcane-raiders">Arcane Raiders</a> and release it on Steam! Feel free to join our <a href="https://discord.gg/3BPYMHqNve">discord server</a> if you'd like to follow along with development!</p>
<!-- <p>I've been programming since 2015 and am currently in my final year of the Games Development degree at UTS</p> -->
<!-- <p>Currently I'm teaching Programming Fundamentals and Programming 1 at UTS as a Casual Academic, In my free time I'm working on side projects which I sometimes post about on my <a href="https://bsky.app/profile/tabbycat.dev">Bluesky page</a> </p> -->
<p>In my free time I'm working on side projects which I sometimes post about on my <a href="https://bsky.app/profile/tabbycat.dev">Bluesky page!</a> </p>
<!-- <a href="https://oldweb.tabbycat.dev">dont mind me, just testing something</a> -->
<!-- <a href="meowwalking://oldweb.tabbycat.dev">dont mind me, just testing something</a> -->
<!-- <p>Currently im working with my group, <a href="https://teamstingray.dev">Team Stingray</a>, to finish up our uni project <a href="https://teamstingray.dev/arcane-raiders">Arcane Raiders</a> and release it on Steam! Feel free to join our <a href="https://discord.gg/3BPYMHqNve">discord server</a> if you'd like to follow along with development!</p> -->
<Socials>
<Social
src="img/github.svg"
href="https://github.com/tabby-cat-nya"
src="img/socials/bluesky.png"
href="https://bsky.app/profile/tabbycat.dev"
/>
<Social
src="img/itch-io.svg"
src="img/socials/forgejoLogo.png"
href="https://forge.tabbycat.dev/tabby"
/>
<Social
src="img/socials/itch-io.svg"
href="https://tabby-cat-nya.itch.io/"
/>
<Social
src="img/steam.svg"
src="img/socials/steam.svg"
href="https://store.steampowered.com/search/?developer=Tabby"
/>
<Social
src="img/linkedin.svg"
href="https://www.linkedin.com/in/tom--howarth/"
src="img/socials/backlogged.png"
href="https://backloggd.com/u/tabby_cat/games/user-rating/type:played"
/>
<Social
src="img/verticalWhite.png"
href="https://teamstingray.dev"
src="img/socials/furry.png"
href="https://www.furaffinity.net/user/fuzzysparkles/"
/>
<Social
src="img/portfolio.png"
href="https://portfolium.com.au/Tabby"
/>
<!-- <Social
src="img/oldweb.png"
href="https://oldweb.tabbycat.dev/"
/> -->
</Socials>
<!-- <h2>Tech i've got experience with:</h2>
<img class="" src="https://skillicons.dev/icons?i=git,androidstudio,arduino,bash,blender,cs,cloudflare,css,fediverse,github,godot,html,idea,js,linux,lua,md,netlify,nextjs,nodejs,npm,nuxtjs,obsidian,php,postgres,py,react,sass,supabase,ts,unity,unreal,vercel,vscode,vue,processing&perline=12" /> -->
</div>
</div>
<!-- <hr/> -->
<!-- <h1>Latest Project</h1>
<hr/>
<h1>Current Projects</h1>
<div class="featured-container">
<ProjectCard
class="fix-size-pls"
src="https://upload.wikimedia.org/wikipedia/en/f/f2/Pikmin_Bloom_App_icon.png"
href="https://bsky.app/profile/tabbycat.dev"
heading="Pikmin Bloom Stats"
description="Figuring out how the game works"
<ProjectCardV2
src="img\projects\tinyweb.png"
title="Server Charms"
description="Making a little tiny webserver out of an ESP32"
long-description=
"armed with a processor, wifi antenna and a total of 4mb of flash storage I'm running a tiny web server off an ESP32, so small I plan to carry it around with me while it broadcasts an open wifi hotspot, anyone who joins will be sent to the tiny website through a captive portal"
:buttons='[
// {link:"https://tabby-cat-nya.itch.io/rust-hacker",text:"Play Game"},
// {link:"https://github.com/tabby-cat-nya/RustHacker",text:"Project Github"},
]'
:badges='["esp32"]'
/>
<div class="featured-text">
<ProjectCardV2
src="https://img.itch.zone/aW1nLzI1MDU1OTEyLnBuZw==/315x250%23c/6xbLLl.png"
title="Rust Hacker"
description="Scavenge parts from the ewaste bin to build your botnet"
long-description=
""
:buttons='[
{link:"https://tabby-cat-nya.itch.io/rust-hacker",text:"Play Game"},
{link:"https://github.com/tabby-cat-nya/RustHacker",text:"Project Github"},
]'
:badges='["godot4", "gamejam"]'
/>
<ProjectCardV2
src="img\projects\pounce.png"
title="Pounce"
description="Discord bot to catch scammers"
long-description=
"After getting very frustrated with having to deal with the numerous discord scam bots claiming to be giving away 'free' macbooks and cameras, I made a bot to catch them and allow moderators to get rid of them before any normal user has a chance to see and potencially fall for their scams in the first place!"
:buttons='[
{link:"https://discord.gg/G3xjsQnBXV",text:"Pounce discord server - for testing and help"},
]'
:badges='["godot4"]'
/>
<!-- <div class="featured-text">
<p>Pikmin Bloom is one of the funny little geospatial games that Niantic made with Nintendo</p>
<p>I'm trying to figure out how many of the games mechanics work in relation to event rewards and what the best way to manage pikmin and mushrooms are especially early each month</p>
<p>Follow updates and findings on my <a href="https://bsky.app/profile/tabbycat.dev">Bluesky</a>!</p>
</div>
</div> -->
</div>
<!-- seperator -->
<hr/>
<!-- featured projects, link to all? -->
<h1>Featured Projects</h1>
<div class="featured-container">
<ProjectCard
<ProjectCardV2
src="https://img.itch.zone/aW1nLzE2Mjg0ODg2LnBuZw==/315x250%23c/6FRKz0.png"
href="https://teamstingray.dev/arcane-raiders"
heading="Arcane Raiders"
description="Fight to the top of the tower with up to 4 players and an arsenal of powerful spells! We'll be showcasing it at SXSW Sydeny and its already avilable to wishlist on Steam!"
title="Arcane Raiders"
description="Fight to the top of the tower with up to 4 players and an arsenal of powerful spells! Now available to play on Steam!"
long-description=
"Initially, This project was a part of Game Design Studio 1 at UTS where we worked in teams of 5 people to create a game through the semester.
During the assignment, my main contributions were general programming and game logic as well as some of the back-end code for the local and online multiplayer systems and UI.
After the completion of the subject, our group continued to work on the project in our own time to further improve it and showcase it at future events such as the UTS Tech Fest where we received the Best Student Game award, and also South By South West where we were nominated for Best Student Game.
In these later stages of development my focus shifted more to project management in addition building the Steam page and finalizing the integration of services such as achievements, cloud saves and discord rich presence into the game.
On the 19th of February the game was released and since then we have had over 4200 unique players!"
:buttons='[
{ link: "https://store.steampowered.com/app/2899410/Arcane_Raiders/", text: "Play on Steam" },
{ link: "https://discord.com/invite/3BPYMHqNve", text: "Join Discord" },
{ link: "https://cookiespl.itch.io/arcane-raiders", text: "View Itch.io page (Outdated)" }
]'
:badges='[ "godot4", "steam"]'
/>
<ProjectCard
<ProjectCardV2
src="https://img.itch.zone/aW1nLzE2NTkxMzEyLnBuZw==/315x250%23c/0Y7BUi.png"
href="https://clevertop.itch.io/kitten-calamity"
heading="Kitten Calamity"
title="Kitten Calamity"
description="Cute little game made in about 29 hours for the UTS Tech Fest game jam! Grab a friend and find out who can be the most destructive little kitten in one minute :3"
long-description=
"This little project was made with a team of 3 for the UTS Tech Fest Game Jam. Using Godot, my main focus was on the player controls, the overall game logic and the user interface.
At the end of the game jam our game received the Most Intuitive Game award."
:buttons='[
{ link: "https://clevertop.itch.io/kitten-calamity", text: "Play on Itch.io" }
]'
:badges='["godot4","gamejam"]'
/>
<ProjectCard
<ProjectCardV2
src="https://img.itch.zone/aW1nLzU3NzU5NTEucG5n/315x250%23c/eQja%2FA.png"
href="https://clevertop.itch.io/temple-of-the-silver-dragon"
heading="Temple of the Silver Dragon"
title="Temple of the Silver Dragon"
description="You have five minutes on the clock. How much treasure can you collect and escape with before time runs out? While this project is an older one, its also one of my favourites :)"
long-description=
"Temple of the Silver Dragon is one of my older projects which was made in the Unity game engine before I switched over to Godot.
It's one of my most extensive works as it entirely a solo project, In addition to the main game play components such as: First person camera and movement, level design, enemy logic, game logic, testing and balancing. I also implemented some special features including a 'Ghost' replay system and an online leaderboard using Airtable. Through this leaderboard I've been able to calculate that a total of over 110 hours have been played!"
:buttons='[
{ link: "https://clevertop.itch.io/temple-of-the-silver-dragon", text: "Play on Itch.io" }
]'
:badges='["unity","airtable"]'
/>
</div>
<BigButton text="View Entire Portfolio >>>" href="/projects"/>
<!-- seperator -->
<hr/>
@ -144,25 +224,51 @@ var { data } = await useAsyncData('home', () => queryContent('blog').sort({id:-1
</template>
<style scoped>
h1{
text-align: center;
}
.container {
display: flex;
width: 100%
margin-left: 10%;
margin-right: 10%;
justify-content: center;
}
@media (max-width: 1000px){
.container{
margin: 0;
}
}
.featured-container{
display: flex;
width: 80%;
width: 100%;
justify-content: center;
/* margin-left: auto;
margin-right: auto; */
}
.featured-container>div{
width:30%;
}
@media (max-width: 1000px){
.featured-container>div{
width:80%;
align-self: center;
}
}
.blog-container{
display: flex;
flex-direction: column;
width: 80%;
justify-content: center;
margin-left: auto;
margin-right: auto;
}
.small-image-pls {
@ -232,7 +338,7 @@ var { data } = await useAsyncData('home', () => queryContent('blog').sort({id:-1
}
</style>
<style>
<style scoped>
main {
/* display: flex;
flex-direction: column;
@ -241,13 +347,7 @@ main {
/* margin-top: 3.5rem; */
/* gap: 2rem; */
}
hr {
width: 100%;
height: 0px;
border: 5px var(--accent);
border-style: dotted none none none;
max-width: var(--max-width);
}
.container > div {
/* display: flex;
flex-direction: column; */

View file

@ -0,0 +1,9 @@
<script>
navigateTo("https://utsfabsoc.github.io/Docs/Server-Charm-Workshop/Server-Charm-Workshop", { external: true });
</script>
<template>
<p>Redirecting...</p>
</template>

View file

@ -13,6 +13,6 @@
});
</script>
<style>
<style scoped>
</style>

View file

@ -46,7 +46,7 @@
<p><strong>Your Consent</strong></p>
<p>By using the Application, you are consenting to the processing of your information as set forth in this Privacy Policy now and as amended by us.</p>
<p><strong>Contact Us</strong></p>
<p>If you have any questions regarding privacy while using the Application, or have questions about the practices, please contact the Service Provider via email at tom@clevertop.dev.</p>
<p>If you have any questions regarding privacy while using the Application, or have questions about the practices, please contact the Service Provider via email at tabby@tabbycat.dev.</p>
<hr>
<p>This privacy policy page was generated by <a href="https://app-privacy-policy-generator.nisrulz.com/">App Privacy Policy Generator</a></p>

344
pages/projects.vue Normal file
View file

@ -0,0 +1,344 @@
<template>
<main>
<BigButton text="<<< Return Home" href="/"/>
<h1 class="no-margin">My Projects</h1>
<hr>
<div class="featured-container">
<ProjectCardV2
src="img\projects\lunar.png"
title="Super Lunar (Working Title)"
description="Cross between lunar lander and balloon trip breeze"
long-description=
"Im working on a new prototype game idea, no idea if it will come to anything but figured i might aswell try it out. Basically its a cross between balloon Trip Breeze from Nintendo Land and Lunar Lander - the arcade game. Players will have to navigate their fragile little ship around obstacles with limited fuel reserves to reach the end. "
:buttons='[
]'
:badges='["godot4","prototype"]'
/>
<ProjectCardV2
src="img\projects\adventofcode.png"
title="Advent of Code 2025"
description="Annual programming challenge"
long-description=
"Advent of Code is an Annual programming challenge, you can use whatever language you want to try and solve each days puzzle.
This year I'm attempting the challenge in Rust"
:buttons='[
{link:"https://github.com/tabby-cat-nya/advent-of-code-2025",text:"Visit Reposity"},
]'
:badges='["rust"]'
/>
<ProjectCardV2
src="img\projects\fabcatAlpha.png"
title="Fabcat"
description="Fabsoc Discord Bot"
long-description=
"Discord bot I programmed for fabrication society to help manage the status of the printers and track the inventory of spools"
:badges='["godot4"]'
:buttons= '[
{link:"http://tiny.cc/FabSocDiscord",text:"Join Fabsoc"},
{link:"https://utsfabsoc.github.io/Docs/Technician-Zone/Fabcat-Discord-Bot",text:"Read the Docs"},
]'
/>
<ProjectCardV2
src="https://img.itch.zone/aW1nLzIyOTc0OTQ5LnBuZw==/315x250%23c/RVYwV5.png"
title="Lockdown Island"
description="Game Design Studio 2 Project"
long-description=
"I'll be working with a group to make a game over the duration of the Spring session at UTS"
:badges='["unity"]'
:buttons= '[
{link:"https://tabby-cat-nya.itch.io/lockdown-island",text:"Play on Itch.io"}
]'
/>
<ProjectCardV2
src="https://img.itch.zone/aW1nLzIxMjI4MTM3LnBuZw==/300x240%23c/0HU9A6.png"
title="Channel Switcher"
description="Alternate your focus between all the channels to get the highest score!"
long-description=
"Alternate your focus between all the channels to get the highest score!
Kinda like warioware but instead of the games getting faster, you have to play more and more at the same time!
Created for the Playmakers May 2025 Game Jam"
:buttons='[
{ link: "https://tabby-cat-nya.itch.io/channel-switcher", text: "Play on Itch.io" },
{ link: "https://github.com/tabby-cat-nya/channel-switcher", text: "View source code" }
]'
:badges='["godot4","gamejam"]'
/>
<ProjectCardV2
src="img\projects\wanderstep.png"
title="Wanderstep (Working Title)"
description="Serious Games and Gamification Studio Project"
long-description=
"Serious game inspired by streetpass and the play coin system on the Nintendo 3DS. Collect coins by walking, crystals by completing workouts and spend your resources on hiring and training fighters to delve into the ruins
Completed as part of Serious Games and Gamification Studio at UTS
Last Update: 29th November 2025 - Added music written by Kane! thankyou!"
:badges='["godot4"]'
:buttons='[
{link:"Wanderstep.apk", text:"Download Playtest"},
{link:"Wanderstep Playtester Info.pdf", text:"Download Playtest Info"},
{link:"https://docs.google.com/document/d/1HYT-nEM4QSTdPx3GaNz3OMnsmYUCQp3SfUh37iGM1Gk/edit?usp=sharing",text:"Assignment 1: Short Proposal"},
{link:"https://docs.google.com/document/d/14l9WF36ocNv4jaVuC5-FPZjTsCSumW_3p9zyYjCSVrQ/edit?usp=sharing", text:"Assignment 2: Comprehensive Proposal"},
{link:"https://docs.google.com/document/d/1CYbqhztFOfS7OEkI66DwDH_zMVREhKGkT_vJSywR5Zc/edit?usp=sharing", text:"Assignment 3: Proof of Concept Document"},
{link:"https://docs.google.com/document/d/1xH3L_i8a8sQh1xZ6w49ix8BRBNXq03bj-uUSwjRfVyY/edit?usp=sharing", text:"Assignment 4: Research Report"},
]'
/>
<ProjectCardV2
src="https://img.itch.zone/aW1nLzIzMDI0NzM4LnBuZw==/315x250%23c/nl2dVU.png"
title="Snake's Braincell"
description="Game for the SXSW Snakejam!"
long-description=
"I'm making a game for the SXSW Snakejam (It's a gamejam with the theme 'Snake'!)"
:buttons='[
{ link: "https://itch.io/jam/snakejam", text:"Gamejam Page"},
{ link: "https://tabby-cat-nya.itch.io/snakes-braincell", text:"Play on Itch.io"}
]'
:badges='["godot4","gamejam"]'
/>
<ProjectCardV2
src="img\projects\artfight.png"
title="Artfight 2025"
description="Annual month long art gifting event"
long-description=
"Artfight is an annual art game that runs every July. Players join one of two teams then earn points by 'attacking' other players (generally on the other team) by drawing their characters. While it is sort of a competition, its not really about the points or 'winning' artfight. The main focus is making alot of cool art and maybe receiving some in return :3
This will be my third year participating in artfight, I've already joined the crystal team so feel free to check out my profile if you want to attack me or have a look around art fight, but remember, it only goes until the end of July, don't miss your chance to join in!"
:buttons='[
{ link: "https://artfight.net/~tabby_cat", text: "Check out my profile!" },
{ link: "https://artfight.net/info/about", text: "About Artfight" }
]'
/>
<ProjectCardV2
src="https://img.itch.zone/aW1nLzIxNjg5Mzg2LnBuZw==/315x250%23c/UW798S.png"
title="Samurai Sculpt"
description="the classic braintastic game, now with no difficulty ceiling"
long-description=
"To those unfamiliar, Braintastic was an education game made in Australia and used throughout a number of schools. The idea was that before getting to play the minigames, students would have to answer a number of maths or English questions. Depending on how many they got right, they would then get more or less time to play the games!
One of these games was Samurai Sculpt, a simple pattern recognition/typing game were you must type the display sequence of arrows within 5 seconds. me and some friends were feeling nostalgic and booted up an old CD-Rom to play it and some other games from the set but quickly found that the skill ceiling of this game could be reached surprisingly easily.
So that brings me to why I made this: 1) I wanted an easy way to play it online when I'm bored and 2) I wanted to remove the skill limit of 14 tokens, Now there's no limit! if you can make it past about 20 they will start scrolling so there is truly no limit!
But yeah that's the project, as you can see its not a super complete remake, the sculpting animations aren't implemented and some things like the high-scores and time bonus score don't exist either, not sure if I'll work on this more but I hope you enjoy it!"
:buttons='[
{ link: "https://tabby-cat-nya.itch.io/samurai-sculpt-remake", text: "Play on Itch.io" },
{ link: "https://github.com/tabby-cat-nya/Samurai-Sculpt-Plus", text: "View source code" }
]'
:badges='["godot4","prototype"]'
/>
<ProjectCardV2
src="https://img.itch.zone/aW1nLzE2Mjg0ODg2LnBuZw==/315x250%23c/6FRKz0.png"
title="Arcane Raiders"
description="Fight to the top of the tower with up to 4 players and an arsenal of powerful spells! Now available to play on Steam!"
long-description=
"Initially, This project was a part of Game Design Studio 1 at UTS where we worked in teams of 5 people to create a game through the semester.
During the assignment, my main contributions were general programming and game logic as well as some of the back-end code for the local and online multiplayer systems and UI.
After the completion of the subject, our group continued to work on the project in our own time to further improve it and showcase it at future events such as the UTS Tech Fest where we received the Best Student Game award, and also South By South West where we were nominated for Best Student Game.
In these later stages of development my focus shifted more to project management in addition building the Steam page and finalizing the integration of services such as achievements, cloud saves and discord rich presence into the game.
On the 19th of February the game was released and since then we have had over 4200 unique players!"
:buttons='[
{ link: "https://store.steampowered.com/app/2899410/Arcane_Raiders/", text: "Play on Steam" },
{ link: "https://discord.com/invite/3BPYMHqNve", text: "Join Discord" },
{ link: "https://cookiespl.itch.io/arcane-raiders", text: "View Itch.io page (Outdated)" }
]'
:badges='[ "godot4", "steam"]'
/>
<ProjectCardV2
src="https://img.itch.zone/aW1nLzE2NTkxMzEyLnBuZw==/315x250%23c/0Y7BUi.png"
href="https://clevertop.itch.io/kitten-calamity"
title="Kitten Calamity"
description="Cute little game made in about 29 hours for the UTS Tech Fest game jam! Grab a friend and find out who can be the most destructive little kitten in one minute :3"
long-description=
"This little project was made with a team of 3 for the UTS Tech Fest Game Jam. Using Godot, my main focus was on the player controls, the overall game logic and the user interface.
At the end of the game jam our game received the Most Intuitive Game award."
:buttons='[
{ link: "https://clevertop.itch.io/kitten-calamity", text: "Play on Itch.io" }
]'
:badges='["godot4","gamejam"]'
/>
<ProjectCardV2
src="https://img.itch.zone/aW1nLzU3NzU5NTEucG5n/315x250%23c/eQja%2FA.png"
title="Temple of the Silver Dragon"
description="You have five minutes on the clock. How much treasure can you collect and escape with before time runs out? While this project is an older one, its also one of my favourites :)"
long-description=
"Temple of the Silver Dragon is one of my older projects which was made in the Unity game engine before I switched over to Godot.
It's one of my most extensive works as it entirely a solo project, In addition to the main game play components such as: First person camera and movement, level design, enemy logic, game logic, testing and balancing. I also implemented some special features including a 'Ghost' replay system and an online leaderboard using Airtable. Through this leaderboard I've been able to calculate that a total of over 110 hours have been played!"
:buttons='[
{ link: "https://clevertop.itch.io/temple-of-the-silver-dragon", text: "Play on Itch.io" }
]'
:badges='["unity","airtable"]'
/>
<ProjectCardV2
src="https://img.itch.zone/aW1nLzE3MzE3NDAzLnBuZw==/315x250%23c/pxmt%2BB.png"
title="ChronoChamber"
description="Complete the level before time catches up to you"
long-description=
"Short experimental puzzle game where you have to plan your moves before starting each level.
'The Chronos Terminal is a powerful device that executes command blocks based into it as soon as you unseal the chamber. Use it to your advantage to escape the time loop you've been caught in!'
- Winner of the Playmakers August Game Jam!
- Showcased at the playmakers booth for Smash 2025!"
:buttons='[
{ link: "https://tabby-cat-nya.itch.io/chronochamber", text: "Play on Itch.io" }
]'
:badges='["godot4","gamejam"]'
/>
<ProjectCardV2
src="https://img.itch.zone/aW1nLzEyNjA2MDI1LnBuZw==/315x250%23c/vaNWSF.png"
title="Starship Scramble"
description="Pilot your starship between asteroids and make it home as fast as possible to turn a profit. Watch your fuel gauge; if you run out, you'll float in the abyss of space forever..."
long-description=
"Made in Unity and Showcased at South By South West 2023 this project was made for Game Design Methodologies at UTS
I implemented the core mechanic of the inside and outside views of the ship and the third level of the game which introduces a much larger ship, moving ship components, and fuel draining zones"
:buttons='[
{ link: "https://ethan-lucas.itch.io/starship-scramble", text: "Play on Itch.io" }
]'
:badges='["unity"]'
/>
<ProjectCardV2
src="https://img.itch.zone/aW1nLzE0NjYyOTAwLnBuZw==/315x250%23c/UaC28P.png"
title="Smoothie Maker Pro"
description="You're running the world's greatest smoothie truck! The customers are waiting... Don't take too long or they'll get angry!"
long-description=
"Sliding puzzle game made in Godot. Customers will make orders which are made up of patterns of shapes, the player must slide fruits around the grid in order to make the requested patterns
Made for the Pixel Jam 2024 which we scored 1st place in for the overall ranking!
My main focus was on the online leaderboard and login system, After the game jam I also experiemnted with making an android app port"
:buttons='[
{ link: "https://itch.io/jam/pixel-jam-2024/rate/2469428", text: "Play on Itch.io" }
]'
:badges='["godot4","gamejam","airtable"]'
/>
<ProjectCardV2
src=" img\projects\doodleJump.png"
title="ThreeJS Doodle Jump"
description="Cute little remake of Doodle Jump in ThreeJS"
long-description=
"Designed for Computer Graphics, our project was to recreate the mobile game 'Doodle Jump' with ThreeJS
(Note: Game may not load all assets on first play)"
:buttons='[
{ link: "https://doodle-jump-nya.netlify.app/", text: "Play" }
]'
:badges='["threejs"]'
/>
<ProjectCardV2
src=" img\projects\stingray.png"
title="Team Stingray Website"
description="Website I made and maintain which we use to display our group and projects at showcases"
long-description=
"Made in Vue.js and Nuxt, Hosted on Vercel"
:buttons='[
{ link: "https://teamstingray.dev/", text: "Visit https://teamstingray.dev/" }
]'
:badges='["vue","nuxt"]'
/>
<ProjectCardV2
src=" img\projects\racer.png"
title="ThreeJS Racing Game"
description="Simple 3D Lane racing game"
long-description=
"Individual project for Computer Graphics, A simple 3D game where you drive against oncoming traffic to try and get the highest score before crashing
Press Up or W to start and A/D Left/Right to change lanes, also has settings that can be changed in the top right hand corner"
:buttons='[
{ link: "https://racer23.netlify.app/", text: "Play" }
]'
:badges='["threejs"]'
/>
<ProjectCardV2
src=" img\projects\shine.png"
title="ShineRunnersTest"
description="TwitchPlays game based on Shine Runners from Mariokart DS"
long-description=
"Inspired by the very retro horse racing game thing thats been big on Twitter recently, this 'game' is played by watching the stream and sending commands in chat. In this case, the only user interaction is they can choose to bet fake money on a character hoping that they will win but i hope for forture projects I can make something with more actual game interation"
:buttons='[
{ link: "https://www.twitch.tv/tabbycatnya", text: "Visit Twitch Channel" }
]'
:badges='["godot4","prototype"]'
/>
</div>
</main>
</template>
<script lang="ts" setup>
useSeoMeta({
title: "Projects",
ogTitle: "Projects",
description: "I make cool stuff!",
ogDescription: "I make cool stuff!",
});
</script>
<style scoped>
main {
padding: 2rem;
margin-top: 3.5rem;
}
.no-margin{
margin: 0;
text-align: center;
}
.featured-container{
display: flex;
flex-wrap: wrap;
width: 100%;
justify-content: center;
}
.featured-container>div{
width:30%;
}
@media (max-width: 1000px){
.featured-container{
/* flex-direction: column;
margin-left: 0%;
margin-right: 0%; */
}
.featured-container>div{
width:40%;
}
}
</style>

Binary file not shown.

BIN
public/Wanderstep.apk Normal file

Binary file not shown.

View file

@ -0,0 +1,18 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<svg width="800px" height="800px" viewBox="0 -20.5 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" preserveAspectRatio="xMidYMid">
<g>
<path d="M114.25873,2.70101695 L18.8604023,42.1756384 C13.5552723,44.3711638 13.6102328,51.9065311 18.9486282,54.0225085 L114.746142,92.0117514 C123.163769,95.3498757 132.537419,95.3498757 140.9536,92.0117514 L236.75256,54.0225085 C242.08951,51.9065311 242.145916,44.3711638 236.83934,42.1756384 L141.442459,2.70101695 C132.738459,-0.900338983 122.961284,-0.900338983 114.25873,2.70101695" fill="#FFBF00">
</path>
<path d="M136.349071,112.756863 L136.349071,207.659101 C136.349071,212.173089 140.900664,215.263892 145.096461,213.600615 L251.844122,172.166219 C254.281184,171.200072 255.879376,168.845451 255.879376,166.224705 L255.879376,71.3224678 C255.879376,66.8084791 251.327783,63.7176768 247.131986,65.3809537 L140.384325,106.815349 C137.94871,107.781496 136.349071,110.136118 136.349071,112.756863" fill="#26B5F8">
</path>
<path d="M111.422771,117.65355 L79.742409,132.949912 L76.5257763,134.504714 L9.65047684,166.548104 C5.4112904,168.593211 0.000578531073,165.503855 0.000578531073,160.794612 L0.000578531073,71.7210757 C0.000578531073,70.0173017 0.874160452,68.5463864 2.04568588,67.4384994 C2.53454463,66.9481944 3.08848814,66.5446689 3.66412655,66.2250305 C5.26231864,65.2661153 7.54173107,65.0101153 9.47981017,65.7766689 L110.890522,105.957098 C116.045234,108.002206 116.450206,115.225166 111.422771,117.65355" fill="#ED3049">
</path>
<path d="M111.422771,117.65355 L79.742409,132.949912 L2.04568588,67.4384994 C2.53454463,66.9481944 3.08848814,66.5446689 3.66412655,66.2250305 C5.26231864,65.2661153 7.54173107,65.0101153 9.47981017,65.7766689 L110.890522,105.957098 C116.045234,108.002206 116.450206,115.225166 111.422771,117.65355" fill-opacity="0.25" fill="#000000">
</path>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
public/img/badges/godot.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

BIN
public/img/badges/micro.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

View file

@ -0,0 +1,3 @@
<svg width="512" height="512" viewBox="0 0 512 512" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M281.44 397.667H438.32C443.326 397.667 448.118 395.908 452.453 393.427C456.789 390.946 461.258 387.831 463.76 383.533C466.262 379.236 468.002 374.36 468 369.399C467.998 364.437 466.266 359.563 463.76 355.268L357.76 172.947C355.258 168.65 352.201 165.534 347.867 163.053C343.532 160.573 337.325 158.813 332.32 158.813C327.315 158.813 322.521 160.573 318.187 163.053C313.852 165.534 310.795 168.65 308.293 172.947L281.44 219.587L227.733 129.13C225.229 124.834 222.176 120.307 217.84 117.827C213.504 115.346 208.713 115 203.707 115C198.701 115 193.909 115.346 189.573 117.827C185.238 120.307 180.771 124.834 178.267 129.13L46.8267 355.268C44.3208 359.563 44.0022 364.437 44 369.399C43.9978 374.36 44.3246 379.235 46.8267 383.533C49.3288 387.83 53.7979 390.946 58.1333 393.427C62.4688 395.908 67.2603 397.667 72.2667 397.667H171.2C210.401 397.667 238.934 380.082 258.827 346.787L306.88 263.4L332.32 219.587L410.053 352.44H306.88L281.44 397.667ZM169.787 352.44H100.533L203.707 174.36L256 263.4L221.361 323.784C208.151 345.387 193.089 352.44 169.787 352.44Z" fill="#00DC82"/>
</svg>

After

Width:  |  Height:  |  Size: 1.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

BIN
public/img/badges/rust.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

BIN
public/img/badges/steam.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 137 KiB

BIN
public/img/badges/three.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

BIN
public/img/badges/unity.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.5 KiB

BIN
public/img/badges/vue.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

View file

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 234 KiB

After

Width:  |  Height:  |  Size: 234 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 86 KiB

After

Width:  |  Height:  |  Size: 86 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 274 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 93 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 609 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 235 KiB

BIN
public/img/cat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 560 KiB

BIN
public/img/close.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 615 B

BIN
public/img/newProject.pdn Normal file

Binary file not shown.

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 99 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 125 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 143 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 45 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 577 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 39 KiB

BIN
public/img/smolKitten.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 167 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 124 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5 KiB

View file

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

Before After
Before After

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

View file

Before

Width:  |  Height:  |  Size: 1,009 B

After

Width:  |  Height:  |  Size: 1,009 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 799 B

After

Width:  |  Height:  |  Size: 799 B

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Before After
Before After

View file

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

Before After
Before After

Binary file not shown.

Binary file not shown.