XaiJu
deconreconstruction
deconreconstruction

patreon


DCRC.com Site Rewrite Developer Blog — Part I

Hi everyone. It's Kohi here with a nice wall of text talking about the DECONRECONSTRUCTION website. If you want to see some of the inner details of how we built the site, or just want to keep up-to-date on the plans we have for it, then please: keep reading!

Where DCRCv1 Started

The first vestige of DECONRECONSTRUCTION.com (hereafter referred to as DCRCv1) was built back in late 2018/early 2019. This initial site was functionally nothing more than a mirror of the comic data previously hosted on MSPFA. We had a daily cron function that would run once a day, fetch all the comic data from MSPFA, check it against our own database, and then update the database as needed with new pages or with edits to existing pages. We could also trigger this database update manually; for example, we could force a database update as soon as we pushed a new comic update on MSPFA so that DCRCv1 wouldn’t need to wait until 0:00:00 UTC to be up-to-date with MSPFA. (If you read Vast Error on DCRCv1 back in those days, you might remember DCRCv1 being out-of-sync with MSPFA for a short bit. This is why. Because we were dumb and forgot to run manual database updates.)

As for the front-end of DCRCv1, it was (and still is!) an ExpressJS application. At the start, this ExpressJS app served both our API endpoints as well as our actual front-end web pages. Our web page routes would trigger an API call that would fetch data from our database, and then load that data into the appropriate web page template file, which was (and, again, unfortunately, still is!! 🙃) written in EJS.

This structure worked well enough for our purposes. At that point in time, the comic was still relatively small in both size and popularity. We definitely had an audience at that time, sure, but we could get away with doing hacky shit without negative kickback.

In late 2019, we also made the switch over to our own cloud storage solution. Like most authors on MSPFA, we used Filegarden (known at the time as Pipe). To give us more flexibility and the ability to set our own URL rules, we moved over to using DigitalOcean Spaces and used that to set up our own dedicated content delivery network.

Later on, in late 2020/early 2021, we made the decision to make DCRCv1 our primary home. Using experience gained during the development of the Homestuck^2 website, we spun up our own dedicated content management system using Strapi. First, we backed up all of the comic data from our old database and reformatted it to work with our Strapi instance. Next, since Strapi has built-in API endpoints for content types, we were able to completely disable and remove the old API endpoints that were served from our ExpressJS app. Since our back-end code repo was completely divorced from our front-end code repo, it meant that we weren’t dealing with a monolith codebase anymore. And lemme tell ya, as someone who frequently has to push codebase changes? It made a huge difference.

Where DCRC is Going

If you’ve been around the various DCRC communities or perused our news posts, you’ve probably seen passing mentions of a planned site “rewrite” dubbed DCRCv2. This set of updates has been in the planning and exploration stages for a few years now.

So just to recap, the current stack for DCRCv1 is thus:

With the DCRCv2 rewrite, we are looking to do the following:

What Improvements Are Coming With DCRCv2

When Can You Expect the DCRCv2 Updates?

As stated above, we’ve been planning and discussing the DCRCv2 updates for a few years now. Hell, we even had a Patreon stretch goal to dedicate funds towards its development. Until now, we've not had a lot that we've been able to share publicly.

Today, I’m happy to say that the DCRCv2 is now actively being developed!

Work is well under way on bringing our Strapi instance up to where it should be. From the planning and prototyping steps already tackled, we've started restructuring our content types, laid the groundwork for future feature implementation, and making the editor easier for us to use.

After we deploy the new Strapi instance and decommission our old one is where the real fun begins. From this point, we can begin development on the new website in earnest. This is where the meat of the development time will be, therefore we don't have a set date for when you can expect this. Personally, I'd love to have it done by 10/25? That feels doable? Maybe? We'll see.

You can expect another one of these developer blogs in the future. Hopefully with more pictures.

P.S. If you have any features you’d like to see from DCRCv2, be sure to leave a comment about it on this post!


More Creators