hey everyone. i owe you a real explanation of what's been going on over the last few weeks, because it's been a lot, and you deserve to know where things stand.
the short version: we had a rough downtime that uncovered some serious underlying problems, things got worse before they got better, and (in the middle of all of it) we made some big moves that i actually feel good about. here's the whole story.
two weeks ago i took the sites down for a scheduled maintenance window. it was short notice, i know, and i'm sorry about that. the work took longer than the overnight window i'd planned for, so we came back up before it was finished. we limped along for about two weeks. things were mostly working, but not great.
eventually i had to make the call to take everything down again to actually finish the job. that's when things got worse.
it turned out that for those two weeks we were running with corrupted data in the database (which also means that corruption was sitting in our backups). the worst of it was some custom wearable information: prices, passwords, how many have been sold. we've recovered most of it, but some of those details are going to need to be pieced back together over the next few weeks. i'll keep you updated as that process continues. if something looks off with your custom wearables, please let me know.
i'm sorry. this sucked and i know it.
here's where things get more interesting. when survival started and i had to figure out what to do with this extended downtime, i made a call: let's use this moment to move more of the infrastructure over to kumos.
so that's what we did. the cron system (shops restocking, all of that) is now running on the kumos backend. survival features (kissing, biting, strain progression) are running on kumos too, regardless of whether you're using the legacy wardrobe. and avatar image generation is now going entirely through kumos.
this might sound like a lot to do during a crisis, but it actually made sense. kumos is built on a powerful modern framework, and once you have the basic plumbing in place, adding features is fast. avatar generation came with real caching and opens up some genuinely fun new things we can do with avatars. new wardrobe features that would have taken weeks before took hours.
i've been asked this a lot and i want to be honest about it.
legacy subeta was running on PHP 7. PHP 7 has been out of support for years. getting security updates at this point requires bringing in outside contractors, which is expensive and not sustainable. and as time goes on, modern tools and libraries just... stop working with it. it's not fun to want to build something and not be able to because the foundation is too old.
a few years ago i got a quote from a team to bring subeta up to current standards. it was going to be six months of work and tens of thousands of dollars. it felt smarter (and more exciting) to build something new and move to it thoughtfully. that's been the plan with kumos.
but here's the thing i'm really excited to tell you: legacy subeta is now running on PHP 8.4.
i want to be real with you about something, because i think it matters for how you think about all of this.
subeta is over 20 years old. at one point it was a real company with a real team. and i think some part of everyone's brain (including mine sometimes) still expects it to operate like that. but it doesn't, and it can't.
i'm the only programmer working on subeta. we have a small team, and i genuinely believe we have some of the best illustrators and support staff in this whole corner of the internet. but it is a very small operation. virtual pet sites just don't generate the kind of revenue that funds engineering teams. that's the reality of this type of site in 2026.
so when you're deciding whether to grab a subscription: that's what you're supporting. a scrappy small team doing the best we can with what we've got. the site has always been a little scrappy, and honestly it probably always will be. i think that's okay. i'm proud of what we build with the resources we have.
toot toot on my own horn for a second: i think i'm a pretty world class programmer, and that goes a long way. but there's still only one of me.
this is the part that took the most work during the downtime. we did a large-scale refactor of the legacy codebase. took out huge chunks of old code, modernized a lot of what was left.
this kind of work used to be brutal. but doing large codebase migrations is genuinely easier now with machine learning tools (not even generative AI, older methods that can make intelligent, systematic changes across thousands of files at once). it's the difference between "manually rewrite every file" and "describe the transformation and run it." it's not magic and it's not perfect, but it gave legacy subeta a much longer shelf life than it had two weeks ago.
you might notice things looking slightly different. i was able to pull out years of accumulated CSS that wasn't really doing anything (and that's a good thing!) but it might mean some user and pet profiles look a little off. i'm working on a shim to make sure that impact is minimal. if something looks really broken, let me know.
to give you a sense of what working in legacy is actually like: there were over 400 places in the codebase that set the font-size on a particular page, all cascading off each other. four hundred. that's the kind of thing you're dealing with when a codebase is 20+ years old and has had dozens of hands in it. cleaning that up is painstaking, but we're doing it.
here's a good example of what's now possible: i updated the /pets page and was able to strip out years of bootstrap and stacked stylesheets, replacing all of it with modern CSS (flex and grid) to make a clean, simple layout. it looks great and the code behind it is actually readable. that kind of thing used to be basically impossible to do safely. now it's not.
honestly, in a better spot than before the downtime, even if it was a rough road to get here.
the immediate plan:
thanks for sticking with us through this. more updates soon.
💖 ✨ 🤗
hmm i thought i made markdown render on legacy 😭
💖 ✨ 🤗
thanks for all of your hard work and for continuing to update this small, lovely corner of the internet. <3
ps- i pressed "preview" before posting this and it wouldn't let me click out of it and press "post"
fuck this made me emo 😭 you're an incredibly inspiring swe keith and im very grateful for your efforts here + what i would literally call perseverance getting through this downtime/overall transition.
hearing that you were able to migrate legacy to a newer version of php is the icing on the cake
thank you for this update<3
i also wrote a ton, pressed preview couldn't leave it, and now i will retype much more concisely HAHA
thanks for the update and all the hard work you do, and especially this weekend with everything. i can only imagine all that it entails.
and appreciate all the work you and staff do to keep this site running for our lil userbase over here.
i know i can be a bit complain-y sometimes and pretty straightforward and critical with my feedback, but i do appreciate you and everyone :')
Thank you so much for the thorough explanation of what's happening--with downtime, with Kumos migration, with updated Legacy and more. It's all very much appreciated. The decision to let us all know as well as all the decisions on what to do, how to go fwd, etc must be difficult, and you're doing a great job. I know nothing about programming, but I have to agree that you're a darn good one!!
Well that's certainly interesting. Good luck with the continued update and eventual migration. I do hope that the PHP 8.4 is less of a grind to work with, it certainly sounds like things should get better as you go. Here's hoping stability and less lag will follow.
I only found this site around 6 months ago but I'm having so much fun and I'm so impressed by everything. The art is constantly gorgeous, the support team is the kindest I've ever seen, the custom item system is a joy to partake in, and the owner is transparent and sincere. Couldn't ask for more tbh, I know I'll be sticking around for the long run! <3
Keith, I know nothing about programming, but I've been here for the majority of my adult life, and what I know is this: I'd rather have a Subeta that's a little scrappy and has a lot of wit and heart and soul, than any corporate pet site or social media. You and your team are doing such a great job!
Dang. As a former php developer (I don't miss it. I knocked it off my resume as soon as I could), and person who has been on this site for god, like 19 years, I'm impressed at the scale of this migration. I'd help if I could, but I don't imagine that's work you can farm out easily, so I'm just gonna up my subscription (I am persistent, but it may take me a minute) and hopefully that'll help a bit. Godspeed.
Admittedly PHP has gotten much better in the last ~10 (omg i've been doing this way too long) years! Much better typing systems!
💖 ✨ 🤗
Thank you Keith for the explanation and ALL the work you and your staff perform to keep Subeta running. I've been here for a long time and appreciate the fun and the stress relief playing here brings. I look forward to many more years hanging out here with everyone.
I know many have already said it, but thank you for all of your hard work Keith!
i certainly don't envy all the work it takes to make subeta work/fix things/etc. but as plenty have said already, it's all immensely appreciated. (and you deserve to toot your own horn a bit here! which.. sounded better in my head 😅 but my sentiment remains the same)
Massive kisses for you, Keith. I remember some of the early days and even though the team has dwindled down to just one person, I appreciate that you're still around and keeping the site kicking. The font sizes being goofy doesn't stop me from enjoying the site like I've been enjoying it for more than half my life (eep).
Hunting for: (It's the only beanbag I need for a full collection!)
thanks for the update! <3 man, you did so much, it's definitely appreciated!
Does this mean we will need to tweak custom pet pages to fix issues once everything is done? I also assume that BBCode (sCode) not working on profiles is temporary.
I appreciate the updates!
Thank you for all your hard work! I'm so glad you've been able to get those updates made, I think it'll make things much smoother, and then things can be worked into Kumos in a more mindful way towards the long term benefit of the site and your creativity.