Lukas Caha
banner
lukascaha.com
Lukas Caha
@lukascaha.com
Tech founder • vibecoding from 7yo

🟩🟩🟩🟩🟩🟩⬜️⬜️⬜️⬜️ $60k MRR
Who made that? Heard it on your yt and i was like "whaaat we got php song before gta vi?"
September 27, 2025 at 11:00 PM
My next project is going to live on laravel cloud so I am really looking forward. But right now I have couple more weeks on local development.
September 16, 2025 at 4:11 PM
The screenshot from first slide is email we sent for real and the cost including analytics, but calculated in free tier is about $2.78

Which is like 30x less than plan we paid $95/m just because we had 30k emails.

Go and emancipate from your subscriptions, this took me < 2days
September 16, 2025 at 3:30 PM
Final remarks & costs

Database -> Planetscale $50/m
Server -> EC2 $20/m
Other -> Laravel Forge $15/m
Emails -> 10k emails/$1

But I need these for the business I run, so here they are free

If you disagree, you can still run all this locally (without the analytics) for free
September 16, 2025 at 3:30 PM
Step 7 - Polish

Wrap this all up in a seamless form sequence, maybe add auto save to the editor. Build yourself analytics dashboard. Build more HTML templates. Go wild and send some *ethical* emails to your fans and subscribers.
September 16, 2025 at 3:30 PM
Step 6 - Analytics

AWS SES has thing called "configuration set" this is your key to getting all email events. With SNS you can send HTTP requests on
- send
- delivered
- opened
- clicked
- bounced
- and more...

(note)
It takes hours until config set propagates, be patient
September 16, 2025 at 3:30 PM
Step 5 - Sending

I used AWS SES, set everything up best you can. Email domain reputation is nothing to play with. I already have the raw HTML so now I only build the batch job queue to send all emails to right recipients. I have variables for name and unsubscribe link.
September 16, 2025 at 3:30 PM
Step 4 - Recipients

Have your users emails ready. We have couple of different mailing lists so I build select for this with estimates for how many people will get the email.

(optional)
You can send email to more then one list. Be sure to remove duplicate addresses.
September 16, 2025 at 3:30 PM
Step 3 - The editor

I gave cursor the JSON format and told it to make editor in laravel saving to database. It took a little time to make custom editor for each component and to have dynamic "add section" & "add component"

To this day I still dont have section reorder function.
September 16, 2025 at 3:30 PM
Step 2 - Data and format

I took this HTML template and in Cursor I made JSON format representing raw texts/links from email. Making "JSON to branded template" generator was easy. All done in PHP so far.

(optional)
You can minify the HTML output for up to 50% size reduction.
September 16, 2025 at 3:30 PM
Step 1 - Branded template

I went to online email template generator and for free I created a template for myself with all the components I would like to use. It was important to have distinct sections and components inside them (heading, paragraph, image, links and buttons)
September 16, 2025 at 3:30 PM