- jaypeters.dev
- Posts
- Video Processing, The Last Piece, The Next Number One
Video Processing, The Last Piece, The Next Number One
The Weekly Variable
Had trouble starting this newsletter.
Then had trouble finishing it.
Lots to cover.
Topics for this week:
Video Upgrade
I’m slowly becoming a video expert.
Watch out TikTok.
After a hard lesson on video processing failure, of course…
I had a service running on a single AWS App Runner instance handling the upload and reformat flow of videos for Wave, and it worked great when I tested it.
But I missed the obvious test:
Concurrency.
I was only uploading 1 video at a time from my phone, when I should have been slamming it with at least 3 in a row.
Last week, reports started rolling in of video uploads randomly failing.
Checking the logs, I could see the issue: signal killed
The single instance of App Runner was running out of memory trying to process multiple videos.
The easy fix was to upgrade to a bigger instance of App Runner.
But a couple days later, the same issues kept coming.
So it was time to rethink the strategy.
After talking it through with Gemini and GPT, the upgrade plan was clear.
Use App Runner for routing, offload the heavy video processing to Lambda.
Lambda isn’t always “warm”, so it has cold-start delays, but it has 2 major advantages over App Runner:
It scales instantly
It can run multiple instances at once
App Runner can scale too, but it’s way more work and way more expensive and probably overkill at this point.
So the new architecture looks like this:
App Runner gives the phone a signed URL to upload the video
Supabase fires a webhook to Lambda when the file lands in storage
Lambda compresses the raw video and publishes the processed video
This means App Runner stays light and fast, waiting to help users immediately upload their videos so they can go back to using the app and not have to sit and stare a loading spinner.
They get notified later (ideally less than 30 seconds) when their video has been added to the Live feed.
And it seems to work!
I spam-uploaded back-to-back as fast as I could and didn’t see a single failure, so this system should be able to handle a healthy amount of video traffic for a while.
Still plenty of room for optimization, though:
tuning ffmpeg for faster compression with less memory usage
streaming data between AWS and Supabase instead of full file downloads
caching and parallelizing processes if we want to get really crazy
But for now, Wave video is in a good spot.
…until Wave goes viral.
Then it’s Kubernetes time.
First Ranking
Not too long ago now, one of my website clients asked about SEO services, so I offered a starter package and got to work.
Admittedly, when I built their website, I was still mastering Webflow at the time, and wasn’t really focused on SEO at all.
Re-reviewing their site, it was very obvious how to take their overall SEO score from a 54 to a 100, according to Ubersuggest, by cleaning up a lot of html structural issues.
That was the easy part, if not a little tedious.
The next part is the long slow part to SEO.
Ranking.
I laid the foundation for Google to trust the site.
Now it’s time to show up in search results.
And I’ve already had 1 success!
GPT helped come up with an SEO friendly article that is now ranked as search result 28!
Not exactly first page or top 5, but this was a pretty big unlock.
I’ve been following SEO content for a long time, but I hadn’t really had much success in getting anything to rank anywhere near the top, so this was very exciting to see.
Ubersuggest identified the term that had the best opportunity to rank, and GPT made it happen.
So now the real work begins.
I showed the client that one of their competitors has over 500 articles on their site and get about 12000 visitors per month, while my client has 8 articles and gets about 800 visitors per month.
Even with just 20 more ranked articles like that, we’ll be well on our way to 3x’ing their organic traffic.
But seeing this process generate results was really exciting.
I have yet to SEO my own websites so I’ll be anxious to implement a similar process and play around with some side projects as well.
It was a path I started going down a while ago, but naturally got sidetracked for some other shiny objects.
And was also slightly deterred by the SEO space freaking out that AI and Google had destroyed SEO as we know it.
But turns out it’s very much still alive, just maybe a little different.
So I’ve already drafted the next article for the client, and I may be updating some of my other websites to follow a similar SEO process.
And hopefully many more rankings to come.
Episode 13
I previewed it last week, but The Dev Sync, episode 13 is now live:
Some good clips to start this one off with bots stealing window seats on planes, captcha being our last defense and hoping the pizza protocol is a real thing in the future.
It was another fun episode so if you do check it out, let me know what you think.
Episode 14 should be a heated one as well.
What’s the role of Junior Developers in the time of AI?
No plans to record it yet but I’m sure we’ll sneak at least one more episode in before the end of the year…
The Last Piece
Looking back at this long, winding road, I’m starting to realize something.
I basically have everything I need to build that real portfolio of SaaS apps.
For years it felt like I was missing something.
Some secret “real founder skill” I didn’t have yet.
But between all the projects, client work, experiments, and rabbit holes, I’ve accidentally built out almost every piece of the puzzle:
user systems
sessions and auth
messaging
video processing
image handling
likes, posts, feeds
notifications
deployments and infrastructure
content engines
and now SEO
All for website and mobile development.
At this point, the biggest missing piece is payments.
I’ve added Stripe Links to websites, but that’s not exactly scalable.
Once I fully integrate Stripe APIs into a SaaS or app cleanly, I’ll have built basically all the pieces I need.
I could build anything.
Not just one app, but that full portfolio of apps.
And those apps could actually make money.
I knew payments was the last piece so I tried to speed run the implementation in one evening (both for the experience, and for practice with upcoming Wave payments) and I got decently close on Friday night.
I whipped up a super stripped-down version of “Corporation as a Service”.
The goal was to get something live that could offer enough value that it would be worth paying a cheap monthly subscription.

