Journal

My journal for smaller posts & updates.

← prev  | page 2 |  next →

November 12, 2024

I did it. This entire site is now running on the Astro web framework instead of Next.js.

There were two main reasons why I chose Next.js for this site originally:

  1. I already had some experience with it in an older iteration of my website refresh (which you can see in this blog post ), and
  2. It is by far the most popular metaframework on the web right now.

Both of these made it easier to get started with Next.js, and #2 made it more appealing as a learning / portfolio-enrichment experience.

However, along with these two upsides, two big problems conversely arose with Next.js:

  1. Building a Next.js website (which I didn’t think I had to do when I chose Next.js!!!) takes a lot more resources than I thought it would. In order to rebuild my site and make my changes live, I need to take the website down first on my basic bitch $7 VPS from Hetzner (put a pin on this, I’m going to talk about it later).
  2. Because Next.js is designed primarly for single-page applications (SPA’s), when you click on a link to another page on the site… nothing happens. No loading bar shows up in the browser. The site itself doesn’t even show its spinner for a bit. This garbage time can be a fraction of a second or multiple seconds depending on how shitty your internet is. And I hate it with a passion. And there’s no way to fix it without hacky workarounds. Pain.

The second problem can absolutely be fixed with Astro since it primarily relies on either static page generation (SSG) or server-side rendering (SSR), both of which make the browser show a loading bar immediately upon requesting a new page like it should. The first problem is still TBD because I haven’t pushed this site to prod yet, but I have a feeling since Astro’s whole entire shtick is SSG, it should have better optimization on that front.

Since I deliberately made this site text-focused and light on visual complexity, making everything work on Astro was surprisingly easy. There was of course a learning curve with all the ways Astro does things differently, but most problems I ran into were able to be resolved in the same sitting I found them in. I was even able to reuse some of the libraries I was already using to make the porting process easier. All in all, this site should work pretty much the same as it did under Next.js… but better . (I know, fuck this character and fuck this show but i think this meme fits here ironically lol)

The true test for Astro will come when I deploy it, though. I have never actually deployed Astro before, but since it uses (p)npm for running deployment commands, it should be easy to automate with PM2 like I already do with Next.js. I hope it uses less resources than Next.js so I can actually leave my site running while it’s updating, but time will tell.

The simplest way to fix that problem, of course, is to throw more money at the problem by upgrading to a better VPS. However, due to issues with censorship of “pornographic content” (parts of this article are a little sus but the big idea of “if you host a fediverse instance that doesn’t completely ban nsfw content, you could get rocked by Hetzner” is scary to me), I don’t really feel comfortable staying with Hetzner. I’ve used Vultr before but they’re pretty expensive, so I might just say fuck it and move back to Linode lmao.

Hopefully, all of this change will be for the better and not for the worse. I’m rapidly running out of energy and I’m suddenly feeling very weird for no reason so I think I need to stop writing lol. also SOMEONE’S USING BONE CONDUCTION HEADPHONES RIGHT NEXT OT ME AND THEY’RE ORANGE AND THEY’RE USING EAR PLUGS WHAT IS THIS ABSOLUTELY INSANE STRAT I NEED TO INVESTIGATE THIS (one day)

right music link uuhhhhh here’s something that was in my watch later feed for a billion years ktnxbye

October 2, 2024

[ this is not finished. it will never be finished. fuck you ]

(note to self: if this becomes 100+ lines, just make it a fucking blog post jesus christ)

Yeah, it’s been a while since I made an update to this site. But hey! I got an actual post this time!!!!

Since I’m writing this while I am still working on editing the post, I’m going to leave a checklist here of things I want to work on surrounding the site before I publish a new article.

Syntax Highlighting

This post uses a lot of code blocks and code strips (what I’m calling “monospace” formatting). I’m really proud of where my syntax highlighting and code block functionality is right now. However, I want to make a couple of tweaks and updates to make my implementation first-class.

