Sign in

Technology
Business
Ryan Hefner
Follow along as I, Ryan Hefner, build products and tools, while sharing the learnings and challenges along the way.
Total 22 episodes
1
022 — Just Getting Starter’d

022 — Just Getting Starter’d

Wow, it’s been over a month since my last episode. That’s not due to me being too lazy, if anything just the opposite. I have been thrashing around on projects, but I would like to introduce you to my latest project that is piggy backing on the mass migration to Bluesky.Just after the election, it seemed like the draw for a new platform that was a little less Elon and a little more move on was needed, and a lot of people felt the same way. I know I was pulled over there after I heard more people talking about it, and also discovering that more of the people I follow on the other platform were moving over. I was also added to a Starter Pack or two, which made things a bit more interesting as people starter to follow more.For those who are not on Bluesky yet, or just new, Starter Packs are essentially a user created list of accounts or other Starter Packs, but you have the option to Follow All, or individually. I think the fact that Bluesky feels like the Twitter of yore, coupled with the fact that you can quickly build up the people you follow, and gain followers, via Starter Packs has helped ease some of the awkwardness of migrating platforms. When I first got added to a Starter Pack, and started to see my follower account grow, I’m not going to lie, I was hooked! It also got me more interested in Bluesky and the AT Protocol in general. I started to dig into the API to see what you could do, what was available to work with, and what was potentially missing.The one thing I wanted to see was if there was an easy way to see which Starter Packs I was added to, and unfortunately–or fortunately depending on how you look at it–there was not. I also wanted to see if there was a way to know where someone followed me from, whether is was from a Starter Pack, or directly from my Profile, or a Post. At first, I thought that was available, which got me super excited and actually made me spin up a quick project to start exploring more. Unfortunately as I started to dig in I found out that wasn’t the case, but discovered other interesting things that retained my interest/excitement to explore more. After some quick hacking, and a few domains registered(!), I was well on my way to abandoning the projects I was previously working on to explore this new...thing. After a few nights of hacking stuff together, and exploring the OAuth integration, I had the bones for a new project. That project is, Starter Packs.Check it out and let me know what you think. I hope you find some interesting Starter Packs and people, and will follow along for the journey. You can follow the project on Blueskey, @starterpacks.net. I have a bunch more plans for it, but next up is getting OAuth/account management integrated into the site to unlock some basic follow and Starter Pack management actions.To follow along, you can find me at ryanhefner.com, follow me on Bluesky @ryanhefner.com and keep up with the show on allplay.fm and @allplay.fm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
17:2220/11/2024
021 — Reserving Fuel

021 — Reserving Fuel

How do you apply and reserve your fuel for the things you are working? That’s what I am wrestling with today. Typically, I reserve these early morning sessions for my personal stuff, so I can take advantage of the fresh tank of brain juice to pull from. I feel like with personal projects there’s always more critical thinking and personal hesitations that get in the way of getting things done that it takes that extra boost from the good morning fuel to break through them and keep going.Although, today is unlike most of those days. Instead I am going to be working on some client stuff that has been lingering around a bit too long to see if I can knock that out early and use the rest of the day for personal stuff. Most notably, trying to commit some time to work on a site that is assisting with some relief efforts in Asheville, SC.Over in the Verbs Discord, developers there have been contributing to two different relief effort sites. The first was disastercheckin.com, a site that allows people to text in updates via a phone number, and people who visit the site can do a reverse look-up via the phone number to check on the latest status of their family or friend who have posted. It was a way to allow for people to post updates when they get signal, and for multiple people to asynchronously check on the status of those people, without having to rely on the cellular networks for people to get some status of their loved ones. Now that FEMA is in the area, the cellular networks seem to be more stabilized and people are able to communicate better now, so the effort in the Discord has transitioned to helping get clean water to the area, and assisting in the effort of managing the distribution of and requests for that water. For some reason, I can’t seem to find the site for that right now, but I will update the notes once I do. I have always been a big fan of collaborative efforts around a local cause and this has started to inspire me to follow through on an idea that I have had incubating for a while now. More on that later, along with a link, but for now I need to get back to work and knock out this client work so I can make a real difference elsewhere.— ✌️To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
11:4814/10/2024
020 — Keeping Momentum

