The Start
I thought adding a simple contact page, with a simple, subtle contact form, would be easy. I was very wrong. I solved all the problems up to this point in minutes, maybe an hour or two for difficult ones. The projects were chugging along like a train on new tracks.
I haven’t had this much fun coding in ages. Using Astro instead of Next.js to build a site has been a breath of fresh air. I was able to explore new theme ideas, features, and designs. This short redesign of my site was going amazingly!
Then the world began to turn grey; dread took over. I realized there was one task left to finish. The joy and glee of creation, the fun problem-solving, were over. All that was left was a form.
“It’s just a contact form.“
I was so wrong. So, fucking wrong. I don’t know if I’m just dumb, stubborn, or a combination of both. But this one goddamn feature took over everything. It got to the point where I was ready to throw everything away and start over. Maybe this time I could stop with the fancy features like a blog, pages, and contact form. I could easily return to perfection. A simple .MD page.
I thought I was being crazy or dumb. There had to be a way to make a simple contact page. I mean, every site has one. So, I went to work and researched how the fuck everyone else can do it but me.
The findings. No one is certain!! I realized that there is an entire businesses just making contact forms. A huge reason for the boring & sterile website builders being so widely used is that they do all the bullshit for you. It all makes sense. This experience has given me a new, weird respect for mass email scammers. Shit’s incredibly tedious, & when all I wanted was for people to be able to send me pet photos & stuff. Honestly, if they turned their skill into something good, they could make some good money.
The Tunnel
Now, after some time researching, I have not produced much. So, I marched back into the tunnel hoping to see light at the end at some point. At this point, I start to strip back features. The first one to go: ReCAPTCHA while I wanted protection; it’s not working & causing an error that may be the problem, so it must go. Plus, there was a video about them being spyware anyway. So, begone, annoying boxes & AI-generated image rotating test thing.
The next darling to be killed is image upload. Fuck that; it confuses me, and all the horror stories on ServerlessHorror start with some image upload. So that was taken behind back & gotten rid of. Now with these two removed, it’s finally time to talk about resend itself.
Resend. Honestly, it seems surprisingly good. Of all the options like SendGrid & the like, Resend has the nicest onboarding & implementation. Somewhere along the chain between GitHub, Cloudflare, & Resend, the contact form was breaking. It was working locally, no problem. I’ve set the keys & variables the same for both my .env & Cloudflare variables plus secrets. But I kept bouncing between 405, 500, 404, & the most confusing 200. A portion of it works or tricks itself into thinking it’s working, but Resend gets nothing. The void consumes whatever was sent.
The light
49 commits later—21 of them rebuilding the entire site, 28 trying to fix the contact form.
Here is the commit history in order.
- First commit of personal Site …
- Blog post>
- Markdown fix>
- Add mobile menu>
- resend email fix>
- node added for fix>
- Holyshit I broke everything, I hope this fixes i…>
- react@17>
- resend fix>
- everything fixed>
- ?>
- .?>
- cleaned thing … © origin/main>
- resend fix>
- resend is fighting me>
- I think I’m dumb>
- debug>
- testing>
- I dumb for sure>
- hmmmm
- huhhhhh>
- Email will be the death of me …>
- isuebrfv>
- Delete dist/functions directory Jonathan Reed>
- maybe>
- I have evertyig>
- Holyshit, I think i was just being dumb …>
- erivon Codedebug>
- captcha replaced with honey pot>
- fuck my life>
- I pray>
- egodeath>
- hope>
- im dumb>
- resureaction>
- Final for night>
- Finfal FInal>
- A nights sleep>
- simplflify test>
- please>
- FUck Forms>
- testing testing 123 123>
- Remove email API endpoint and update Astr…>
- hmmm>
- life sucks>
- hated>
- testing>
- Holyfuck I think it works
Conclusion
The things I’ve learned from this.
-
Forms are the devil, and the hate for them makes sense. A part of me was remarkably close to being really stupid and just making an SQL database to store any sent message, then just reading them there.
-
The tools for web development have become amazing. The fact that I was able to roll an entire functional personal site, even if it’s static, is awesome. It only took a few hours to get something nice and ready to deploy. I don’t know if I’m in the past, but I remember my friend’s dad when I was younger. His entire job was making cookie-cutter HTML minimal CSS business sites in the early 2000s. Nowadays, a web app can do it, or you can spend an hour on YouTube to learn.
-
As nice as Resend is, forms are still a nightmare. I’m both dumb and stubborn, but forms are somehow worse. The finicky nature, plus having to wait for things, is now my least favorite part of web dev, bar none.
If you want to say hello or just see it working, check it out
Contact Page
Thanks for reading!
Feel free to share this blog or reach out to me on LinkedIn