Adam Fortuna
@adamfortuna.com
Full-stack product developer (Rails/React) in Salt Lake City, UT. I love enlivening experiences, visualizing data, and making playful websites.
📚 Founder @hardcover.app
🎧 Developer @libro.fm
✍️ Blogger @ https://adamfortuna.com
📚 Founder @hardcover.app
🎧 Developer @libro.fm
✍️ Blogger @ https://adamfortuna.com
I'm writing this months Hardcover Report blog post & email, and wanted to showcase our entire infrastructure.
With all of the Digital Ocean side now hosted in the same datacenter, and most of it inside the same automatically-scaling Kubernetes Cluster, the site is noticeable faster!
With all of the Digital Ocean side now hosted in the same datacenter, and most of it inside the same automatically-scaling Kubernetes Cluster, the site is noticeable faster!
November 1, 2025 at 6:53 PM
I'm writing this months Hardcover Report blog post & email, and wanted to showcase our entire infrastructure.
With all of the Digital Ocean side now hosted in the same datacenter, and most of it inside the same automatically-scaling Kubernetes Cluster, the site is noticeable faster!
With all of the Digital Ocean side now hosted in the same datacenter, and most of it inside the same automatically-scaling Kubernetes Cluster, the site is noticeable faster!
Getting ready to hand out some candy as Dungeon Crawler Carl, Mongo and Princess Donut the Queen Anne Chonk. 🦶🐈⬛ 🦖
October 31, 2025 at 11:23 PM
Getting ready to hand out some candy as Dungeon Crawler Carl, Mongo and Princess Donut the Queen Anne Chonk. 🦶🐈⬛ 🦖
October 22, 2025 at 9:13 PM
This is how you know Bluesky will make it.
September 29, 2025 at 8:05 PM
This is how you know Bluesky will make it.
Due to a shipping error, we didn’t have anything delivered for the booth. 😭 Fortunately some awesome coworkers got signage printed, and I picked up some books from publishers that are available as audiobooks.
Having nothing felt like that dream where you show up to school naked. 🫣
Having nothing felt like that dream where you show up to school naked. 🫣
September 29, 2025 at 3:40 AM
Due to a shipping error, we didn’t have anything delivered for the booth. 😭 Fortunately some awesome coworkers got signage printed, and I picked up some books from publishers that are available as audiobooks.
Having nothing felt like that dream where you show up to school naked. 🫣
Having nothing felt like that dream where you show up to school naked. 🫣
Every developer knows this feeling.
August 29, 2025 at 3:01 AM
Every developer knows this feeling.
My ongoing battle with database size continues. Recently moved a few columns from Hardcover's primary database to a cache database and reduced size a significant amount.
Compared to the 20gb database backups from a year ago, I think we're doing well. 😂
Compared to the 20gb database backups from a year ago, I think we're doing well. 😂
August 29, 2025 at 1:30 AM
My ongoing battle with database size continues. Recently moved a few columns from Hardcover's primary database to a cache database and reduced size a significant amount.
Compared to the 20gb database backups from a year ago, I think we're doing well. 😂
Compared to the 20gb database backups from a year ago, I think we're doing well. 😂
It's wild to me that more than 100 people a day are now joining Hardcover. In the first 3 years, we had TWO days with 100+ signups. Now, 4 years in, that's a Tuesday.
August 27, 2025 at 3:40 PM
It's wild to me that more than 100 people a day are now joining Hardcover. In the first 3 years, we had TWO days with 100+ signups. Now, 4 years in, that's a Tuesday.
The day after we closed on our house, before we'd moved a single thing in, we bought ordered this table from Bandpass Design ( bandpassdesign.com/collections/... ). After almost 8 months, it was finally delivered yesterday! I can't wait for our next game night. 🎲
August 20, 2025 at 3:56 PM
The day after we closed on our house, before we'd moved a single thing in, we bought ordered this table from Bandpass Design ( bandpassdesign.com/collections/... ). After almost 8 months, it was finally delivered yesterday! I can't wait for our next game night. 🎲
Hardcover.app hit another milestone today: 40k users! 🥳
That's up from 22.5k at the beginning of the year. At this rate we'll hit 50k-60k readers by the end of the year! I'm holding out for 300% growth to 67k. 🤞
That's up from 22.5k at the beginning of the year. At this rate we'll hit 50k-60k readers by the end of the year! I'm holding out for 300% growth to 67k. 🤞
August 18, 2025 at 6:06 PM
Hardcover.app hit another milestone today: 40k users! 🥳
That's up from 22.5k at the beginning of the year. At this rate we'll hit 50k-60k readers by the end of the year! I'm holding out for 300% growth to 67k. 🤞
That's up from 22.5k at the beginning of the year. At this rate we'll hit 50k-60k readers by the end of the year! I'm holding out for 300% growth to 67k. 🤞
New milestone on Hardcover today: 400 paid supporters! 🥳
There were many months starting out when we didn't even have 100 total users. 😂 It's been so exciting to see more and more people joining the community. 💙📚
There were many months starting out when we didn't even have 100 total users. 😂 It's been so exciting to see more and more people joining the community. 💙📚
August 13, 2025 at 4:08 PM
New milestone on Hardcover today: 400 paid supporters! 🥳
There were many months starting out when we didn't even have 100 total users. 😂 It's been so exciting to see more and more people joining the community. 💙📚
There were many months starting out when we didn't even have 100 total users. 😂 It's been so exciting to see more and more people joining the community. 💙📚
Hardcover is now getting more traffic from GitHub than from Reddit - at least on days when we're not actively promoting something.
Not sure if we're doing poorly on Reddit, or great on GitHub. 😂
Not sure if we're doing poorly on Reddit, or great on GitHub. 😂
August 12, 2025 at 3:41 PM
Hardcover is now getting more traffic from GitHub than from Reddit - at least on days when we're not actively promoting something.
Not sure if we're doing poorly on Reddit, or great on GitHub. 😂
Not sure if we're doing poorly on Reddit, or great on GitHub. 😂
Help, I updated my Claude.md file to use Dune references from the Faker gem whenever possible, and now it thinks I'm leading a Fremen rebellion.
July 29, 2025 at 6:21 PM
Help, I updated my Claude.md file to use Dune references from the Faker gem whenever possible, and now it thinks I'm leading a Fremen rebellion.
This week I learned what Discord Boosts are. 🚀
The Hardcover Discord server now has 2,235 people, automatic linked roles for Members, Librarians and Supporters (linked via OAuth), and recently we started doing Hardcover Hangouts 2x a month. 🎙️👥
Join us! 💙📚
discord.gg/hardcover
The Hardcover Discord server now has 2,235 people, automatic linked roles for Members, Librarians and Supporters (linked via OAuth), and recently we started doing Hardcover Hangouts 2x a month. 🎙️👥
Join us! 💙📚
discord.gg/hardcover
July 27, 2025 at 7:06 PM
This week I learned what Discord Boosts are. 🚀
The Hardcover Discord server now has 2,235 people, automatic linked roles for Members, Librarians and Supporters (linked via OAuth), and recently we started doing Hardcover Hangouts 2x a month. 🎙️👥
Join us! 💙📚
discord.gg/hardcover
The Hardcover Discord server now has 2,235 people, automatic linked roles for Members, Librarians and Supporters (linked via OAuth), and recently we started doing Hardcover Hangouts 2x a month. 🎙️👥
Join us! 💙📚
discord.gg/hardcover
This comment on the latest episode of South Park is incredible. 🙏
July 26, 2025 at 3:26 AM
This comment on the latest episode of South Park is incredible. 🙏
New milestone for Hardcover, over $2k in revenue in the last 30 days! 🥳
July 15, 2025 at 2:36 PM
New milestone for Hardcover, over $2k in revenue in the last 30 days! 🥳
Had a fun moment just now. Working with Claude Code to implement upvoting in discussions. I was logged out and click to upvote a reply. It popped our existing Login modal.
I never specifically said to do that action, but it's exactly what I'd expect. 14/x
I never specifically said to do that action, but it's exactly what I'd expect. 14/x
July 13, 2025 at 11:39 PM
Had a fun moment just now. Working with Claude Code to implement upvoting in discussions. I was logged out and click to upvote a reply. It popped our existing Login modal.
I never specifically said to do that action, but it's exactly what I'd expect. 14/x
I never specifically said to do that action, but it's exactly what I'd expect. 14/x
Takeaways (cont)
- Having a Figma design is GREAT
- Having a design system is GREAT
- Having consistent coding standards is GREAT
- I upgraded from the $20/mo plan to the $200/mo one after a few hours, and so far it's worth it
More existing good code in your codebase = better new code
12/x
- Having a Figma design is GREAT
- Having a design system is GREAT
- Having consistent coding standards is GREAT
- I upgraded from the $20/mo plan to the $200/mo one after a few hours, and so far it's worth it
More existing good code in your codebase = better new code
12/x
July 13, 2025 at 4:23 PM
Takeaways (cont)
- Having a Figma design is GREAT
- Having a design system is GREAT
- Having consistent coding standards is GREAT
- I upgraded from the $20/mo plan to the $200/mo one after a few hours, and so far it's worth it
More existing good code in your codebase = better new code
12/x
- Having a Figma design is GREAT
- Having a design system is GREAT
- Having consistent coding standards is GREAT
- I upgraded from the $20/mo plan to the $200/mo one after a few hours, and so far it's worth it
More existing good code in your codebase = better new code
12/x
My takeaways from day 1 of trying our LLMs for coding:
- Claude Code is impressively good
- Asking it to write tests with some high level requirements, then iterate until it worked gave better code + accurate results
- Mention UI libraries and specifics to use
- Free plan ran out after 2 hrs
11/x
- Claude Code is impressively good
- Asking it to write tests with some high level requirements, then iterate until it worked gave better code + accurate results
- Mention UI libraries and specifics to use
- Free plan ran out after 2 hrs
11/x
July 13, 2025 at 4:03 PM
My takeaways from day 1 of trying our LLMs for coding:
- Claude Code is impressively good
- Asking it to write tests with some high level requirements, then iterate until it worked gave better code + accurate results
- Mention UI libraries and specifics to use
- Free plan ran out after 2 hrs
11/x
- Claude Code is impressively good
- Asking it to write tests with some high level requirements, then iterate until it worked gave better code + accurate results
- Mention UI libraries and specifics to use
- Free plan ran out after 2 hrs
11/x
Kept running into ruby errors on a specific page. Asked it to create a request spec for it and work until its fixed.
That got me to a good place - being able to see discussions for a book!
10/x
That got me to a good place - being able to see discussions for a book!
10/x
July 12, 2025 at 10:48 PM
Kept running into ruby errors on a specific page. Asked it to create a request spec for it and work until its fixed.
That got me to a good place - being able to see discussions for a book!
10/x
That got me to a good place - being able to see discussions for a book!
10/x
Had a fun off-grid camping trip with friends and 5 dogs in the high Unitas (Utah) for the fourth!
Came back to a major Hardcover bug triggered by a misconfigured CloudFlare rule.
That was a tough one to trace. 😅
Came back to a major Hardcover bug triggered by a misconfigured CloudFlare rule.
That was a tough one to trace. 😅
July 6, 2025 at 1:55 AM
Had a fun off-grid camping trip with friends and 5 dogs in the high Unitas (Utah) for the fourth!
Came back to a major Hardcover bug triggered by a misconfigured CloudFlare rule.
That was a tough one to trace. 😅
Came back to a major Hardcover bug triggered by a misconfigured CloudFlare rule.
That was a tough one to trace. 😅
Scheduled Hardcover's monthly email to go out in the morning to our 29.8k email subscribers!
We have 35.2k members, which means about 5.4k subscribers (15%) have opted out of our email list.
I'd be curious for anyone else working on a consumer facing app: what's your newsletter drop off look like?
We have 35.2k members, which means about 5.4k subscribers (15%) have opted out of our email list.
I'd be curious for anyone else working on a consumer facing app: what's your newsletter drop off look like?
July 1, 2025 at 12:39 AM
Scheduled Hardcover's monthly email to go out in the morning to our 29.8k email subscribers!
We have 35.2k members, which means about 5.4k subscribers (15%) have opted out of our email list.
I'd be curious for anyone else working on a consumer facing app: what's your newsletter drop off look like?
We have 35.2k members, which means about 5.4k subscribers (15%) have opted out of our email list.
I'd be curious for anyone else working on a consumer facing app: what's your newsletter drop off look like?
Don’t think I’ve made it this far in any project I’ve ever worked on to where these kinds of comments happen almost daily. ☺️
June 24, 2025 at 2:44 PM
Don’t think I’ve made it this far in any project I’ve ever worked on to where these kinds of comments happen almost daily. ☺️
Learning a bit about calligraphy at Sip & Script with Marilyn, and enjoying some cider.
Side note: when I walked in the organizer found us and said “you must be Adam”. I was confused.
Once all 32 people showed up for the class, I realized there were 31 women. 😂
Side note: when I walked in the organizer found us and said “you must be Adam”. I was confused.
Once all 32 people showed up for the class, I realized there were 31 women. 😂
June 19, 2025 at 3:51 AM
Learning a bit about calligraphy at Sip & Script with Marilyn, and enjoying some cider.
Side note: when I walked in the organizer found us and said “you must be Adam”. I was confused.
Once all 32 people showed up for the class, I realized there were 31 women. 😂
Side note: when I walked in the organizer found us and said “you must be Adam”. I was confused.
Once all 32 people showed up for the class, I realized there were 31 women. 😂
June 16, 2025 at 4:08 PM