First, I need to do a quick check on whether syntax highlighting in code blocks works without JavaScript. In my eyes, it should, since all of the processing happens on the server-side and all the client gets is a bunch of <span>’s with different colors attached to them. If it doesn’t, I need to figure out why and fix that before publishing.

Ideally, my site should require as little client-side scripting as possible, if any. The main reason I moved away from Zonelets (a popular blog template for Neocities) is because of how it required client-side scripting to even function properly and let you see what posts are on the site. Especially after I moved away from Neocities, a platform that is built around banning server-side scripting, that reliance on client-side scripting to make up for that slack seemed kinda silly now that I can use server-side scripting.

I know it’s kinda silly to want as little JS as possible on a site powered by JS/TS in the backend and on a platform designed around single page applications & routing… but hey, a girl can have her cake and eat it too sometimes.

The other main thing regarding syntax highlighting I wanted to check is how to get it to work with Tailwind’s automatic theming. Currently, the site switches from light to dark mode with the browser / OS — there is no way for the user to set it differently. That’s something I want to change in the future, but for now it makes things Just Work™ a little better because I can use Tailwind’s automatic light/dark theming system to change colors based on theme.

Before, I just had the MDXCodeBlock component change its entire theme depending on whether the browser is in light or dark mode. This had two problems: the theme only updated once, and it updated slightly after the rest of the site is themed properly. The theme is set to light mode by default, so in dark mode, the theme would be too dark for half a second before the theme check actually goes through and the code block theming fixes itself. That is very bad.

My thinking is that since what gets sent to the browser is a bunch of <span>’s with colors slapped on them anyway… what if I make those individual colors themed instead of changing what colors to slap on depending on the theme? The easiest way to do this would be to make a new theme where instead of defining the color by a color: attribute in style, the color is defined by classes. That way, not only can I build a theme with my existing Tailwind colors and themed around my site, but I can also give all tokens two colors — one for light, and one for dark — using the dark: prefix I already use in the rest of my site.

August 30, 2024

updated July 3, 2025

I am slowly realizing that I will almost forever be struck with the YGS curse until I stop having things to tweak on my blog.

I’m not sure how I feel about that. On one hand, I want to make this site into another platform of sorts for smallweb tech people. On the other hand, I want to actually write blog posts once in a while. So… I think I may be putting that former aspect on hold until I get into a good rhythm with my… ugh… “content”. I hate that word so much.

Also I just now realized you can totally get away with just using HTML’s bult-in <audio controls> player for embedding audio into your site. So, I’m probably just going to do that for my narrated articles until I get enough complaints about it not having things like speed controls or etc. And there will always be the podcast feed for people who want more controls.

I just pushed a whole bunch of updates to the blog so I think my next blog post will be about all of that and how I feel about having had this site up for just about two months (I think). I need to write. Aaaaaaa.

I heard this in a Starbucks and I had a hell of a time looking it up so here it is for you to enjoy. Thanks!

August 14, 2024

I survived my summer class. I think. I haven’t checked my grades yet but last I saw it I got a C. C’s get degrees. Especially when you do half of the classwork within three days holy mother of god how did i live

Right now, I’m in Kentucky visiting some very special people. I might make a blog post about the journey, but I’m not sure how much detail I want to give in a fully public space like this site. I’m also not sure how much detail I can really give in general. It’s pretty much just “I got an emergency lift to the bus stop, rode Greyhound for eight hours, I shat in a McDonalds, and that’s the story.” Actually now that I list all of that out I probably could make a decent sized post about all of that, hmm. Maybe I’ll do that. But now I’ve got so many ideas for blog posts but never really committing to any of them that I feel halfway to Malamaroo again. I need to square my sights on one idea and stick with it.

Now that I have a bunch of free time finally, I’m going to try working on the narrated article system for real this time. I want to make it work with and without Javascript: my site is currently fully functional without Javascript and I want to keep it that way for the two people who like that. I also want the UX to blend in nicely with the text-first minimal aesthetic I’ve got going on.