020 — Keeping Momentum

A quick, long one about trying to maintain momentum as challenges and inconsistencies present themselves.To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
14:2809/10/2024
019 — Announcing, Jam Sessions: Public Edition

019 — Announcing, Jam Sessions: Public Edition

Since today is International Podcast Day, I figured it was only fitting to try to get an episode out today. Thankfully I have something very topical to announce today as well, a new podcast! Last week I streamed and posted the first episode of, Jam Sessions: Public Edition, or just, Jam Sessions.A few episodes back I had announced Jam Sessions: Private Edition, the podcast that I plan on hosting on Ripple.fm. The point of that show was to have more intimate conversations that may include details or information that myself or the guest may only feel comfortable sharing with a smaller audience. But, once I started thinking about the private edition, I started to think about how much fun it would be to also have a public edition, so I reached out to Daniel Coulbourne—who I had already connected with back in May about basically doing something similar, but I dropped off and never got it together—and we were able to coordinate a time for the first public Jam Sessions episode and make it happen!Daniel went deep on all things Verbs. For more information, you should check out the full show notes: https://www.jamsessions.fm/episodes/001-daniel-coulbourne-verbs-event-sourcingUnfortunately, I had some audio issues on my side, but I was able to resolve them around the 13:30 mark of the stream. Hopefully you can deal with the subpar audio and pick up all the knowledge that Daniel was dropping on event sourcing and how Verbs differs. You can check out the episode here: StreamsYouTubeTwitterEpisodesApple Podcasts  SpotifyOvercast For all things Jam Sessions, you can find future episodes—and streams, eventually—at jamsessions.fm.#InternationalPodcastDayTo follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
05:2630/09/2024
018 — Building Spiral Staircases

018 — Building Spiral Staircases

During my run this morning I was thinking about all the different projects I have up in the air, and how some of those can help to provide a foundation, or utility, to the other projects that I am working on, but at the same time can feel like a waste of time to work on in the moment. Then, out of no where, I started to think about the construction of a spiral staircase.At the start of the project, you have the choice to either build up, or build down. Building up seems like a world of endless possibilities and freedom—very positive. Or, you can build down, trying to tackle some of the hairier issues people face in the world, simplifying the overly complicated, or unifying the scattered or incomplete information in the world. Every decision offers a choice, and every choice has a starting point.So, back to spiral staircases, whether you decide to build up or build down, you also have the opportunity to build a very tight spiral staircase that does its job, getting you to the next level or two in a nice confined space. Or, you could build out, going wide and building a staircase that takes you on a journey. A grand structure that is circling your idea, while not confining it. The wider the structure, the more materials and time it’s going to take to build, and the longer it will take you to complete the initial spiral. Each type, either tight or wide, provide their own set of pros and cons.The tighter the staircase, the quicker it is to build, and the faster you can circle around the idea and get to where you want to go. You can go up several flights, with multiple rotations around the center post for each one, to ascend to each floor. It’s an efficient structure, but once you get past the first couple of floors, and then decide you might need to broaden your scope, or the size of the staircase, your initial structure won’t be able to support going very wide without some additional supports being put in place to carry the load. Depending how high you went when the idea was tight, the longer span those supports are going to descend. And, depending on how wide you want to widen the scope, the more supports that will have to be put in place to help this top-heavy structure that is now spiraling out.On the inverse, deciding to go with a very wide structure, making long, wide swooping loops as you ascend—or descend—to where you are going can be slow to build, requires a lot of material, and you may never complete a single loop. And, depending on whether you choose to tighten or wide the circle as your ideas and feedback push and pull you to new places, it can be harder to quickly tighten that circle once you have decided on the "new" direction to go. Although, unlike the tight structure that can be hard to support expansion later on, your wide idea that is circling this ever pulsing vortex can expand and contract more freely, with a structure to support it, but may never reach its clear center, and is hard to get their quickly.Along the way, regardless of whether you are going wide or keeping it tight, you have the option to build platforms or landings along the way, that can fork off from that core idea. These can add structure and stability to the initial idea, but also offer a starting point for a structure or journey of their own. Depending on your staircase, the placement of these landings have a different affect as you are walking up the stairs. A very tight staircase could probably only support one–maybe two–along your path to the first floor. But, too many on a very tight structure would no longer be a real staircase. Where, if you were building a very wide staircase, you could potentially have several platforms or landings forking off along your progression of a single rotation. When I think about these landings I equate these to being the side stuff that you build along the way to support your efforts, both now and into the future (ie. packages, services, tools, etc.). They support the core idea, but also have the opportunity to spiral out to be their own thing.Depending on the decisions you make and where your projects take you can drastically change the scope and shape of these structures. When I start to think about where these can go, my mind instantly drifts to the abstract worlds of Dr. Seuss and how a very tight and tall staircase that later decides to spiral out wider and taller could start to bend and sag over it’s poorly supported structure. Or, the very wide and expansive staircase that slowly then quickly spirals to its conclusive center can come to a sharp point.I feel like I have been going wide, and building a lot of platforms and structures that I try to convince myself are in support of a grander vision of the future, but not sure if I will run out of materials, or effort, to get those ideas to circle in on a sustainable structure I can support in the future. So I ask you, what kind of staircase are you building?To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
06:4520/09/2024
017 — Flow like water

