Fedran Infrastructure

In the first weeks of March, June, September, and December, life gets complicated for my day job. Usually that means the pressure gathers in intensity in the preceding weeks and then winds down after the quarterly release.

It is time when my other obligations start to press into my attention and I'm too busy to focus on them. Naturally that means as the release winds down, I try to get focus on the others.

This month, I managed to get twenty thousand words on a commissioned novel. I also stumbled into a few things on the Internet that set off my fixation and I ended up working on them for a few weeks as a “play coding” to relieve the stress. This month, it was almost entirely related to Fedran, my fantasy setting that I also use to create what I'm hoping is a full-featured website suitable for spoilers, “who is this character again,” and just background stories.

Fedran Monorepo

Some time ago, I decided to bulk most of the “backend” of Fedran to a single Git repository. I'm still keeping my sources (all the stories, novels, and poetry) in individual repositories though I did go through the exercise to see if I wanted it (I do, there are too many benefits). But the infrastructure is a different story.

There isn't much there right now, just a standard directory structure to locate the files, the Nitride website, and a Rust CLI which sets up the individual stories in a standard configuration, lets me do queries across the projects, and starts to help me coordinate everything together.

Both have built up over the years as I've tried to automate one problem after the other. Moving them into a single repository meant I needed to back out a lot of the cruft that was to coordinate the multiple repositories. I didn't have to manually build the Rust CLI anymore, I didn't need to integrate download the projects into it, I didn't need all the configurations and tokens because there was now one official layout and structure to work against.

Last last month, I got the website migrated over. This week, I got the CLI fully integrated, actually building, and doing things. This means when I edit a chapter to add content warnings or add details, the website deployment will pick up the changes without me having to remember (e.g., not getting it done more twice or thrice a year).

It does add a half hour to the build process because I'm apparently incapable of picking a single language to work on and I haven't figured out caching on my Woodpecker CI server, so it downloads the entire repository, a half GB of Rust packages, another quarter of NuGet packages, and about the same in Node packages to build it.

That I can work on.

This took a while, mainly because I was struggling to get it integrated into a standalone and remove the bulk of the overhead I needed when it was separate.

NixOS and Standard

Last week, while wandering around the internet, I stumbled on Standard, a setup for NixOS flakes (like I use for Fedran's monorepo) that is opinionated but also seems to fit a lot with my thing.

That was a fun few days (four) to migrate the Fedran site over, and it fixed some problems I was having in general (read, I actually have the CLI integrated into the build now).

The success means I want to change over my other infrastructure repository which drives most of my home lab but… I need to say no to that until after August.

But, one thing that really stuck with me is that it hits the same buttons that I found when I was reading about Buck2 and Bazel, two other monorepo systems that fit well with a lot of professional and personal development going on in my life. Plus, I just like typing this:

std //cli/apps/default:run


std //website/app/default:build

And have it do all the right things including getting all the dependencies. I can easily see that tying in my aggregate books, timelines, and other stuff nicely into a single unified system.

Future Plans

I like building Fedran's infrastructure as much as writing. More so lately because I burned out a little bit and need to work on finishing Nor Curse Be Found and Second-Hand Dresses.

Speaking of Dresses, I'm down to a single editing question but that ties into a different program I need to work on, rebuilding my calendar system so it can play with C# and Rust. I've been using my Typescript based on for about a decade now and I have a huge list of things that need to work.

Who knew an editor question of “what day is it” would trigger that paralysis, but I want to solve it because one of the things I lost with my migration to Nitride was my (awesome) timeline functionality. I was proud of that and want it back.

The calendar is also critical for my constraint system. Because I'm coordinating across multiple process, and I had a terrible time with Raging Alone's documentation process, I realized I need to have something that lets me say things like “this character is eight years older than this one” or “this happens two months after the events of this story”.

(I also need a map, but I'm trying really hard not to think about that.)

Nor Curse Be Found

Speaking of Nor Curse Be Found. I hit a little bit of a writer's block on the current chapter and I'm not happy with it. But work and my writing obligations are making it difficult to focus on it, which is why I haven't done much with it lately. I can only have so many writing projects going on and writing that pays bills has a higher priority over writing that makes me feel good.


While Reddit was imploding, I stumbled onto a post in /r/fantasy asking for resident authors. Since I've been commenting off and one for a few years (and being good about not saying "read my book!"), I decided to throw my hat into the ring. Not sure what would come of it, but it wouldn't hurt since right now Flight of the Scions currently has one review on Amazon and zero reviews on Goodreads (and just about nowhere else).

Self-Published Fantasy Blog Off

Over the years, I've withdrawn from both Facebook and Twitter. One of the conquences of this action is that I don't know about a lot of things going on, but one thing I've been occasionally checking has been the Self-Published Fantasy Blog-Off.

Sand and Blood was a semi-finalist in the first one and I felt I was so close to getting to at least finalist. I lost the finalist for The Thief Who Pulled on Trouble's Braids who would eventually be the winner.

But I was hoping that maybe Flight of the Scions could finally have a chance. So I was waiting for the announcement from Mark Lawrence but it never came. Last night, when I decided to check one more time, I saw the reason.

SPFBO 9 is closed. We reached the 300 entries in 41 minutes.

Without watching for when the next round comes around, I might have to just hang up my hat on trying to make another SPFBO and just chalk it up to an “almost win” with Blood.

What's Next?

Wel, I need to put down the programming hat for a while because we're coming up to the end of the month and I need to write another ten thousand words on my end of month obligation. The beginning of the month will be my commissioned novel (hoping to get 10-20k words by the 15th).

That means my next “fun break” is in about three weeks. I need to work on the Typewriter Press website because I published another book for an author last week and I need to do my due diligence to help them sell as many copies as possible.