I also probably need to do some updates to the header, especially on mobile, as well as add some enhancements to the site for mobile in general. The header is slightly jank on my iPhone 12 mini and I think the best solution is to make a version of the header that feels “designed” for mobile like it does for desktop. I also have noticed that blog post images are a little wonky on mobile especially if I’ve resized them (what works on desktop does not work on mobile lmao), so I think what I’ll do is just disable that sizing if you’re on mobile… I need to figure out how to do that through JSX though.

So yeah, this next week or so is looking really bright both for my personal life and my projects. Hopefully you actually get to see some stuff from me other than journal entries within a few days.

and in case you didn’t catch my last “now” entry LISTEN TO THIS RIGHT FUCKING NOW

August 9, 2024

I think I finally fixed my sleep schedule. For now. I’m actually really proud of myself for finally getting into a morning groove. I feel way better when I’m actually up in the mornings: waking up in the afternoon seems to lay some weird sort of lethargy on my day and it’s hard to motivate myself to get anything productive done.

I’m also about to finish my summer class catch up apocalypse. Got to read a bunch of cool stories written by fellow classmates, and imo no matter what grade I get, that alone makes this class worth it for me.

Currently sitting in my local Starbucks getting comfortable before starting back up on my work. I have some plans with an IRL friend later today, so hopefully that will be a good self-reward for making it through my summer class. I’ve been reeeeaaaally stir-crazy this summer and I can’t wait for it to end lmao. Once the fall semester starts up, there will be a lot more excuses to be out and about and I’ll feel like myself again.

I think during the free couple of weeks after this, I’ll start working on a couple of things that are holding me back from pursuing the next phase of my website:

  • The narrated article implementation is long overdue. I’ll probably use it to double as my next blog post (I’ll talk about all the updates I’ve done to this website and go into detail on how I implemented the narrated articles & the podcast Feed… with the article itself coming out with narration on day one :3)
  • Still, I want to get one more blog post under my belt on top of that. I think the idea I had for a blog post on Geminispace is the best lead to follow. I really really want to make an article exploring Geminispace, and following up on this hyperfixation might be my best chance to actually buck YGS Every Friday Syndrome, at least for a bit.
  • This will also be a good opportunity to implement a couple of miscelaneous pages under an “extras” hub on the navbar (which, yes, is getting progressively longer and longer to the point where I might need to rework the header layout for mobile finally lol). I want to bring back the Battlefield 4 Chat Simulator (cause it would be funny), but I also want to add a page for cool Geminispace resources, a “starwall” where I shout out cool indie web sites that I find on my travels, and a “/slash” page where I compile multiple “slash pages” into one big page (so I don’t have 50 billion little tiny pages that serve only one very niche purpose lmao). Next.js’s routing & middleware features, gob dless.

Finally, whoops, I ever even published my last journal & sharefeed update. To make up for that, I’m gonna add a ton of sharefeed posts this time around. One day, I should make a system that lets me set sharefeed posts in the future, and if I do so, they only show up on the feed once that date has arrived (basically a barebones scheduling system for sharefeed entries). That will make it a lot easier to deliver… “cOnTEnT” (ugh hate that word) on a consistent basis without having to have a superhuman noggin.

Here’s an album I’ve been listening too for a hot minute. . Funny story about this one: I first discovered this band from a CD left in the CD player of my current car when I first got it. I’m glad I did lmao

August 3, 2024

I finally got the opportunity to have breakfast. And of course, I decided to make it Taco Bell breakfast because I’m a gremlin like that.

This morning feels way better than most of the mornings that I usually have… probably because I actually made it to the morning. I absolutely crashed yesterday, sleeping over 14 hours and waking up at midnight. So even though I have currenlty been awake for eight hours, I still get to exist in the morning hours that I would usually sleep though because of my body’s lethargy and desire to sleep in.