017 — Flow like water

Giving into the flow. I feel like I have been getting frustrated with myself for not fully focusing on a single project. After all, that's the only way to build a successful product. Right? RIGHT???So, I have succumb to my fleeting thoughts and ideas to go where the water is taking me and not wasting time, nor energy, trying to fight the temptation or push out the motivation because I think I should be working on something, when my brain is clearly telling me different.With that said, I have been working on the new opengraphs.com app that will be replacing LinkCards, and so far so good. I am about to the point of having a completely rewritten app using all new frameworks and underlying schema that will do everything that LinkCards had previously done, but also support some ideas that I have had for it for a while now, so it’s kind of nice to come in clean and green field this thing with fresh cold and incubated ideas.I am pushing to have the first version of the app deployed to the production instances this week, and hopefully have one of my sites using the new endpoints for image generation. There’s definitely still a lot of work before I will let people in and start charging cards, but I really want to get to a point where I can start to stress test this new setup to make sure it’s going to perform the way I think it will. 🤞To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
11:1612/09/2024
016 — No, FOMO. Just, LOSE.

016 — No, FOMO. Just, LOSE.

With all the conferences happening over the past couple of months, it has really got me thinking about the lack of socializing I have had since moving down to Atlanta. I wouldn't necessarily say it’s a fear of missing out (FOMO), but more a lack of social interaction, or engagement to make the acronym better, LOSE.For 2025, I am trying to create some more margins in my life to allow for more room to both socialize more and create more time to share the personal stuff I am working on. The goal is to do that by offsetting client work with income from personal projects. And, I guess we’ll see how that goes!You can watch Laracon US LIVE on YouTube!Some conferences I plan on attending next year:MicroConfRenderATLLaracon EU / Laracon USIt would also be cool to checkout some more niche conferences like:Local First ConfI am also hoping that rebooting Jam Sessions, and having some conversations on the Jam Sessions podcast on Ripple.FM will help fill in the gaps between conferences.And, if anyone is a current Switchyards member let me know! It would be great to hang out. I will probably be dropping into either the Roswell or Chamblee locations, but it would be great to get around to all of them to check out the vibes.To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
06:5627/08/2024
015 — Fixed It!

015 — Fixed It!

