Empower Apps

Joe Fabisevich is back on the show to talk about his new app Plinky from developing and designing as well as advice on 💍 choosing your next spouse for better marketing advice. 💒📈

Guest

Announcements
Related Links

Related Episodes

Social Media

Email
leo@brightdigit.com
GitHub - @brightdigit

Twitter
BrightDigit - @brightdigit

Leo - @leogdion

LinkedIn
BrightDigit

Leo

Patreon - brightdigit

Credits

Music from https://filmmusic.io
"Blippy Trance" by Kevin MacLeod (https://incompetech.com)
License: CC BY (http://creativecommons.org/licenses/by/4.0/)
  • (00:00) - What is Plinky?
  • (05:33) - Designing and Developing Plinky
  • (16:32) - Marry a Product Marketer
  • (22:47) - WWDC 2024 and AI
  • (26:25) - Future Plans
Thanks to our monthly supporters
  • Holly Borla
  • Bertram Eber
  • Edward Sanchez
  • Satoshi Mitsumori
  • Steven Lipton
★ Support this podcast on Patreon ★

Creators & Guests

Host
Leo Dion
Swift developer for Apple devices and more; Founder of BrightDigit; husband and father of 6 adorable kids
Guest
✨ Joe Fabisevich ✨
"Apps genius" - Colleen. I used to make @Twitter a bit healthier, now I make puns and indie apps @redpandaclub. I am the friend you made along the way. 🐶🍕🐱

What is Empower Apps?

An exploration of Apple business news and technology. We talk about how businesses can use new technology to empower their business and employees, from Leo Dion, founder of BrightDigit.

[00:00:00] What is Plinky?
---

[00:00:00] Leo Dion (host): Thank you for joining me for another episode. My name is Leo Dion. Today I am joined by Joe Fabisevich. Joe, thank you so much for coming back on,

[00:00:16] Joe Fabisevich (guest): Yeah, my pleasure. Really happy to be here.

[00:00:18] Leo Dion (host): For folks who don't remember, what were you, what episode were you on? You talked about the stuff you had worked on a former company, I probably, and dealing with that.

[00:00:27] Leo Dion (host): We have, I'm really excited about your new app you're gonna be talking about today. I'll let you go ahead and take it away and introduce yourself.

[00:00:34] Joe Fabisevich (guest): Yeah. I think the last time that I was here we actually talked about like building apps, like at scale with, I worked at

[00:00:40] Leo Dion (host): That's what I thought. Okay. I knew it was something big and important, so Yeah. Awesome.

[00:00:46] Joe Fabisevich (guest): Yeah. Now I've been a iOS developer for almost 15 years. The last place that I did work was at Twitter back when that existed. Obviously now it's my ex. But when I was there, I worked on the societal health team, which was focused on minimizing misinformation, disinformation, abuse, harassment, really focusing on like improving the discourse on Twitter and civic integrity.

[00:01:07] Joe Fabisevich (guest): So like election related things was what I spent a lot of 2020 working on. Unsurprisingly. Before that I have a long history of working at startups. I've worked at Timehop and Bitly and Teachable and a whole bunch of companies that were glued into the social fabric of apps in the web in the 20 tons.

[00:01:24] Joe Fabisevich (guest): And now I do something complete different. I build personal playful productivity apps as an indie developer at my app, at my company, red Panda Club. And the latest app that I worked on is, as you can see in the hat Plinky.

[00:01:36] Leo Dion (host): Nice. I like it. Yeah, so today where you came up to me was it a couple weeks ago and was like, I wanna talk about this app. This app is awesome. And yeah, it's, I love it. It's fantastic. Explain Plinky and where the idea came from.

[00:01:52] Joe Fabisevich (guest): Yeah, I don't want to oversell it and say it's awesome, but if you say it, it's different. So I'm okay with that. I will say that Plinky is a bit of a love story in two parts. The first is that I just, I love links. I've tried out every single app that helps you read later. Like I've used Pocket and Instapaper for years.

[00:02:08] Joe Fabisevich (guest): I tried out every archiving app like Pinboard or Raindrop or really back in the Day Delicious, which all of these apps are based on. And even tried saving links and notes or reminders or keeping a bunch of browser tabs open. There is no organizational system that works for, has ever like fully worked for me.

[00:02:25] Joe Fabisevich (guest): Only a few of these have even stood the test of time to stay on my phone. But you know, I really like them and they're all great in their own way for very specific use cases, whether you're an archivist or a person who loves to read. And yeah, I mean I love pretty much everything about links. That was the first.

[00:02:41] Joe Fabisevich (guest): Part. The second part was that I love my fiance, my soon to be wife in two weeks, Colleen. And when we first started dating she discovered how much I love Lynx. We had a open relationship, me, her, and Lynx. And. I'm very grateful that she found that to be like an endearing trait. When we first started dating, I would ask her, is it okay if I send you some links during the day?

[00:03:00] Joe Fabisevich (guest): I knew she would be busy at work, and she said it was fine, but she was wrong. While she loved that I was thinking of her and sharing interesting articles or recipes to cook together cute animal photos she pretty quickly found it like distracting to have her phone buzzing during the day.

[00:03:14] Joe Fabisevich (guest): I have my own workflows around making sure that do not disturb is on and things like that, but. Instead she suggested that we save the links for later so we could look together look at them together at night. And that's when I started working on a small project. I started, I'm an app developer.

[00:03:26] Joe Fabisevich (guest): I wanted a home for my links and that app would become Plinky. It first was just like for the two of us, and then I started to show the app to people and they loved it. They were all saving links. They were having the same problems that I was having of. Never finding an app that fit their workflow.

[00:03:41] Joe Fabisevich (guest): And they kept telling me that they wanted an app that made it so simple to save links. With Plinky, it's just one tap, like you open the share extension or you're using your browser like Chrome or Firefox or Safari. You could be on your Mac. You could be using integrations like Zapier, basically any way to make it easy to save a link.

[00:03:58] Joe Fabisevich (guest): I wanted to build, and that fit the use case that I had, which was, I just want my links like a permanent archive, but I also want. Tools to help me reference them later. We can get into that a little more, but like a few months later, I left my job at Twitter. I, was having health issues, but also for the longest time, I've always wanted to build my own apps.

[00:04:16] Joe Fabisevich (guest): I wanted to be an indie app developer, and I started Red Panda Club, which is the, indie app company that I have. And. I decided that I wanted to build Plinky. I started working on it and to this day, Colleen and I use it every day. It became an essential tool in our lives, but also a ritual.

[00:04:33] Joe Fabisevich (guest): Like Colleen saves cute videos of red pandas for me, and I save activities that we could do next weekend and every night the two of us come together. We share the links that we save for each other. We call it plink time. We lay in bed and share the links that we've shown each other.

[00:04:47] Leo Dion (host): Does, how do you share your links through Plinky? Because I had assumed that you just have an organization for your own for your own links. Can you make those public?

[00:05:00] Joe Fabisevich (guest): Not yet. So that is when I say we share our links, we literally lay in bed and share the

[00:05:04] Leo Dion (host): Yeah. Okay. Okay. That's what I thought.

[00:05:07] Joe Fabisevich (guest): That is actually one of the top feature requests is the ability to have shared folders. And it was something I really wanted to build into 1.0. But Colleen is a product marketer and was just kinda like 1.0, get 1.0 out there.

[00:05:18] Joe Fabisevich (guest): And over time I was like you know what? Maybe the app doesn't have to do everything on launch day. And much to my surprise people, they keep asking for stuff like that and I will absolutely build it, but it's nice that they are still really using and enjoying the app even without that feature.

[00:05:33] Designing and Developing Plinky
---

[00:05:33] Leo Dion (host): Right, right. So what were some of the design and develop, well, let's start with design decisions about how you wanted to look. What were some early on decisions that you made that you like knew was the right direction for the app?

[00:05:48] Joe Fabisevich (guest): Yes. Like I said, I'm trying to build playful, fun apps and I personally am really drawn to color color, and. Gradients and good clean topography. I really, there's something to be said about Apple's design. It's really like simple, straightforward, and delightful in a lot of ways, but it's also every app feels the same.

[00:06:08] Joe Fabisevich (guest): And Swift UI especially gives you this like toolkit to build really good stock apps. It gives you a lot of room to expand and customize what you want to build. But a lot of people stick to the basics. But I really wanted the app to feel. Like the way that we used to feel about apps back in the day when it wasn't just

[00:06:24] Leo Dion (host): I was just gonna say, that's one of the first things I noticed when I was using the app is I love how playful it is and I love the color palette and everything. Like it doesn't look like every other app in a good way.

[00:06:35] Joe Fabisevich (guest): yeah, actually, I'm glad. I wanted the app to feel unique and I spent, hours agonizing over every color, every icon, every font choice. Even if fonts are the hardest thing in design, but I really like, if you notice, it uses SF rounded because the rounded essence of it is just fits in nicely with the buttons that every button has a little push down effect and haptics, and there's lots of little sounds in the app.

[00:07:03] Joe Fabisevich (guest): And that was just a conscious choice where I said, if I'm going to use this app every single day, it better be nice and it better be something that I enjoy using. And I think that a lot of like people design apps to be very functional these days. I personally wanted to go the extra mile and say if I'm going to make this for myself, but I'm also gonna make it for everyone else.

[00:07:20] Joe Fabisevich (guest): It's not for everyone. Like I've had a few people who said I want it to be blander, which is like a very reasonable choice. I, but I fully understand that they're used to what they're used to. It's just like art though. People look at a painting, like the painting behind me and say, that's not something that is I'm into, but you know, I'm a person and this is something that I'm into.

[00:07:40] Joe Fabisevich (guest): And. I'm actually also building Plinky to be customizable enough that you can choose, the colors or you can choose the layouts, or you can choose a lot of things that make Plinky a home for your app, which is also a design decision because I have to make sure that the app is not only, functional in a way that fits my needs, but is something that anyone can use, including my mom. It has to be simple enough for my mom to use, but also powerful and nerdy enough for like programmers to build their own interesting workflows the way that I was trying to build workflows with all these tools that I'd had before.

[00:08:15] Leo Dion (host): Yeah. Did you work on all this by yourself?

[00:08:18] Joe Fabisevich (guest): Yeah, I would say I would give it like, a 99%. Of course I've asked people for help. I've been like, Hey, what do you think this color? Or what do you think of that? I also had a really large beta group of people giving me feedback, so that was incredibly helpful. But the design and development almost exclusively by myself.

[00:08:34] Joe Fabisevich (guest): And there are a few people who I give credit, but yeah.

[00:08:37] Leo Dion (host): What was the biggest development challenge you ran into building this app?

[00:08:43] Joe Fabisevich (guest): I think probably just generally speaking, backend development. I am not a server developer by trade but I set out to build this, a lot of people ask me why I haven't used, why I didn't use iCloud. And the main reason is to build like the integrations layer that allows people to. Save links to Plinky.

[00:09:03] Joe Fabisevich (guest): Building it on top of iCloud is just a no man's land. I think that what I wanted to do was also be able to make sure that I could provide adequate support and debugging people's iCloud databases is just a bit of a nightmare. So I decided to go the other route and build my own layer with vapor.

[00:09:22] Leo Dion (host): Yeah. How did you like that experience?

[00:09:25] Joe Fabisevich (guest): I would say it was overall pretty positive. I think that there were a few things that I would improve. I do not love fluent. The ORM it is, it's good, it's functional, but it has just some warts that I ran into. What I will say is that the. Discord community. The vapor community is fantastic. They, are willing to debug very individual specific problems.

[00:09:46] Joe Fabisevich (guest): And so I never felt like I was alone. And community was a big part of, building Plinky in general.

[00:09:51] Leo Dion (host): What database did you actually use Underneath?

[00:09:54] Joe Fabisevich (guest): It's Postgres on the backend and on the client. Everything is saved in a library that I developed called Boutique. Boutique is basically. Offline persistence for your app in three lines of code. And it sticks to a very it feels very at home on Apple platforms. It's very like Swift UI everywhere that you would use at State.

[00:10:13] Joe Fabisevich (guest): In Swift ui, you instead use at stored or at store and that's it. Like you just replace it and all of your data is cached offline. As long as you use the API.

[00:10:24] Leo Dion (host): What what was your motivation for building boutique as opposed to using core data or swift data?

[00:10:33] Leo Dion (host): So speaking of boutique, what made you want to use your own library as opposed to using something like Core Data or Swift data?

[00:10:42] Joe Fabisevich (guest): Yeah. At the time, swift data didn't exist, so that was one of the reasons that I decided to build boutique in the first place. I've never really loved using core data. I've found it a little cumbersome and swift data is a much better API, but at the end of the day, it's basically core data especially if you have to do anything outside of what Swift data offers.

[00:11:01] Joe Fabisevich (guest): And I really just found it like, first of all, it was a good challenge to say can I finally build this library that I've been wanting to build for a long time? Which is you can drop it in and get free offline persistence for your app and. It was actually funny enough, the second commit to Plinky's.

[00:11:17] Joe Fabisevich (guest): Codebase was something to the extent of built an offline storage layer and then. Over time, I spent probably like three or four months working on a full time to open source it. And then I found that people loved it. They like, I think I worked on it for about a month and a half. People were like, this is so cool.

[00:11:33] Joe Fabisevich (guest): And then I created this layer called the storage engine, which is basically like adapters you can plug in. So the first version was built on files. The second version was built on SQ l light. And then other people have actually built their own adapters to match their own like database needs. You can even build an adapter for core data if you really wanted to.

[00:11:50] Joe Fabisevich (guest): It's just a protocol you conform to. And then your app has in basically three lines of code offline persistence. But with an API that just resembles Swift ui, it doesn't mean you never have to think about, I'm writing to a database, you just think I'm writing this property and that's it. Everything

[00:12:07] Leo Dion (host): And no macros to deal with. That is a benefit too.

[00:12:10] Joe Fabisevich (guest): No, though that may change over time because property wraps and macros don't play great together,

[00:12:15] Leo Dion (host): you're right. That is true. Are you like anti ORs or what's your kind of, do you mind using ORs or are you more I want to write closer to the metal, so to speak?

[00:12:27] Joe Fabisevich (guest): No, I'll admit I'm like a pretty lazy developer, at least in the context of what I really like what ORMs do, because I want to be thinking in the language that I'm writing in. SQL is great, but I will admit that every time I have to write sql, I basically have to go look up what I have to do. And so being able to write SWIFT as opposed to writing SQL is a nice added benefit for me.

[00:12:47] Joe Fabisevich (guest): The things that I don't like are when. You ask the OM to do something and then it has a, some contextual issue. So I remember this came up when I was using fluent. I was trying to update a property, sorry, update a row, but not update it's updated at or vice versa. Be able to update the

[00:13:12] Leo Dion (host): Oh, interesting.

[00:13:13] Joe Fabisevich (guest): Yeah, I basically had this column that's like last recently most recently used when, and

[00:13:19] Leo Dion (host): Okay.

[00:13:20] Joe Fabisevich (guest): the problem was that I needed to have a separate data. I need to have separate data for that, but it would update the updated app, which would resort the order that the item was sorted for users. And it's not like a conventional problem, but I would like to be able to express it in an ORM.

[00:13:37] Leo Dion (host): Right, right, right. That makes total sense. What kind of, so I'm assuming this is all for the latest oss, like iOS 17 and stuff was there, were there any issues with swifty y, especially with the design you wanted to do?

[00:13:54] Joe Fabisevich (guest): Design-wise, not really. The only thing, the app is like 99% Swift ui. It's great. I love it. There's only one little gotcha with UI Kit, which is text input. There was no way I can get text fields to work on a sheet that was pre presented as a presentation to taunt without weird animation hitches everywhere.

[00:14:15] Joe Fabisevich (guest): And it turns out this is just a widespread issue. Everyone, whoever tries to do this has the same problem as me. I tried every single workaround possible, but the only answer at the end of the day is to drop into UI tech's field. Even that is not perfect, but it's good enough.

[00:14:29] Leo Dion (host): Just looking over the notes what is, so one of my favorite things is full stacks with development. Did you, what did you learn as far as a good workflow for working on the server and the client at the same time? Through Xcode, I would assume.

[00:14:44] Joe Fabisevich (guest): Yeah, I use Xcode for both. I think the simplest tip that is not necessarily obvious is have one project. So I have one project and the server code base is just a swift package. That workflow of being able to hit command RI. And then I have command shift D mapped to switch between the SWIFT server app and plankey.

[00:15:05] Joe Fabisevich (guest): So it's just like constantly being command shift D, command R, command shift D, command R, and that improves efficiency so much. Just one mono repo, one folder. I did have to, I. I remember I had to make some slight changes for the build pack because I use Heroku for the server

[00:15:22] Leo Dion (host): Okay.

[00:15:23] Joe Fabisevich (guest): in a non route directory.

[00:15:25] Joe Fabisevich (guest): But other than that, it's just been so smooth. I.

[00:15:29] Leo Dion (host): Were there any, was there any friction when it came to, so besides the Heroku part, was there any other friction you ran into building a full stack Swift app?

[00:15:38] Joe Fabisevich (guest): I think the biggest problem and one that is 95% solved, and I still have to fix it actually, is dts. I plan to iterate the API over time, and so the model objects that come back because I am persisting everything. Imagine there's like a model for a link and in this version of the link you have 10 properties.

[00:16:01] Joe Fabisevich (guest): I'm adding an 11th property for reminders, which is the next feature that I'm gonna be building. I need to be able to convert the model version with reminders, support into a non reminder support for old clients, which means that there has to be some sort of like transformation layer in between.

[00:16:17] Leo Dion (host): Right.

[00:16:17] Joe Fabisevich (guest): I knew that I've considered it, it's something I still need to do, but it does add a little bit of CRT to where before it was just like perfectly beautiful and just you send the same model, client to server to client.

[00:16:28] Joe Fabisevich (guest): No versioning. It's all great. Now that it's out of beta, I have to think about that.

[00:16:32] Marry a Product Marketer
---

[00:16:32] Leo Dion (host): Yeah. Yeah. So let's talk about the marketing side of it. What did you learn going through this whole process when it came to getting this app ready to market?

[00:16:44] Joe Fabisevich (guest): Yeah. My number one piece of advice would be to marry a product marketer. That really helps a lot.

[00:16:49] Leo Dion (host): Yeah. Yeah, I would imagine that would help, wouldn't it?

[00:16:51] Joe Fabisevich (guest): It would. Yeah. No, I. A gigantic thank you to my fiance Colleen, who spent a lot of free time working on a Go-to market strategy. And no matter how much she says that it was a fun project that she got to do in her spare time, I still just appreciate it immensely. I think the first thing was I. Doing user research, like doing user interviews was incredibly helpful in figuring out how to position Plinky, because I look at the app and I look at it to satiate my needs.

[00:17:19] Joe Fabisevich (guest): One of the most common use cases that people told me about was they're scrolling social media like Twitter, or I guess not Twitter, but they're scrolling threads or. Mastodon or wherever they are, and they're coming across a whole bunch of articles that they wanna read, but they don't wanna read them now.

[00:17:35] Joe Fabisevich (guest): But they just need a, basically like a transient place for them, A temporary inbox. And that's actually a great way to use Plankey because it's one click to do and so if I hadn't actually talked to users, I would've imagined that what they were looking for was a place to really read those articles sit down on their couch with an app like Pocket or Instapaper.

[00:17:55] Joe Fabisevich (guest): But they were just like, no. Like some people do want an offline reader mode, and that's one of the things that I'm working on, but really just the idea of having an inbox for their links was good enough for them. So that made me feel a lot more confident about launching a 1.0. Without, an offline reading experience that those user research sessions helped a ton.

[00:18:14] Joe Fabisevich (guest): I also found that user onboarding, it doesn't just stop. It's not just in the app. It doesn't stop once the user opens the app for the first time. I made sure to take advantage of email as a way to send four or five emails. As you are going through and learning about Plinky, it tells you about Plinky, it teaches you.

[00:18:35] Joe Fabisevich (guest): About what features it offers. It helps you find the browser extensions that you will use to actually save links on your computer. So I used, I had them on the initial onboarding in the app, but the place that you don't need them is in the app. So they're still in the app, but they don't need to be a part of the onboarding.

[00:18:53] Joe Fabisevich (guest): So finding this user experience onboarding is a part of the user experience, and it doesn't only happen in the app, it's just a huge lesson that I took away. And what was really I think like the third biggest lesson for me was test your subscriptions before you launch to the app store. Or test your subscriptions before you launch publicly.

[00:19:14] Joe Fabisevich (guest): 'cause I ran into a few little bugs. There used to be a way to test with a promo code. You would send a promo code to a user and say, can you go download my app that's currently broken? So I actually had to launch the app a few days early, test out subscriptions, fix a bug or two then. I soft launched at Deep Dish Swift where we were both at and that was actually a bit of chaos because I soft launched and I started watching how users were going through the onboarding and I realized that they're getting completely lost.

[00:19:44] Joe Fabisevich (guest): I had this very like refined you onboarding. That was an interactive experience and it was just too much. I paired it down to its minimum, like the essential basics. And what the onboarding did after that was show you how to set up the share extension and explain to you what you wanna be doing here. And that was it.

[00:20:01] Joe Fabisevich (guest): By doing that, I was able to, basically, I coded that up in about 12 hours while watching talks. Apologies to any of the speakers whose talks I wasn't paying attention to. Wow. And.

[00:20:12] Leo Dion (host): a lot on your mind.

[00:20:13] Joe Fabisevich (guest): Yeah, no, it was a lot. And then when I launched, the number one compliment I got on launch day was, wow, this onboarding is amazing.

[00:20:20] Joe Fabisevich (guest): And I was just like, thank God this could have gone so poorly.

[00:20:24] Leo Dion (host): What did the promo code stuff not work? Was it something related to Swift ui or just something you forgot about now? Okay.

[00:20:31] Joe Fabisevich (guest): I talked to someone at the on the app store team or like at the On who works on store kit, and he was like, oh, that should work. It's a bug. Do you wanna file a radar? And I was like, if I already launched it, do I, will the radar help? And he said, Nope. And I said, great, then no, I don't wanna file a radar.

[00:20:45] Leo Dion (host): Yeah. Right. One of the things you mentioned was emails. How are you, how do you have that set up? How's that working? Do you have a newsletter or how does that work?

[00:20:56] Joe Fabisevich (guest): Yeah, so I have an email list in a service called Email Octopus. It's a bit of an indie focused email platform. It's not as powerful as something like MailChimp in terms of features, but it gets the job done has campaigns and templates and lists and all that stuff. So I was keeping

[00:21:11] Leo Dion (host): Is that free?

[00:21:12] Joe Fabisevich (guest): No, I think it's might be free for a small tier, but it's pretty much like.

[00:21:17] Joe Fabisevich (guest): 10 bucks a month for a thousand, or I think it goes up an increments of $6 or something like that. It's inexpensive and I would say it's recommended. I had a list of people who are on the wait list and that was about 400 or 500 people that I could reach after Plinky launch to say good news.

[00:21:33] Joe Fabisevich (guest): The app is out there. I've been collecting that since basically November, 2022 when I launched the public beta. And that was really helpful to have. And the workflow is generally like. User signs up, subscribe them to email Octopus, then get them through the onboarding set of emails. And I am actually going to be launching like a little website slash newsletter called Links you'll Love sometime next month.

[00:21:59] Joe Fabisevich (guest): And it's basically just like my own personal collection of links that I come across and four links and four kind of funny posts from across the internet. Nothing too a lot of newsletters like how to become the best product marketer or how to like, how to be the entrepreneur you've always wanted to be.

[00:22:13] Joe Fabisevich (guest): And this is just like in an age where everything is getting summarized by ai. I would just like to help people find nice things to read in a very humanlike way and just curated links in your inbox. So that will also go through email Octopus as well.

[00:22:30] Leo Dion (host): Okay. Yeah, I am, I'm looking for an email service, so I'm just curious what you ended up using.

[00:22:37] Joe Fabisevich (guest): I would also recommend button down email. That's a friend runs it, but it's a service that everyone is caught onto into saying like they love it. Just would highly recommend it.

[00:22:47] WWDC 2024 and AI
---

[00:22:47] Leo Dion (host): Okay. Yeah, that's good to know. Let's talk about Dubb Dub first, I guess. 'cause that's more inve, I would say. Getting married during dub or

[00:22:56] Joe Fabisevich (guest): No, I'm getting married a few days before Dubb Dub. Thank God.

[00:23:01] Leo Dion (host): Okay. I was gonna say, so I wanna ask specifically, when it comes to Plankey, if there's anything that you're looking for in, from dub that you're hoping to help with the app.

[00:23:12] Leo Dion (host): I guess,

[00:23:13] Joe Fabisevich (guest): Yeah,

[00:23:13] Leo Dion (host): I know you mentioned ai, so I don't know if that might be part of it too.

[00:23:17] Joe Fabisevich (guest): Yeah, I think the AI story is so fuzzy with Apple. I think I've been watching a lot of the open source work that they've done and projects that they put out for on device machine learning, and it looks great. I'm very curious to see how they're gonna productize it. If it's gonna be an API that's available to developers, what will it be able to do?

[00:23:36] Joe Fabisevich (guest): And I plan to build just like every iOS developer wants to features that are iOS 18 specific. So it's really up in the air how it'll relate to Plinky. I know that this is a little controversial in the iOS community, but I've been helped a lot by AI in building Plinky. I think it's a. Like a dream for an indie developer.

[00:23:56] Joe Fabisevich (guest): For example, like I, I don't know TypeScript very well, but to build browser extensions, I really needed to build something in TypeScript or JavaScript. And I scoped out about two to three work weeks of work to build out the browser extensions. And instead what I did was I just. Paired with chat GPTI gave it like very specific guidelines, instructions, and told it what I wanted and then iterated on it over and over again By, within about two hours, I had a fully working prototype.

[00:24:25] Joe Fabisevich (guest): Within about two days, I had three browser extensions that supported all the features that I needed for saving links, and that's pretty wild and I very much expect something like that to be built into Xcode. I, I. Have heard from people that, apple is working on stuff like this, and so I know that I find myself missing it when I'm working in Swift, and so I'm very hopeful for that.

[00:24:51] Leo Dion (host): Anything specific with AI you'd wanna do with Plinky as far as like summaries? I know we talked about summaries, but or any particular widget or thing you would wanna plug into Plinky.

[00:25:03] Joe Fabisevich (guest): Yeah, I think summarization and auto tagging is probably two of the biggest things. So people have already asked can I have links that get saved automatically Get put into the right folder. So if you have a link from the New York Times or CNN or BBC, put it in a news folder. I would like to see if there's like on device stuff that I can do with that, and I suspect I will be able to.

[00:25:25] Joe Fabisevich (guest): There's already a lot of good classification. It's just about if a user doesn't have much data, I'm trying to do this all in a privacy preserving way, how do I figure out the best way to do this? And I think that there are some ways that I can, and also I've seen a few reading apps try and go all in on ai.

[00:25:44] Joe Fabisevich (guest): And I, for example, found a 10-year-old article that I had saved in, I won't mention the name of the app, but one app that added summaries recently. And it was an app. It was an article about. Privacy violations and civil liberties and how, like it was about Edward Snowden basically from, a decade ago.

[00:26:01] Joe Fabisevich (guest): And so I hit the summarize button and it said, it took a 10 page article and summarized as the author cares a lot about civil liberties. And I was like, this is not great.

[00:26:12] Leo Dion (host): Very helpful. Yeah.

[00:26:13] Joe Fabisevich (guest): I could have told you that. Want to be able to provide users the ability to really specify what kind of summaries do you want, and do it in a manner that focuses on the user, not focuses on the fact that I added AI to the app.

[00:26:25] Future Plans
---

[00:26:25] Leo Dion (host): So what are future plans for Plinky that you already have scoped out?

[00:26:31] Joe Fabisevich (guest): Yeah. There's actually quite a lot, and I'm really happy to say that a lot of the roadmap that I had in mind is. In line with what people have been asking, you can actually vote on the roadmap in the app. And that's been a helpful guide to knowing.

[00:26:43] Leo Dion (host): do you use for that? If you mind me asking? I.

[00:26:46] Joe Fabisevich (guest): Oh it's called Wish kit.io, I think.

[00:26:49] Leo Dion (host): Oh, it's Martin's. Okay.

[00:26:51] Joe Fabisevich (guest): Yeah, exactly. I added support for something in open source and then realized it was a paid product and he was kind enough to gimme six free months.

[00:26:58] Joe Fabisevich (guest): I'm using that at the moment. But yeah, I. The first thing that people wanted was. The ability to import their links from other services. I was surprised because there's two kinds of users. There's someone who is just getting started and says, I really like Plinky. I want to add some links to it.

[00:27:16] Joe Fabisevich (guest): But I don't have any prior history. I was surprised with how many people are saying I wanna move from, I won't name competitors just because I don't want to be mean, but they're like, I wanna move from this. This app is a little stale. This app your app provides the same functionality. I wanna try it out and. I am working on that today. Like after we hop off this call, I will get back to working on importing links, but the next few things that I'm really excited about right now, when you save a link, Plinky's share extension is just I don't know. I think it's really slick. It's just really quick and once you save a link, it goes away.

[00:27:50] Joe Fabisevich (guest): It gets outta your face as opposed to a lot of other apps which force you to categorize a link or try and put it in the right place. There is the option for that. There's like an edit button that you can hit, but I wanna give the user more control over that. So if they want to. Set a reminder or pin the link or add it to a folder in one tap, as opposed to going to this whole organizational flow where you edit the link, then I want that to be available.

[00:28:12] Joe Fabisevich (guest): And it's because there are so many different kinds of people who have so many different kinds of workflows. That's what I'm building. Plinky to fit is this layer of customization that makes it your home for your links. So that's been highly requested and it's, I actually had about 80% of it built before I ship 1.0.

[00:28:28] Joe Fabisevich (guest): It was a matter of prioritizing and saying I can launch that after. Then the next feature actually is timed reminders. So sometimes I save a link and I'm like, this is a thing I need to talk about with Colleen at 8:00 PM So I just want a little reminder that goes off and tells me this is, the link, your link that you saved.

[00:28:48] Joe Fabisevich (guest): Take a look at it right now.

[00:28:49] Leo Dion (host): Yeah. That's awesome.

[00:28:51] Joe Fabisevich (guest): Unsurprisingly, the number one request from people in this community is a Native Mac app. So that's what I'm gonna be looking into this summer. That way you can have your links everywhere. The iPad app does run on the Mac right now in, the very, like M1, M two, M three kind of way.

[00:29:07] Joe Fabisevich (guest): But it's good enough, but it really doesn't meet my standards, especially given how much time and energy and effort I've put into making Plinky feel. Would say delightful.

[00:29:15] Leo Dion (host): Are you thinking Swift UI native or are you thinking Catalyst.

[00:29:19] Joe Fabisevich (guest): Swift ui. That's one of the reasons that I built Plinky in Swift ui and so much of it is avoiding UI Kit is so I can transpose it onto the Mac pretty easily.

[00:29:28] Leo Dion (host): Okay. Okay. I do have a couple of technical questions for you, if you don't mind. So outside of Plinky, what are you look looking forward to from dub?

[00:29:39] Joe Fabisevich (guest): Oh, I honestly don't know. I think I would say I've been so laser focused for the last six months. I also just don't know where. Apple is going, and I don't mean that in a critical way. I think that every year they manage to create a theme that surprises and delights, and I just don't know what that's gonna be this year, because all the talk has been ai, ai.

[00:30:02] Leo Dion (host): Right. And then last year we already had the big thing out last year that they already talked about. So it's like with the glasses. So it's okay, like I guess it could be ai. We've heard rumors of a partnership or something with open ai, so I don't know if that's going to be anything, but it seems a little bit strange that they'd do anything weeks from today.

[00:30:24] Joe Fabisevich (guest): I would like to put my prediction on the record. I have three classes of prediction. One is if they have an enterprise partner. I think it's gonna be Microsoft because Microsoft owns the license to all of GPT-4 and all of the models that they create.

[00:30:39] Leo Dion (host): if Open AI has a enterprise partnership, or Apple has an enterprise partnership.

[00:30:45] Joe Fabisevich (guest): I think that they will not. I don't expect them to go directly to OpenAI because OpenAI goes down all the time. Like I, maybe I'll be wrong. Like I'm happy to be wrong about this, but I love chat, GPT, I'm not gonna lie. But I,

[00:30:59] Leo Dion (host): we did a whole episode with with oh gosh, I forgot. But we talked about all the ways chat. GPT is super helpful. I'm surprised you didn't say anything about marketing, but I guess if you have a wife, you don't need chat GPT to help you, or fiance, I should say.

[00:31:12] Joe Fabisevich (guest): If you have a fiance, you don't eat Sha GPT is my tagline.

[00:31:15] Leo Dion (host): Yeah, exactly. That should be the name of this episode.

[00:31:17] Leo Dion (host): But yeah, that was, that's always the thing I found super helpful with chat. GPT as imperfect as it is helping me with marketing text. Yeah, I, so the partnership thing is strange to me because I would've thought that if any, if anybody is gonna do anything, any of the big company, FANG companies, whatever, it's gonna do anything with.

[00:31:38] Leo Dion (host): OpenAI. I thought I was gonna Microsoft. 'cause Microsoft practically owns them in a lot of ways. But you're just saying Apple is gonna just work with Microsoft directly through that.

[00:31:47] Joe Fabisevich (guest): I think it's either micro, Microsoft or Google. I think OpenAI is my third choice for who I would depend on. Going forward for the online model, not the offline, on your device model?

[00:32:01] Leo Dion (host): right. Yeah. One of the things you mentioned in here, swift six we had some really great talks about Swift six at Deep Dish. And it is my current, it's like literally what I'm working on before talking to you is trying to get bushel ready for Swift six. Have you already enabled those flags to see to see how much work you have ahead of you or what?

[00:32:25] Joe Fabisevich (guest): I think you can tell by my smile that answer is

[00:32:27] Leo Dion (host): yeah. Okay.

[00:32:28] Joe Fabisevich (guest): I did early on, and then I found myself getting strict concurrency warnings that didn't make sense. Some of them made sense, some of them didn't, and what I decided was I'll leave it till the summer when things are more settled because so much was gonna change between Swift 5.7, 5.8, 5.9.

[00:32:45] Joe Fabisevich (guest): That I could be like Matt Maci and chase every change and be involved in the process. But practically speaking, I think I'm gonna wait. I'm gonna spend a good chunk of the summer just looking into what I really need to do, especially for boutique. I, that is very concurrency actor based and I wanna make sure that it doesn't lead to race conditions.

[00:33:07] Joe Fabisevich (guest): So I've enabled it in there. I only had nine warnings, which I find very suspicious. I am like, I'm gonna wait and see when nine turns into 90, what I need to do.

[00:33:18] Leo Dion (host): Okay. Okay. Yeah, that makes a lot of sense. Yeah. And you mentioned on your notes here about Vapor. That's gonna be interesting.

[00:33:26] Joe Fabisevich (guest): Yeah. I think it's gonna

[00:33:27] Leo Dion (host): I think there's a lot of work behind the scenes to get it ready, so hopefully it doesn't affect those of us who just use it for implementation, but we'll see.

[00:33:36] Joe Fabisevich (guest): The nice thing about Swift six is you can also stay in Swift five mode. So if you aren't ready, then you're not ready.

[00:33:43] Leo Dion (host): Yep. Anything else you wanna talk about before we close out?

[00:33:47] Joe Fabisevich (guest): I don't think we're gonna solve Israel Palestine, so I'm okay, but I.

[00:33:51] Leo Dion (host): Yeah, I don't think so. Joe, thank you so much for coming out on the show. It was good to see you in person last week and yeah, it was just great to see you again.

[00:33:59] Joe Fabisevich (guest): Yeah. Thank you so much for having me on. It was nice to chat, especially about the technical stuff now that I work for myself. It's, I don't get to talk as much about it.

[00:34:06] Leo Dion (host): Yeah, you just have to talk about product marketing with your fiance. Sorry.

[00:34:09] Joe Fabisevich (guest): Honestly, it could be worse.

[00:34:11] Leo Dion (host): Could be worse. Could be worse. Plinky's a fascinating it's a wonderful application. I'll put a link to it in the show notes. Definitely give it a try, everyone and try it out. It's fantastic and I love the color design and everything yeah.

[00:34:24] Leo Dion (host): And good luck to your big day coming up in a few weeks.

[00:34:27] Joe Fabisevich (guest): thank you so much. Yeah.

[00:34:29] Leo Dion (host): Yeah. Where can people find you online?

[00:34:31] Joe Fabisevich (guest): I'm mostly on threads these days. It's merge, sort like the algorithm, M-E-R-G-S-O-R-T. I also write a lot. If you go to merge sort.me, there's a whole bunch of links to my blog or my other blog or my other blog. Too many blogs and also one thing that I've just, I. Loved is the support emails I've gotten.

[00:34:51] Joe Fabisevich (guest): Everyone has been super nice and the fact that I'm a human being who's responded and with depth has led to a whole bunch of good conversations. So if you do use Planky and you do have ideas, or you do want to tell me thoroughly anything, I'm here. I'm a really human being. I'm not ai. So I would love to hear from you.

[00:35:09] Leo Dion (host): Awesome. Thank you, Joe.

[00:35:11] Joe Fabisevich (guest): Thank you.

[00:35:13] Leo Dion (host): I am still trying to figure out what my plan is for dub since I will be there physically. So I will keep folks in the loop if you follow me on social media. I have to figure that out. But yeah, we'll do something for dub here on the show. And so look out in emails or social media for what my plan is for the recording.

[00:35:33] Leo Dion (host): Hopefully you'll figure out a way. Have Peter back on to talk about the State of the Union and stuff. So be on the lookout for that. You can follow me on Twitter at Leo g Dion Mastodon at Leo Dion at c Im be sure to subscribe to our newsletter@brightdigit.com and I think that's it. Thank you so much and I look forward to seeing everybody at Dub.

[00:35:58] Leo Dion (host): Bye.

[00:35:59] Joe Fabisevich (guest): See you.