diff --git a/public/images/socials.webp b/public/images/socials.webp deleted file mode 100644 index 11c0168..0000000 Binary files a/public/images/socials.webp and /dev/null differ diff --git a/public/images/socials/bluesky.webp b/public/images/socials/bluesky.webp deleted file mode 100644 index aac5f52..0000000 Binary files a/public/images/socials/bluesky.webp and /dev/null differ diff --git a/public/images/socials/kofi_s_logo_nolabel.webp b/public/images/socials/kofi_s_logo_nolabel.webp deleted file mode 100644 index e78257f..0000000 Binary files a/public/images/socials/kofi_s_logo_nolabel.webp and /dev/null differ diff --git a/public/images/socials/landscape.webp b/public/images/socials/landscape.webp deleted file mode 100644 index 14c5ad0..0000000 Binary files a/public/images/socials/landscape.webp and /dev/null differ diff --git a/public/images/socials/tiktok.webp b/public/images/socials/tiktok.webp deleted file mode 100644 index b63df84..0000000 Binary files a/public/images/socials/tiktok.webp and /dev/null differ diff --git a/src/components/experience/ExperienceComponent.tsx b/src/components/experience/ExperienceComponent.tsx index 087cdd1..a1af2bf 100644 --- a/src/components/experience/ExperienceComponent.tsx +++ b/src/components/experience/ExperienceComponent.tsx @@ -44,17 +44,17 @@ function ExperienceTabContent() { <> {Position({ title: "Application Developer Intern", - dateRange: "Mar 2026 - Now", + dateRange: "Mar 2026 - Apr 2026", country: "Australia", highlights: [ - "Quickly adapted to Ruby on Rails codebase to resolve Jira tickets.", + "Successfully merged 13 pull requests to the Ruby on Rails codebase, fixing bugs and adding new features.", "Communicated clearly about obstacles, suggested probable cause and provided solutions or workarounds.", ], className: "pb-5", })} {Position({ title: "Student Project Frontend Lead", - dateRange: "Mar 2026 - Now", + dateRange: "Feb 2026 - May 2026", country: "Australia", highlights: [ "Led the migration from 40+ Javascript files to Typescript while preserving original functionality with minor bug fixes.", diff --git a/src/components/home/Intro.astro b/src/components/home/Intro.astro index 6523ad4..f560219 100644 --- a/src/components/home/Intro.astro +++ b/src/components/home/Intro.astro @@ -47,9 +47,8 @@ import { Image } from "astro:assets";

I'm a Malaysian software developer studying in Australia on - a 50% excellence scholarship. My work in software - development and content creation has connected me with many - Twitch streamers and content creators. + a 50% excellence scholarship. I develop software for streamers + and content creators, while also making tech tutorials in programming.

diff --git a/src/components/socials/StreamSchedule.svelte b/src/components/socials/StreamSchedule.svelte deleted file mode 100644 index a044f35..0000000 --- a/src/components/socials/StreamSchedule.svelte +++ /dev/null @@ -1,189 +0,0 @@ - - - -{#if !sameTimezone} -
- - -
-{/if} -
- {#if myStreamSchedule.length} - - - - - - - - - {#if adjusted} - {#each formattedLocalisedSchedule as localTime} - - - - - {/each} - {:else} - {#each formattedSchedule as devTime} - - - - - {/each} - {/if} - -
DayTime
{localTime.day}{localTime.start} - {localTime.end}
{devTime.day}{devTime.start} - {devTime.end}
- {:else} -
- To be announced on Discord -
- {/if} -
- - diff --git a/src/components/ui/NavigationBar.tsx b/src/components/ui/NavigationBar.tsx index 24ffbf9..fdb2952 100644 --- a/src/components/ui/NavigationBar.tsx +++ b/src/components/ui/NavigationBar.tsx @@ -32,29 +32,43 @@ export const HoverNavigation = ({ return url.hash.replace("#", ""); }); - const observers: IntersectionObserver[] = []; + const sectionElements: (Element | null)[] = sectionIds.map((id) => { + if (!id) return null; + return document.getElementById(id); + }); - sectionIds.forEach((id, idx) => { - if (!id) return; + const visibilityMap = new Map(); - const element = document.getElementById(id); - if (!element) return; + const observer = new IntersectionObserver( + (entries) => { + entries.forEach((entry) => { + visibilityMap.set(entry.target, entry.intersectionRatio); + }); - const observer = new IntersectionObserver( - (entries) => { - entries.forEach((entry) => { - if (entry.isIntersecting) { - setActiveIndex(idx); - } - }); - }, - { - rootMargin: "-20% 0px -50% 0px", - }, - ); + let maxRatio = 0; + let maxIdx = -1; - observer.observe(element); - observers.push(observer); + sectionElements.forEach((el, idx) => { + if (!el) return; + const ratio = visibilityMap.get(el) ?? 0; + if (ratio > maxRatio) { + maxRatio = ratio; + maxIdx = idx; + } + }); + + if (maxIdx !== -1 && maxRatio > 0) { + setActiveIndex(maxIdx); + } + }, + { + rootMargin: "-20% 0px -50% 0px", + threshold: [0, 0.25, 0.5, 0.75, 1], + }, + ); + + sectionElements.forEach((el) => { + if (el) observer.observe(el); }); // set hover index on projects when on "/projects" @@ -64,9 +78,7 @@ export const HoverNavigation = ({ setActiveIndex(2); } - return () => { - observers.forEach((observer) => observer.disconnect()); - }; + return () => observer.disconnect(); }, [items]); useEffect(() => { diff --git a/src/content/blog/welcome.mdx b/src/content/blog/welcome.mdx deleted file mode 100644 index 478c996..0000000 --- a/src/content/blog/welcome.mdx +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: "Welcome to my blog" -author: "RythonDev" -pubDate: 2024-10-08T8:06:00 -description: The start of my blog posts. Where I share my plans on what type of blogs are to be shared here. -tags: -- Introduction -- Web Dev -- Streaming ---- - -## Introduction - -This is my first blog post, where I share my plans on what type of blogs are to be shared here. The purpose of the blog is for me to share what I know without having to create a video about it. - -The types of blogs that I will share here will be, but not limited to: - -- Tutorials, Tips & Tricks - - Streaming - - Web Development - - Python -- News & Opinions - -## Who am I? - -Well, if you don't know who I am, you can find out on my website [here](/). But if you want me to put it in short, I would say that I am mainly a: - -- Streamer -- Software Developer - -## What's special about this blog? - -In my experience, when I wanted to look at blogs from medium or article sites, it would either be flooded with ads, get prompted to disable ad blocker, or be completely locked behind a paywall. Although there are ways to bypass those, I find that searching for information has been inconvenient. - -Hence, I want my blog to be minimal, without any ads nor paywalls. I believe that information and knowledge should be free, and easy to consume. - diff --git a/src/content/config.ts b/src/content/config.ts deleted file mode 100644 index f0ef420..0000000 --- a/src/content/config.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { z, defineCollection } from "astro:content"; - -const blogCollection = defineCollection({ - type: "content", - schema: z.object({ - title: z.string(), - color: z.string().optional(), - description: z.string(), - author: z.string(), - tags: z.array(z.string()).optional(), - pubDate: z.date(), - }), -}); - -export const collections = { - blog: blogCollection, -}; diff --git a/src/pages/_images/arrow-icon.svg b/src/pages/_images/arrow-icon.svg deleted file mode 100644 index 2521a23..0000000 --- a/src/pages/_images/arrow-icon.svg +++ /dev/null @@ -1,13 +0,0 @@ - - - \ No newline at end of file diff --git a/src/pages/_images/codepen.svg b/src/pages/_images/codepen.svg deleted file mode 100644 index 189734d..0000000 --- a/src/pages/_images/codepen.svg +++ /dev/null @@ -1,28 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/src/pages/_images/date-time.svg b/src/pages/_images/date-time.svg deleted file mode 100644 index de6f754..0000000 --- a/src/pages/_images/date-time.svg +++ /dev/null @@ -1,14 +0,0 @@ - - - \ No newline at end of file diff --git a/src/pages/_images/discord.svg b/src/pages/_images/discord.svg deleted file mode 100644 index 34903c2..0000000 --- a/src/pages/_images/discord.svg +++ /dev/null @@ -1,23 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/pages/_images/github.svg b/src/pages/_images/github.svg deleted file mode 100644 index 5914eab..0000000 --- a/src/pages/_images/github.svg +++ /dev/null @@ -1,31 +0,0 @@ - - - - - \ No newline at end of file diff --git a/src/pages/_images/instagram.svg b/src/pages/_images/instagram.svg deleted file mode 100644 index 8f7c8c7..0000000 --- a/src/pages/_images/instagram.svg +++ /dev/null @@ -1,47 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/pages/_images/location.svg b/src/pages/_images/location.svg deleted file mode 100644 index 964d677..0000000 --- a/src/pages/_images/location.svg +++ /dev/null @@ -1,21 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/pages/_images/profile.webp b/src/pages/_images/profile.webp deleted file mode 100644 index b808d9c..0000000 Binary files a/src/pages/_images/profile.webp and /dev/null differ diff --git a/src/pages/_images/twitch.svg b/src/pages/_images/twitch.svg deleted file mode 100644 index a2b6304..0000000 --- a/src/pages/_images/twitch.svg +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/pages/_images/website-icon.svg b/src/pages/_images/website-icon.svg deleted file mode 100644 index d920649..0000000 --- a/src/pages/_images/website-icon.svg +++ /dev/null @@ -1,19 +0,0 @@ - - - \ No newline at end of file diff --git a/src/pages/_images/youtube.svg b/src/pages/_images/youtube.svg deleted file mode 100644 index c7e566f..0000000 --- a/src/pages/_images/youtube.svg +++ /dev/null @@ -1,16 +0,0 @@ - - - - \ No newline at end of file diff --git a/src/pages/socials.astro b/src/pages/socials.astro index 6364498..35bd050 100644 --- a/src/pages/socials.astro +++ b/src/pages/socials.astro @@ -1,599 +1,3 @@ --- -import Layout from "../layouts/Layout.astro"; -import StreamScheduleComponent from "../components/socials/StreamSchedule.svelte"; -import Footer from "../components/global/FooterComponent.astro"; -import { Image } from "astro:assets"; -import profile from "./_images/profile.webp"; -import WebsiteIcon from "./_images/website-icon.svg"; -import ArrowIcon from "./_images/arrow-icon.svg"; -import TwitchIcon from "./_images/twitch.svg"; -import YouTubeIcon from "./_images/youtube.svg"; -import InstagramIcon from "./_images/instagram.svg"; -import GithubIcon from "./_images/github.svg"; -import CodePenIcon from "./_images/codepen.svg"; -import LocationIcon from "./_images/location.svg"; -import DateTimeIcon from "./_images/date-time.svg"; -import DiscordIcon from "./_images/discord.svg"; +return Astro.redirect("https://socials.rython.dev"); --- - - -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
-
- Hover Light effect by - - Hyperplexed - -
-
-
-