I did it! I was able to fix LinkCards and stabilize the service. And, to my surprise, it actually looked like some of the traffic was actually legitimate open graph images being generated. Once I was able to stabilize the servers, and finally access the dashboard I noticed that my site pkgstats.com has almost 2 million images generated for it, so I guess that’s what was causing all the issues. One of my sites was taking down the other, kind of, go figure!As I was thinking about how nice the service is—when it is working—it started to make me realize that I should probably try to clean things up a bit, optimize a few things, and maybe slap a price tag on it and see if others would like to use it as well. Except, if I am going to go through all the trouble of re-writing and turning this into a real product the one thing that has always bothered be about it was the name, LinkCards.For one, the .com for LinkCards is currently some kind of malware phishing site, so not a good thing. That, and the name is kind of limiting. So, after a bit of searching for a better name on the registrars I ended up coming across, OpenGraphs. At first I saw the .io, .org, .net, .app domains were all available, which already had me thinking this is a much better name for the service. Then, I realized the holiest of holies was potentially within my hands reach, opengraphs.com. It was available as a BIN (buy it now) on Namecheap. It was a little expensive, but at the same time was probably the cheapest it will ever be. And that got my mind wandering...To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
16:0817/08/2024
014 — Jam Sessions: Private Edition on ripple.fm

014 — Jam Sessions: Private Edition on ripple.fm

I just wanted to give a quick update on a new, private podcast that I am starting on ripple.fm. The show is called Jam Session: Private Edition, and it’s going to be a place to put some recorded discussions that are possibly too private for your traditional public podcast that gets blasted out to all the podcast places.The idea for the show is a bit of a continuation of Jam Sessions, a meetup/mastermind group I used to host when I was back in New York. Jam Sessions was a private and intimate space where people could share what they are working on, or questions they are struggling to answer, and then get feedback or insights from the other members in the group. My hope is that this podcast will provide the same safe, intimate space to have these conversations so we can all learn and grow together.So, with that said, I hope the show sounds interesting. Please, sign up, subscribe, drop me a line, and hopefully we can talk on the show soon.To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
06:1417/08/2024
013 — Maintenance Modes

013 — Maintenance Modes

Trying to keep the spirits high in this otherwise kind of low week, littered with some Summer sickness and a lot of client work. As much as I had hoped to work some more on Transmits, I ended up getting wrapped up in a lot of client work, along with some maintenance work to clean up some spillage from last weeks publishing of the Transmits Podcast.With that said, here’s what I was able to get done/am working on:Fixed an issue on allplay.fm where Transmits episodes were showing up on the site*. I ended up updating the site to consume the RSS feed, instead of the Transistor API, since I was running into rate limiting issues. Now the site builds faster, and I am not getting the episode flow-over.I am currently working on mitigating some issues affecting LinkCards, to see if I can get the service back up and running, since an application denial attack has pretty much rendered it useless. Assuming this work, expect some shiny new `og:image`’s across all my projects popping out soon! (And, hopefully get images rendering again for pkgstats.com)Assuming things are looking good on those fronts, I have some immediate quick updates I am planning to work on for Transmits over the weekend, and some updates coming to that podcast (and this!) soon.Take care!*It turns out I was passing the show id, except I was sending it camel cased (`showId`), instead of snake cased (`show_id`). Whoops!To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
11:5609/08/2024
012 — Transmits Is Getting a Pod

012 — Transmits Is Getting a Pod