Sample “Corp as a Serivce”
Basically predefined personas that you could chat with for various business advice.
It could easily be customized to talk to famous business personas and have GPT or other models imitate their advice.
Straightforward but potentially useful.
With the good enough prototype on my laptop, I tried to dive into integrating Stripe.
But unfortunately I needed the app to be deployed so that I could get real URLs for the Stripe webhook, so I went to Vercel to get live.
And Vercel did not like the vibe-coded monorepo which resulted in about 30 minutes of trial and error commits with Cursor to finally get the configs right for Vercel to properly build and deploy the web app inside the monorepo.
But quickly after that, I got a little hung up on the business side of things.
I couldn’t decide if I should use a separate business entity for this Stripe setup or stick with Divs Design for now.
Finally GPT convinced me to keep it separate, but by the time I got to integrating the live site with the new Stripe account, it was already 2 AM.
So I decided to pause for the evening.
I may put a few hours into this sometime soon to finally wrap up that last piece, because it feels very close.
It may only take a couple hours to complete the last big missing piece.
Full founder mode will be enabled.
The Next Number One
Gemini Pro 2.5 has been my go-to AI for vibe-coding the last few months now, and I’ve been excited to see rumors of the big upgrade coming soon.
Gemini Pro 3.0 may be just around the corner.
Online speculation is that it’s already live in the Gemini mobile app, but it’s still called Gemini Pro 2.5.
Some of the posts from users on X.com that do have access to 3.0 have been quite impressive.
Like this incredibly high-end website animation:
Or this super solid modern landing page:
Or a full working Minecraft coliseum demo:
No official announcements yet, but some people have posted they already have access on aistudio.google.com as well.
I’ve been periodically refreshing today but no luck so far.
Hopefully I’ll get a chance to test it out next week 🤞
I’m sure this will be the next number one model in the rankings.
And that’s it for this week. Video processing, SEO, the last piece, and the next number one.
If you want to start a newsletter like this on beehiiv and support me in the process, here’s my referral link: https://www.beehiiv.com/?via=jay-peters.
I also have a Free Skool community if you want to join for n8n workflows and more AI talk: https://www.skool.com/learn-automation-ai/about?ref=1c7ba6137dfc45878406f6f6fcf2c316
Let me know what else I missed! I’d love to hear your feedback at @jaypetersdotdev or email [email protected].
Thanks for reading!