I've been talking about this on my @DevLeader live streams, but I am SO close to getting my blog migrated away from WordPress.
WordPress, we're officially breaking up. I can't stand you. It's not me, it's you.
Blazor is the new hotness, and I am SO ready.
📄 Auto-Generated Transcript ▾
Transcript is auto-generated and may contain errors.
all right it is Monday morning we're basically mid November now which is pretty crazy um time flies I guess so yeah CrossFit today cuz it's uh November 11th is uh what's going on why is this beeping at me it's so like guess they call them like hero work coats um there's got to be something on the sensors to this car right now it's beeping at me like it thinks there's something in front of me like a leaf or something um so they have these workouts that are man what is this person doing it's a green light and they're just crossing the street oh they're homeless they don't care um so they had the the gym I go to publishes the workout the night before four so they listed them I think one I'm not I'm not a a CrossFit person still so I don't know
all the all the history and stuff but I think the one's called Chad I guess but it's just like a thousand step-ups and when I say just I don't mean like it's easy it's actually OB seenly difficult but like my hips are already jacked up I'm not doing step ups for a th steps so no um and then the other workout uh it's something seven um and it's it's like seven seven rounds of seven reps of seven exercises and like that would be uh significantly more than I would be able to do um and this month my gym has uh sort of like a their their open gym classes and so they have one at the same slot so I just told my wife like I'm doing that I'm going to go Squat and bench press uh because those are two movements that do in
CrossFit I don't get a lot of practice for and those are just from my my lifting days like those are two things I don't want to regress um and they're going to because I don't do them um so it's part of it but I said hey like this is an opportunity to do it so I'm just going to do it so uh like easy workout for me cuz I got to train those movements um so my bench press is obviously down from not doing it much but uh can still hit the the two plates for a few reps um I didn't want to go any heavier and go for even like a heavy for the day because uh the the weightlifting bars have a lot of spin to them so when you unrack I can feel the plates rotate uh and having that rotation when
you're holding weight in your wrist is a kind of a sketchy feeling um so I just stuck to some lighter weight but anyway that's this morning um I wanted to do so the drive to work today I'm going to talk which is the video that comes after this I'm going to talk about um I had the person who had messaged me to talk about uh working with a difficult sorry I shouldn't say difficult engineer maybe a little bit um an engineer that's kind of stuck and they want the best for them and like it's kind of challenging because the other engine the engineers getting like sort of feedback uh they wrote a very lengthy email so uh and that's that's awesome I'm I'm not saying that in a bad way with tons of detail so I want to go into that uh on the longer
drive this one I'm going to talk about uh my blog migration because um this has been something that's kind of been in the back of my mind for a while and then I was using my coding live streams to uh just as a sort of a forcing function to get me to do it so I'm going to talk about that on this drive so my blog right now is hosted in uh on light sale which is like an Amazon service it's uh it's actually really nice for like a I don't know like a painfree posted application in the container kind of thing so um I've I've liked that from the Simplicity perspective it's almost like a OneTouch deploy WordPress in a Amazon hosted uh instance which is which is great um but the combination of that and WordPress for me for my blog has just
been an absolute nightmare because uh couple I mean there's a whole bunch of reasons one is that like the permissions on whatever I have installed are absolutely Bonkers like it's locked down in all the wrong ways so a lot of Wordpress functionality for me is regularly broken for example like certain updates and stuff like will sporadically fail because it doesn't have access to the the file paths that it should so it's like the all the permissions and ownership in the file um the file system are are way too locked down um I think that's from uh a plugin called word fence it probably tried to make everything more secure to the point where it's actually broken so there's that and then my blog like between every day to every other day is is down and when I say down I mean two things used or
one used to happen it's only the other one now but it used to be between um my instance would spike up in CPU and stay there and it was so bad that I couldn't even uh I couldn't remote in to do anything so I'd have to log into the portal and literally kill the inst like tear down the whole instance and spin it back up um and now what it's doing instead is not that which is at least better but uh the services just the the CPU goes up and then it it drops off like it it the service dies for WordPress or Apache so uh I have alarms that go off every day to every other day being like hey like your website's down and I'm just sick and tired of it so uh Steven uh gel has a uh Blazer blog engine which
uh I did some searching because I was like do I just go to a different provider and I'm like you know what um I I wanted to go with WordPress in like a hosted setup like this because I wanted to be completely hands off uh I got other I got other stuff to do I don't want to be messing around with a Blog uh and then I found from having it I was like I need the control because there's too many little things that I feel pigeon ho hold into so basically if I'm going to have to be putting my hands into it to to mess around I might as well just pick something I'm very familiar with and picking something that's C based is a no-brainer for me um so Steven gel has a uh Blazer blog engine his website's on it uh he's
an awesome uh net developer content creator so uh is it as featur as you know all these other platforms no but like uh it's extensible right and like given that it's in C anything I need I can go build so uh what's been really cool though is I've been live streaming it uh for about a month now once a week for a little bit and I had my Hawaii trip in the middle but step has basically joined the chat of the live streams and he's kind of like you know guiding me along which is super cool um sorry everyone's slamming on the brakes and uh I've been calling out like I've been trying to be very transparent about it like obviously there's going to be like feature gaps right I'm used to some things I have a million plugins that are doing all these different
things for me I cannot expect that his Blazer blog engine is going to do all of that out of the box so it just been transparent where it's like hey like this is probably something I'm going to need I'll probably have to build it and uh it's been super cool because he's in the chat and watching the live stream and being like Oh no that's a good idea like let me go prototype it so he's added uh short codes so I can write posts and you know somewhere in the post I can use like a syntax that lets me put uh a little like an identifier into some markup then when the blog engine goes to render the blog it will go look for short codes and basically do like a replacement and this allows me to have reusable components that I can put into
blogs so if I wanted to put an ad for a course uh you know not like a Google ad or something but you know advertising my own products if they're related uh then I can go make the ad one time drop it in there's lots of little things like that that I was using in WordPress so that's one enhancement that was super cool um another one and I found it kind of like late was like um my my newsletter so my newsletter goes out on substack and that's where people can subscribe and stuff and if they want to pay for the archive they can but uh I've always had the mentality like I want to own my data so yes my newsletter is archived on substack but uh I have or I I have and I want to maintain a mirrored archive like the original
Archive of my newsletter on my website so I need basically member access so this way when users subscribe uh for like a paid subscription through substack they will have uh mirrored access on my website as well um like is that extra complicated 100% but I don't want to be in a position where uh like I don't own my data because if substack decides to change anything that I'm not content with I just want to be able to pick up and move uh like all my links that say like weekly. deev leader.com just change the DNS to point to something else if I need to so um I just need to make sure that I have a copy of all my own data so Steven built I haven't integrated it yet but he built in like a sort of like members access kind of thing I
got to move over Lanes here the highway is going super slow today it's raining so obviously that means no one can drive properly even though it's Seattle another thing Steven did for me was uh basically like Azure blob storage so well he set up the the blog engine to to do uploads to it and that's because by default if you were post uh making a blog post and had a picture you need to have hosting somewhere so he just made it like a first class thing so what I wanted to do was do all of the work for this migration on stream but I realized that like there's a couple things I'm like pretty uncomfortable with from a a live streaming perspective and that is when I'm in like uh the Azure portal I'm still a little bit nervous oh here's morine I'm still a
little bit nervous to um to stream that because I don't want to show a screen and accidentally like have a a secret pop up or like too much information so because of that I said okay look I'm going to be streaming so tomorrow morning which is going to be Tuesday morning for me depending when you're watching this it's not going to be the same for you and I I just wanted to like get into code and not not have this fear of like oh I got to set this up in Azure to keep going but I don't want to show it on stream so I just did all the the grunt work to make sure that all of the pieces that I need in Azure are functioning so what that meant was this weekend I spent some time getting the uh mySQL database set up
so that's configured the blog engine can connect to it uh the Azure blob storage so that's configured the blog engine can connect to it authentication in Azure so again uh it's all configured the blog engine can access it I didn't do the member stuff yet so that'll be something I need to do and then um and then I wanted to prove so that I could do it on stream I wanted to prove that I could basically take stuff from my previous blog and basically dump it into the new blog so I wrote a very very simple um console application that connects to the like the it's actually in the same database but connects to the one table I guess no how do I explain this it's the same server uh and different databases on the server so connects to the source database which is my
existing WordPress and then also connects to the destination it can uh copy records over so now now that that framework's all in place I can go back to the content from the previous stream which was great we have a blog post how do we need to modify this blog post so that it can be compatible on the new blog uh so to give you example right I'm going to have to to repoint all of my content so uh sorry I shouldn't say content repoint all of my um my images my uploads so every image that's going to be added uh when I make the blog post or migrate the blog post I should say they're all going to be pointing to the previous location which I'm going to be tearing that down so uh what I did was I uh went to my word press
install I basically took every picture uh re-uploaded it to Azure blob storage so I already have a copy it's in the same uh structure and I just need to change the prefix of every resource to be uh the CDN that I'm using for for Azure blob storage so that means in the migrator I'm going to have to write something that checks like if it looks like a path for an upload just change it to the new CDN location and again I just have to change the prefix so that's one example of like a migration that will have to happen um what else um there's things like every blog post I have iemp on my goodness sorry every blog post I have has a table of contents in it that was done with the WordPress plug-in now Stevens blogs have um like a built-in table of
contents but I I was thinking this more his table of contents shows up in like a drop down and I think I could be wrong but I think for SEO purposes having a table of contents at the top it's actually like in the text is supposed to be helpful I think it was at some point um so I might look into that so that I can drop in something that will render a table of contents in the article at a given point so maybe that's like a a short Cod or something I drop in that does a table of content for us so there's that U there's a few things like uh and some of this stuff like you might you know be a software developer and you're like oh I understand what you're saying but if you're not like uh if you don't create
blogs and try to do SEO optimization and I'm not an expert by any means but some of this might not seem obvious there's some SEO optimizations where you can put an FAQ into your articles just a frequently asked questions and you probably used like Google or other search engines where you search something and you see like related questions come up and then if you expand the question it gives you the answer so if you want your stuff to show up potentially there you need to have like these FAQs uh which are like a specifically marked up type of syntax in your articles and then uh the Google B and pick those up and index them it's kind of like if you were to search for a recipe on Google you can put like marked up recipes into your blog articles and then this uh the
search engine knows like how to index that so um there's lots of little things like this that I had plugins for that I'm going to have to try and recreate now the first pass of this to go import everything is not going to be right or complete it's going to be partial um there's no there's no way around that but what's cool is that I can use this migrator to basically uh like I already have a copy of all my existing blog posts I can use this migrator to to basically drop anything that I've imported and I can filter by like the post or the date range or something um I can drop anything that I've migrated and then say great like reimport it and apply all the transforms again uh so this way if I'm like oh crap um I didn't uh I didn't
handle the table of contents thing properly now I finally understand how to do it I want to go reapply that to all of my blog posts um what I'll be able to do is just repport them so I don't have to go by hand and manually do it so I'm pretty excited because that's going to just take a huge burden away from me on on managing the stupid WordPress um it's going to be it's way more performant already um everything about it is just better so I'm excited so that's this video um drive to work like I said so the next video I'm going to talk about the uh the uh the senior engineer that's kind of stuck and this manager is trying to help them uh and there's a bit of a weird dynamic going on there so we will check that out in
the next Drive take care
Frequently Asked Questions
These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.
- Why did I decide to migrate my WordPress blog to a Blazor blog engine?
- I decided to migrate because my WordPress blog hosted on Amazon Lightsail was frequently down and had complicated permission issues that broke functionality. I wanted more control and reliability, so I chose a C#-based Blazor blog engine that I am familiar with and can extend as needed.
- How am I handling media and content migration from WordPress to the new Blazor blog?
- I re-uploaded every image from my WordPress blog to Azure Blob Storage and plan to update all image URLs to point to the new CDN location. I also wrote a simple console application to copy blog posts from the old database to the new one, applying necessary transformations like changing image prefixes.
- What features am I planning to implement or improve in the new Blazor blog compared to WordPress?
- I am working on adding features like short codes for reusable components, member access for newsletter archives, and a table of contents for SEO purposes. Since the Blazor blog engine is extensible, I can build these features myself or with help from the creator, which allows me to maintain control and customize as needed.