As I have been working on building Transmits, I started reading Rob Walling’s (@robwalling) book, Start Small, Stay Small. I was originally reading his latest book, The SaaS Playbook, but like he suggests in there, if your business is not at a certain monthly recurring revenue (MRR) you might be better off going back and reading his first book, so I did.While reading it I realized I was breaking the cardinal sin numero uno, no marketing, nor testing the market to see if people would actually pay for what I am building. Granted, this is definitely a scratch my own itch project, and I know I will be using it regardless if I am able to get others to pay for it. But, at the same time, I am definitely investing a good amount of time trying to make what I am building really nice, both for myself and to wow some potential future users into being paying customers.Thinking about what I could do to start building some initial marketing efforts I realized that the quickest thing I could do was repurpose the Transmits-specific episodes from this podcast, and re-package them into a Transmits-only podcast that I could start publishing, and include on the transmits.io site.Reasons why making a Transmits-only podcast makes sense, now and into the future:SEO: By publishing the episodes and including those within a /podcast area of the marketing site, I am hoping that both the show notes and podcast transcriptions will feed the Google/search engine machines and start to get Transmits ranking for a few key termsBacklinks + SEO: Since I will be publishing the podcast, I hoping that the feeds and episodes will help to build up a good amount of backlinks to the site, driving more traffic and helping boost key word rankingsConnection: There’s really no better way to understand what someone is trying to do than to listen to them. I am an avid podcast listener and am definitely more motivated to support people that I am listening to, than those who I have no direct connection with (even though that connection is mostly a one-way from my podcast app to my ears, but it still a remarkably personal one, even being one-way).Build Listeners + Subscribers: From the start of thinking about Transmits, I have always envisioned the product having a podcast where I would bring people on to discuss tools for thought, or podcasting, or whatever else might be interesting to discuss that could be tied back to either the underlying tech or goal for the platform, so why not start to get that wheel spinning and try to pick-up a few early subscribers along the way.Flywheels: Since I am already podcasting about Transmits, why not repurpose that content and effort and apply it to kickstart and support future effortsAnd, finally, it just sounded fun and was a good excuse to tinker on some site stuff!With all that said, and without further ado, I am happy to say that the Transmits: The Podcast is live! Check it out, subscribe, and all that jazz. I have re-packaged some previous episodes from this podcast, and will probably do the same with this episode. And, from this point forward, I am going to have to come up with a nice way to introduce the episode without necessarily having to record a custom intro per pod, or maybe I’ll just drop the intros and get right to the meat, to keep it easy.If you want to get early access to start playing around, please join the mailing list here: https://www.transmits.ioTo follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
10:3331/07/2024
011 — Transmits Goes Mobile

011 — Transmits Goes Mobile

After recording the last episode via Transmits, I mentioned that I needed to test recording on playback on mobile, specifically Mobile Safari (since I am an iPhone user), and Chrome on Android. My goal for Transmits is that I can launch the initial version as a progressive web app (PWA), so it’s crucial for it to work when added to the home screen on either iOS or Android devices.Well, in classic fashion, once I went to test the app on mobile devices, it totally failed in Mobile Safari, and regular Safari for that matter. It turns out that Safari only supports saving files via the FileSystemSyncAccessHandle, which only works within the context of a Web Worker. So, I rolled up my sleeves and started refactoring the app to include a web worker–surprisingly the first one I have written!–and wire up the file saving to use it. Low and behold, this week’s episode was recorded on my iPhone, via Transmits running as a PWA!Next up, I am working on a spike to get speech to text working for transcription running locally via a Web Assembly (WASM) wrapped version of OpenAI’s Whisper model. Once that is working, then will come defining the data models and start working on building out the cloud sync support. Not gonna lie, I am getting pretty stoked on this app so far, and I hope you will too!If you want to get early access to start playing around, please join the mailing list here: https://www.transmits.ioTo follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
10:0524/07/2024
010 — Recording from Transmits

010 — Recording from Transmits

A milestone has been reached! This is the first episode to be recorded in Transmits!! Obviously, these are early days (the official second recording made in the app was this episode), but recordings are being captured via the web app and stored locally via the File System API in the OPFS (Origin private file system).The goal is to get this early version of Transmits out so people can start playing with it and capturing their Audio Journals* (*the positioning I am playing with for this initial version of the app. What do you think!?)I think the idea of audio journals is interesting, and it also seems like some other builders in the bootstrapping/indie maker space–both Peter Suhm [Tweet] (Reform and Out of Beta Podcast) and Brian Casel [Tweet] (Clarity Flow and Bootstrapped Web Podcast)–have started sharing audio/video updates similar to this podcast.If you want to get early access to start playing around, please join the mailing list here: https://www.transmits.io To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
09:0911/07/2024
009 — Introducing, Transmits

