Ymir Report #50 — Project deployment performance improvement

publishedabout 1 month ago
2 min read

Heya friend!

Carl here. You signed up to receive updates about Ymir, the WordPress serverless DevOps platform that I’m building.


Greetings from Montreal! I'm back on the east coast for the past week. It's been nice to not deal with the crazy JST time zone. (Although I plan to go back to Tokyo in the fall 🙃)

This cycle has been slower with the move back. I also got some consulting work which I prioritized over doing Ymir work. I picked up a small retainer contract starting next month, which should help as well.

Like I mentioned in the previous email, I'm taking a break from larger features. I'm working on doing smaller changes and maintenance work. One of those small features is an improvement to the performance of project deployment.


You can always view the history of Ymir's product development at https://ymirapp.com/changelog.

So, as I said, I did a change to project deployments to improve performance. The change centers on asset changes. The Ymir logic to track asset changes was based on the same logic as Laravel Vapor.

Before assets would get copied every deployment, this worked fine with Laravel Vapor because projects have a few assets. But WordPress is a completely other beast. Some projects can have 20,000 or even 40,000 assets.

Copying all these assets when there'd been no changes could take minutes. Those file copies weren't free either. They had a cost in space and in terms of requests. An S3 copy request isn't free and making 40,000 copies with each deployment can add up.

Ymir now creates a hash of all your assets. If there's been a previously successful deployment with that asset hash, the Ymir CLI will skip processing assets and continue with the deployment process. Here's an example below:

Patrick Leblanc deserves a lot of credit for annoying me about this for months. 🤣

Outside this change, there's been some maintenance on the Ymir application side. I'd delayed upgrading to Laravel 10 while I was working on tagging. The Ymir plugin now has a better support for Action Scheduler. (There's a lot more work that I want to do around it in the long run.)


Another cycle with not much marketing work. I did consulting that week because that's when I got the contract. It doesn't excuse things and I need to do better.

I'm getting more comfortable working with ChatGPT. (I use it pretty actively for coding now.) I want to try to leverage it to help me do marketing work. I started working on it and I'm hoping I can publish something next cycle and get back on track finally.


You can always view Ymir's up-to-date business metrics at ymirapp.com/open. They're updated every 10 minutes.

Still getting a good amount of trials. April might be flat since one card is stuck retrying right now. I reached out, and they said they’d fix it so we’ll see!

No movement on the partnership this cycle. It's a bummer, but they're managing multiple projects/partnerships and I only have that one right now. So it makes sense it doesn't go as fast as I'd like.

For now, I paid myself from Ymir money for the first time this month. I have a retainer starting next month for a few hours, which should help. But it's still very touch and go.


Hi! I'm a Creator.

Check out the resources I offer below and sign up for my newsletter!

Read more from Hi! I'm a Creator.

Ymir Report #51 — Consulting break

24 days ago
1 min read

Ymir Report #49 — Ymir PHP SDK

about 2 months ago
1 min read