So now I get to sit in a Taco Bell and watch videos about how Modern Warfare 2019 somehow looks better than a game that came out in 2023 . It’s funny how multiple animations in MWIII were clearly re-used from MW19… it’s almost like Sledgehammer were on a massive crunch or something.

(08/09: I never finished this entry, so here’s a jungle mix as an apology lol )

July 27, 2024

I’m currently editing this MDX document on a 7th generation iPad. I’m serious.

In an attempt to reduce distractions, I finally charged up my iPad and brought it and only it (…okay, and a notebook and pencils but that’s it) to Starbucks. I wish I had decent headphones with me to listen to music on but for some reason all of my food headphones keep blowing up breaking down way quicker than they have any right to. Pain.

I forgot how surprisingly usable this Logitech Combo Touch keyboard & trackpad are. The trackpad is definitely not the best (hell, it still has an actual hinge that is really awkward to press down on), and the keyboard is slightly cramped, but all absolutely works. In fact, in terms of the key travel and feel in general… it’s honestly comparable in quality to my M1 MacBook Air. Wild.

For some additional context, I first bought this iPad in Christmas of 2019. That means that this iPad is 4 years old getting very fucking close to 5. And it’s still kickin’. My older Intel MacBook Air is either from 2017 or 2019 (can’t remember which right now but leaning 2017) and that felt absolutely ancient. This iPad? It’s fine. It’s definitely long in the tooth — but considering the closest upgrade with ideal accessories would make me pay just as much as I did for my M1 Air… I absolutely don’t feel like I need to upgrade any time soon. And if I do? I might just go for the mini… when it gets the M-series update (pretty please Timmothy Microwave??? 🥺👉👈).

I’m gonna try to push a sharefeed update too, but I’m not sure how that is going to go. I’m currently using a text editor built into the git client Working Copy. It works… but it definitely is not feature rich nor very language sensitive. Hopefully it will do just as fine editing JSON as it is editing markdown though.

By the way, if you’re reading this, please check out my RSS feeds and shoot me an email about what you think of them. I haven’t had anyone comment to me about them yet, and I wanna make sure they’re working good for people other than me. Also, I want to start working on making journal updates crosspost on both my RSS feed and my social medias (cohost, fedi, & bsky). Just a little bit of that Al Gore Rhythm goodness never hurt anyone! 0:3

It might also be a good idea to turn some of my longer threads on my Telegram channel (yes, I have one, you can’t have it lol) into journal updates on here when I don’t have a lot to say. I wanna keep up this weird streak of actually writing shit going, and repurposing some of my older content here would help a lot with that.

Anyways thanks for reading, next blog post coming never I only write journal posts now sorry not sorry ex dee

oh and here’s some lesbian stoner rock just for you

July 25, 2024

updated July 2, 2025

I accidentally a YouTube channel. Again.

The first time I accidentally a YouTube channel, I wanted to comment on a video about making a clone of Flappy Bird for the Nintendo DS . This time, it was also to comment on videos, but I also wanted to upload random videos that no one would care about. Turns out, my first video that I ever published on my new channel got 300-something views. Whoops.

So, I decided to make a Valorant funny moments compilation and upload it to my channel.

note

The video is gone because the video no longer exists. I’ll be talking about this in my newest blogpost coming soon never, apparently

Yes, I know, a direct YouTube embed is stinky. One day I want to implement a system where you have to click on an image first in order to load the embed. I would also like to host my own Invidious instance one day, but that’s for when I have more disposable income to throw at side projects.

I’ve been thinking about doing this for a while. I’ve been collecting clips on my medal.tv page for over two years at this point. Over time, I’ve slowly gotten better at the game and grown to appreciate it more and more. I want to start making content for Valorant, not just “funny moments” but also analysis videos and tutorial videos. I have an idea for a video about “map control” and how important it is to winning rounds. I may not be the best person to give advice about the game (I’m only a Silver 2 after all), but I feel like I have had enough experience with not just Valorant but Counter-Strike as well to start giving my two cents about things. It would also help me ease into making more scripted content like videos or even my narrated articles that I keep bringing up but never actually making.