009 — Introducing, Transmits

I have finally settled on the project that I will be documenting on this podcast. I would like to introduce you to, Transmits. transmits.io is domain I have been sitting on for the past 4 years. When I had originally registered it I was working on a React Native prototype of an app that I was exploring, which was essentially an iOS Voice Memos app that was going to be platform agnostic. That prototype still lives on my machine, but work and life got in the way from taking it any further than a very rough example of getting some basic audio recording capturing and reviewing within the app.Since then, I have worked on a bunch of different stuff, both for clients and personally, but this idea of a simple app that lets you quickly record some audio and easily share it with friends—or beyond—has remained constant over that time. Although, the one thing that has changed is my thoughts on what makes the most sense for how to build the app.Over the last 4 years a lot of advancements have been made in the browser space to better support progressive web apps, things like local SQLite instances running in the browser, push notifications on Mobile Safari, and generally more packages and tools that make it easier to build a good PWA experiences that can truly rival native apps. So, with that said, this version of Transmits is going to be built with 100% progressive web app support from the beginning.At this point, I already have basic PWA support for the app. You can turn off wifi and cellular and browse all the pages you had originally viewed while being online. And, I have some basic recording support setup via the Web Audio/MediaStream Recording API’s. Both the marketing site and app are built in React/NextJS, and I am going to explore building the API with NestJS (since this is a stack pairing that I have been wanting to explore).Next on my list to tackle includes:Get local file saving setup via the File System APISetup local-first data handling (probably using electric-sql, or something similar)Audio filters to apply to recordings in real-time via Web Audio APIReal-time transcription support via local automatic speech recognition (ASR) modelIntegrations to make it easy to take recordings captured via Transmits and distribute them (looking at you, transistor.fm!)Some other odds and ends to make the app feel more native, like Push Notifications and what notI was definitely debating which project to really commit to, and this one ticked all the boxes of the type of app and technologies that I wanted to dig into more. Not to mention, if it turns out how I think it will, I will probably be able to drop my Adobe Audition setup and record all of my podcast episodes via this app, with a simple flow for distributing them to Transistor, Substack, Medium, and beyond.I hope this project seems interesting to you, and I look forward to sharing my learnings from building it along the way.To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
12:5326/06/2024
008 — A Focus on Interest

008 — A Focus on Interest

Just a quick one on a mindset that I have been trying to apply to the things that I have been working on, or committing to, in 2024. The concept revolves around two requirements to meet when committing to a project/client/etc. Those two requirements are, the project either has to be interesting, whether that is interesting to work on, an interesting topic, or potentially an interesting technical challenge. Or, alternatively, but not mutually exclusive, would embarking on this project/collaboration/client engagement generate interest (ie. make money/margins) both in the short-term, but also potentially in the long-term or over time.In a perfect world, the project(s) would both be very interesting, while also providing the potential to earn a healthy level of interest over time. At least, that is my goal with the personal projects that I am working on, and plan to work on in the future.Another thought that comes out during this episode is some reflection on the debate of working on multiple things, or going all-in on a single project. I am of the mindset that the people going “all-in” on something are potentially leaving money and some optionality on the table when they abandon an existing user base to pursue a new niche customer market that no longer aligns with the initial product offering. A few questions that I have been debating as I hear people weigh-in on this topic are:Would potentially maintaining that existing product, while exploring a new target customer with an altered, or new product, really impact the success of the new initiative?Would maintaining the existing customers, even if growth is plateaued, allow for you to retain them and the current MRR while supporting the development of the new product?If the new initiative is not a success and you potentially want to re-engage with the previous customers that you abandoned, is there even a pathway back to your previous state?I hope to be able to explore and play with some of these questions as I am building and growing the projects I am working on. And I look forward to sharing those insights and internal debates in future episodes of the show.To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
08:2010/06/2024
007 — Context is King

007 — Context is King

Reflecting on Laravel vs. React debate that went down a few weeks back, got me thinking about Context. Context switching. The context that influences the decisions we make. Really, just about context in general.My focus has been to try to minimize the amount of context switching that I am doing, which is already difficult while managing multiple clients and trying to focus on my personal stuff. I get into some of those trade offs, along with a few other things that have been popping up that have been requiring additional context switching, resulting in ultimate flow wreckage.Some references from the show:Inception this one to find the tweet that kicked off the Laravel vs. `react-remix` debatelaravel-pwa / laravel-pwa-demoMy service that has been getting DDOS’d, Link CardsTo follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
12:0531/05/2024
006 — Embracing the Thrash

006 — Embracing the Thrash

The struggle is real-ish. In this episode I get into the tension I have been feeling as I am in my -1 to 0 phase, trying to figure out which project/product I want to place my energy towards (first), and some of the technical stuff I plan on incorporating in the projects I am planning on taking on.Some of those core technology areas include:Event SourcingProgressive Web Apps (PWAs)Push NotificationsLocal-first developmentEmbracing the open webWebAssembly (WASM)PerformanceDuring the portion of the episode where I focus on local-first development, I make reference to a few podcasts that dig into the topic, the Muse Podcast and localfirst.fm.I will be digging into the actual project that I will be sharing the evolution of on this project, so please subscribe and sign up for the newsletter for updates.To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
12:0217/05/2024
005 — Pressing Publish

005 — Pressing Publish

In this episode I reflect on officially hitting publish on this podcast. The steps that lead up to the release, along with all the excitement and anxiety that builds up before pressing that button.From creating the cover art, to settling on the format—or lack there of—to writing descriptions, and deciding whether or not to pay the extra $5/month to Transistor for the AI Transcriptions feature vs. rolling my own (note, I just paid the $5, but may explore some other ideas with custom transcripts on the site, since after playing with the different output options it got the brain gears turnings). Basically, all the stuff that went into launching this.Here are a few additional things that were on that launch list:Audio quality (via Adobe Audition + custom presets to make the audio sound better)Newsletter sign-up formWebhooks to refresh the site when new episodes are publishedSitemap`og:image`’sAlong with some other outstanding stuff that I will be pushing to the site soon:Welcome email (for newsletter subscribers)Newsletters (sign up so you will start receiving these once they start going out)Standardize copy/words for how I reference what this isTweak site metadata and SEO stuffIt definitely feels exciting to start seeing it in the various podcatcher sites and apps, and looking forward to talking about all the other stuff I have in the works. Until next time!To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
12:5409/05/2024
004 — Building allplay.fm

004 — Building allplay.fm

In this episode I dig into why I decided to build a custom site for this podcast vs. using one of the templated sites that TransistorFM offers. Part of it is based on some of my ideas about utilizing platforms to push traffic back to sites that you own. The other part of it was I just had an idea of what I wanted the site to look like, and how I wanted it to function, and I couldn’t suppress the urge from just building it myself. I also explain how I plan to add a newsletter to the site as well, and you can sign up for at allplay.fm. I am currently using Resend to capture the subscribers, and will be using them for the newsletter delivery, but have some plans about how I will be doing that in a later episode.In addition to the site, I get into some thoughts I am having about expanding the reach of the podcast—and really just personal stuff in general—and how potentially replicating that across a number of sites that all point back at the sites you own either help or hurt your own sites performance, or really where do people find it and when do they drop off?And, I geek out about some of the Web Audio API and Audio Buffer stuff I am using on the site to use for audio playback and will be publishing the library I am using for that at a later time, and will have an episode about that when it happens.ReferencesTransistorFMNxContentlayerallplay.transistor.fmResendTo follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
11:3806/05/2024
003 — No Edits

003 — No Edits