So, yeah. I’m back on YouTube. I don’t want to get famous. I just wanna keep exploring the medium of video cause for some reason it is my most comfortable.

You ever listened to a band named Andrew Jackson Jihad ? No? Now you can. See ya in a few days I guess.

July 20, 2024

I’ve been watching CDL Champs over the past couple days for the reason most people are: the in-game rewards you get for watching it. As I’ve been watching this event, I’ve noticed that the competitive meta for the game seems very… very stale.

There are only three weapons that I’ve seen used throughout the entirety of CDL Champs: The MCW (ACR), Rival 9 (Scorpion EVO 3), and Renetti (93 Raffica). That’s it. The Rival 9 never has any optics on it, while the MCW almost always has the Mk. 3 Reflector (seemingly based off of the red dot sight from Advanced Warfare like the JAK Glassless Optic). Some players run the Renetti without an optic while others slap the Slate Reflector (a callback to Vanguard) on it.

The individual players may put different attachments on each of their guns, but they never differed enough for me to immediately notice. Whenever I look at the gameplay, I either see an MCW or a Rival 9 paired up with a Renetti, and all that seems different between them are the special camos that are given to each team. And that kinda sucks.

MWIII as a casual game is most notable for having the most amount of base weapons in any Call of Duty game — over 100! And yet only three of them seem to show up in professional play. The pros have either banned or agreed not to use entire categories of weapons such as shotguns and snipers, and no-one seems to pull out alternative weapons in the categories that aren’t banned. It was this way in MWII as well: remember how many people complained about the TAQ-56 (SCAR-L), TAQ-V (SCAR-H), and Vaznev 9K (PP19 Vityaz) being the top meta guns? But here, it seems like the competitive meta hasn’t fully reflected the casual meta. Sure, lots of people still use the MCW and Rival 9, but there are a wide variety of guns being used in casual play. So why aren’t those guns being used in CDL? Why does a game with 100+ weapons only have 3 being featured on the big stage???

It just really infuriates me and just makes me hope even more that Black Ops 6 ends up being a hit. We need to have a more interesting competitive scene please Bobby i beg you

Anyways, House mix pogchamp, house mix pogchamp. . I need to catch up hard with school stuff so I’ll mostly be focusing on that for now. As such, I don’t know when my next blog post will come out, but hopefully I can get it up by the end of this month. See y’all then!

July 16, 2024

You know when I said I should stop working on improving my site and start actually writing stuff? Turns out I forgot to follow my own advice. Whoops.

The sharefeed has been officially implemented again. All the old journal entries I had on the old website are back, and most of the old sharefeed entries have been ported over too. I dropped a couple due to the power of hindsight, but you won’t remember them anyway lol.

I also changed up how the RSS feeds work. Now, when you click on the “rss” link, it will take you to a page listing all the feeds you can subscribe to. I’ve also added a prefix to each post in the main feed so you can tell what type of post it is at a glance. For example, blog posts will be marked [blog], To everyone who already subscribed, I am so greatful for your support and I am so sorry this will probably screw up your feed lol. It won’t be the last time this happens either… I may do a little more trolling over the next couple of weeks, including adding journal entries to the feed.

The last thing I am going to do tonight is attempt to record a narration for my first blog post. Hopefully it goes well. I’m really excited about narrated articles, and I hope I can inspire others to try similar things with their blogs.

Another album recommendation cause I’m awesome. See y’all soon!

← prev  | page 2 |  next →
contact —   |  tips appreciated!

The writing contained within this site may contain the author's personal opinions. These opinions do not represent any of the author's employers or other organizations the author is a part of — past, present, or future.

© 2023-2025 kebokyo — All Rights Reserved