tl;dr I am not going to be editing these episodes, so please bare with me.Although, if you want me to reflect on it a bit more, there’s a reason for making the active choice to not edit these episodes. Part of that decision is based on efficiency, as I work through these episodes I am trying to take all the ideas swirling around in my head and pluck a single one that I can try to break down and pick apart within a quick 10 minutes—maybe a little more, or a little less. I could definitely try to get to that same time constraint by recording a bunch of material and whittling it down to fit the space required, but with that approach I feel like you lose all the nuance on the topic, and you don’t get to hear the gears grind through the topic. Also, recording 30 minutes or an hour of material and trying to edit it neatly into a 10 minute episode that sounds fluid and coherent sounds like a miserable task, that I both don’t have the patience, nor the time to take on.So, please bare with me if I happen to misspeak or mispronounce a few things from time-to-time. I hope the core ideas ring through and you are still able to take away something. And, along those lines, I go into my OCD approach to listening to albums and podcasts, and recommend that if you do intend on listening to multiple episodes of this podcast, that you should try to do that from the earliest episode and listen until the current/last episode. Just a recommendation, you do you, but from my experience with other episodes, I will probably be referencing either ideas or projects from the past, or may even come up with some made up word that I reference from an earlier show, so listening to them chronologically will probably reduce the confusion level as those pop up.To follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
06:4906/05/2024
002 — Style and Error

002 — Style and Error

CSS and component libraries, where to begin?Over the years I have used a bunch of different flavors including, css-modules, styled-components, CSS + Sass and a few other things. But, over the last 3 years or so, I have been primarily using ChakraUI, which is a component library that offers a really nice way to setup your theme—based on styled-system—as well as control the styles and defaults of the components they offer, along with being able to build and style your own components, using the same system, all accessible via the main theme configuration.But, since I am trying to shed the biases of the past, and explore all the new potentially new, hot stuff that could make my life in code potentially better, I decided to explore some of the new stuff that has been spinning out of the ChakraUI world, as well as some thoughts and questions I have about sticking with that world, or going all-in on Tailwind.ReferencesCSS modulesstyled-componentsSassPostCSSChakraUIstyled-systemEmotionPanda CSSArk UIPark UITailwind CSSRadixshadcn/uiTo follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
11:5706/05/2024
001 — Default to Stacktion

001 — Default to Stacktion

On this episodes I dig into getting back into action and picking a stack to base the action on. In the past, I have built my products and prototypes in Laravel, using an SPA—typically built in React—for the majority of stuff, and I go into all the pros, and a few of the cons, I have experienced with that setup along the way.Well, now the year is 2024 and as easy as it would be go back to that trusty old cocktail of sorts, I want to push myself to explore something new. I go into how I have been structuring my latest work utilizing Nx for the monorepo setup, and primarily using React + Next for the majority of the client apps.I love the DX surrounding some of these newer hosting platforms, allowing for instant previews of branches that are in the works, and being able to have as many of those up and running, and viewable, while working on a project. That coupled with the fact that I haven't been working on PHP for the last 4+ years and all the changes that have been going on, in both PHP and Laravel, I feel a little behind the curve in that ecosystem, and honestly I really just like working in Javascript and not having to deal with the context switching between PHP and Javascript.So, with all that said, I am not wasting any more time on the debate and am going to go all-in—at least on this first project—on the all Javascript setup, utilizing Nx to manage the monorepo for the project. React + Next for both the marketing site and app, which will be two separate apps deployed on the same push, utilizing shared libraries within the repo. And, will be trying out NestJS for the API, because—for a number of reasons—I think that is the way to go vs. utilizing API routes via Next to try to accomplish the external API. ReferencesLaravelStripeLemon SqueezyPaddleLaravel Pulse (the one I couldn't think of)Laravel ReverbNextVercelRenderNetlifyLaravel ShiftNxNestJSTo follow along, you can find me at ryanhefner.com, follow me on Twitter @ryanhefner, and keep up with the show on allplay.fm and onTwitter @allplayfm.Help yourself, while supporting the show, by trying some of the services that I use, and highly recommend:Transistor FMFathom Analytics
11:3406/05/2024