November 29th, 2019
Today, the day after Thanksgiving (a proper holiday) I had a product demo scheduled with a customer, at 8am.

Prospects book demos through Calendly, and I had forgotten to update my schedule to reflect the holidays.

This is my fault, so I owned it. I woke up at 730AM, tired as shit. I got my coffee and headed into the hotel lobby where I'm staying.

He didn't even show up to the meeting, and didn't respond to my emails for over an hour. He finally replied that he could talk, I sent him another follow up to jump on Hangouts and he didn't respond to that one.

This kind of thing actually happens all the time, so I'm used to it - it probably happens 20% of the time.

It really sucks, but it's part of the job.

There are a lot of reasons I do product demos and have meetings like this. For one, it builds a relationship with customers. It helps me get feedback on the product and understand what users want and how they think. It's also hard to get people to sign up for my product because of the Google security audit issues I'm facing at the moment. There are lots of other reasons too.

One day, I won't need to take meetings for new customers. Maybe the product won't need it anymore. Maybe I will have a team that does it for me.

But for now, I gotta do it. I see it as a make-or-break for my success.

Having a no show today especially burns. 

I could send a passive aggressive note to the customer, but no, I should keep my cool and get him to reschedule - I should focus on landing him as a customer and not let my ego get in the way.
November 28th, 2019
Today is Thanksgiving :)

Spending time with family.

Also, I woke up to a couple support requests and a new customer! Lots of waitlist signups too, which is surprising for a holiday.

Unfortunately, I'm spending a couple hours tracking down a weird bug and trying to get it out... But once this is done, I can relax!
November 27th, 2019
Missed an update here!

I had family coming into town and got dinner with my parents. My routine of doing an update post at the end of the day got thrown off - and I completely forgot about it.

As a part of my "missed day policy", I will be donating to charity or supporting products/entrepreneurs that I care about.

Today, I bought Ethan 10 coffees. Ethan is a 16-year-old hacker/startup founder from Australia.

He is awesome. When I was 16 I had somewhat similar ambitions, but never followed up with them.

It took many years to realize this is what I wanted to do. Maybe some motivation like this could have pushed me in the right direction.

Lots of coffees for Ethan
November 26th, 2019
Over the last 3 Tuesdays, I've made it a point to "launch" features and to my customers.

In reality, it's just a weekly email blast that goes out to around 300 people. Here's what today's looked like:

Screenshot of my newsletter that went out today


Something good always seems to come out of sending these, for example:

Email from customer on that's been on the fence


I got 5-6 emails so far with general comments and feedback already - I expect a couple more over the next couple days.

Building this SaaS is so god damn hard, but one thing that seems to chip away is just simply keeping people updated - whether that's my customers or people who are on my email list and keeping tabs on the product for the next time they might need it.

Nobody really cares about you, or your product. You need to tell the world!

Putting together the newsletter, all of the documentation, creating videos, and responding to emails - it all takes about half of my day, but I think it's worth it. It's also been keeping me really accountable.

I should be spending even more time on marketing too. But right now, I'm just doing a massive product push through the end of the year, and then I'm going to go absolutely bonkers on marketing in the new year.

It's the only way!
November 25th, 2019
Let's talk about Starter Story vs. Pigeon - my two projects that I'm working on.

Starter Story is an info product (sort of, it's a blog), and Pigeon is a SaaS.

In a given week, I spend 80% of my working day on Pigeon, and 20% of my working day on Starter Story, yet I generate 80% of my total revenue earned from Starter Story and 20% of it through Pigeon.

People probably look at my situation and think I'm stupid to be doing this, and I can definitely see their point.

It also feels so much harder to grow and get traction for Pigeon than it does for Starter Story.

But I do justify this for a couple reasons:

  1. Pigeon is a much more scalable business (and business model)
  2. I wouldn't be proud of myself if I didn't try to build Pigeon.
  3. Info products life time value is much shorter

It's like skiing vs. snowboarding. In my opinion, skiing is really easy on your first try, but gets really hard as you take on more advanced terrain. Because when you stand on skis, you can naturally balance without falling. But as you take on steeper terrain, you have to face pointing your skis straight down the mountain.

When you first try snowboarding, you catch your edge and fall on your ass the whole time. It sucks. But as you get better and take on more steeper/advanced terrain, your edge actually becomes a crutch. On steeper terrain, you don't have to point your snowboard straight down to get down the mountain - you can just do a "falling leaf" and never have to point your board straight down.

Info products (like Starter Story) are soooo much easier in the short term, for a couple reasons:

  1. You don't have to provide value every single month (to avoid churn)
  2. You can rely on one-time impulse purchases (funnel, buy this book, course, etc)
  3. Can easily differentiate (there are millions of books in the world)
  4. Can use your own audience / founder "clout" to propel the business

But in the long term, there are really big downsides (in my opinion):

  1. Not recurring revenue and unreliable business model
  2. You take advantage of people's impulses (which is morally questionable - that's just my opinion - but there are thousands of scummy courses out there)
  3. It's hard to scale the business beyond "yourself" and your own brand
  4. You will likely not be acquired or have a big multiple on your business.
  5. Can the business run without you? 
  6. Fulfillment for the founder. Are you really adding value the world?

So - I think info product businesses are a great way to get started. It's a stepping stone. For my case, Starter Story allowed me to quit my job and own my own time.

Without Starter Story, I wouldn't be able to build Pigeon - from a financial/time perspective, as well as experience.

That's all I'll write today, on this, but more to come soon. Wrote too much.
November 24th, 2019
Today I woke up and watched an episode of Nathan For You - I swear that is the most genius show ever done - and one of the funniest too.

I went for an easy six mile run and the sun was shining so it felt nice. For this marathon training, I'm trying to not push myself too much during casual runs - just enjoy it more. I've been doing a lot of research online and I've found that can make you a better and faster runner. Plus, I'd like to be more excited about getting out there.

Today, I basically finished my big new feature for Pigeon, and I'm super stoked on it.

This will allow users to set reminders and sequences after they send an email, which makes the "workflow" so much smoother. I'm exciting to see user's reactions.

Here's the final product.

I'll deploy it tomorrow under a whitelist and then I'll test it out a bunch in production, and then ship it out on Tuesday!
November 23rd, 2019
I feel like in the last couple of months, I have learned a lot about Javascript.

I'm still way more confident in Ruby and I think that comes more natural to me, but my JS is getting better.

JS has always been a struggle for me.

Spent much of the day debugging and trying to figure out how to get a React element to properly render on a DOM element that's not a part of the natural tree. It's actually been a massive pain point for me in the project, and I know the current implementation is really bad and not scalable.

The issue is the library that I'm using exposes a DOM element, and I need to attach a React component to that and pass data to it, as well as let that data update and keep flowing through to that.

But after HOURS of digging and trying to understand, I finally had a breakthrough.

The best solution I've found is to save that exposed element to state and then use a React.Portal, like this:

The onClick listener that exposes a DOM element:

onClick: function(event) {
  this.setState({specialEl: event.dropdown.el})

   event.dropdown.once('destroy', () => (
     this.setState({specialEl: null})
    ));
}

And then in the render method, you can do something like this:

return(
  <div>
     // regular React app
    {this.state.specialEl &&
       return(
         ReactDOM.createPortal(
            <div>data displayed in the special element</div>,
            this.state.specialEl
          )
       )
    }
  </div>
)

^^ This is a bit of pseudo-code.

I was so stoked when I got this working, feels like a bit of a breakthrough especially because I struggle so much with JS.
November 22nd, 2019
Today was a good day, much better than yesterday. Got to "sleep in" as I didn't have any meetings, and I didn't have a run scheduled which was really relaxing.

Got a new signup for Pigeon, which is the 3rd or 4th signup of the week, which is awesome.

Today, I worked on:

Starter Story content review (as one of my VAs is out)

I'm excited for the future of Starter Story when we can be even more hands off when it comes to editorial duties. I'd love to be in a time where stories get submitted to us through a really nice signup/submit flow and then we just "click a few buttons" and then it's published.

What I love about doing it on my own is that we can gradually get to that point, slowly building different things that optimize the process until one day, it's like that. And, as we get bigger, it will continue to take away more friction as businesses will be more eager to get featured (more inbound)

Removed Kanban and calendar views from the app

I think this is the right move. I deployed those features too quickly and they are not polished enough. I want to do Calendar and Kanban "right".

I've learned a lot building a SaaS - one of the big things is that it's important to build slowly, carefully, and more calculated. It's better to have no feature than a feature at 60%. If someone complains that it's gone I will just whitelist it for their account.

Kanban and Calendar will hopefully get a proper build and release right before the new year or in January.

Added the ability to reorder tasks in a sequence

Not a super important feature but it was requested once. I found a super nice Ruby gem that obfuscates this annoying logic to write, it's called acts_as_list.

Started work on the new reply box sequence sender.

I'm super excited about this feature. It already existed in Pigeon, but was hard to find and hard to understand how it worked. I'm also excited because I think it will impress customers, and I look forward to announcing on the newsletter.

What it allows you to do is set an automated reminder/sequence while replying to emails!

I thought it would be a whole weekend project, but I coded most of it up tonight! Here's a GIF of an early prototype:

dMO9vCiCPp.gif 1.26 MB
November 21st, 2019
Ups and downs.

Highs and lows.

Yesterday I signed up two new customers. I was feeling amazing as it's been a bit slow recently.

Then today, I had two customers churn. Pretty much out of the blue. One of them was a really great customer.

"Our department decided to switch things up and we no longer need your tool."

Lots of time poured into that customer and support, back and forth.

I don't regret it though - I learned a lot through that process and built some great features that helped improve the product.

But it sucks. It's still depressing. It's rejection. When you lost two customers in one day, you feel like shit. You feel like you're not moving forward, but rather stuck in a place where you get new customers and then they just fall off.

Will I ever hit $1000 MRR? Feels like I'm running in place sometimes.

I know that my tool is useful. I just don't have the right customer profile and there are so many things that are holding me back, like the Google audit.

It just takes time and patience. These things take years.

  • Focus on the vision. 
  • Focus on the marketing.
  • Focus on the customers.
  • Build something great. 

You're not building a job board. You're not building a blog. You're building a platform that people will run their business on. Once you can figure out "how to do it right" everything will start to fall in place.

All these little failures are learning.

^^ this is self-talk
November 20th, 2019
This morning I had an 8am sales call with a potential Pigeon user.

He was a performer from Vienna, Austria who needs a solution like Pigeon to manage all of his bookings, since they all mostly come through a WordPress form and into his email. Then, he has a ton of back and forth to close the deal, set the event, etc. Lots of email work.

When I started talking to him over the call I realized that he is an "A1" customer. By "A1", I mean he is my ideal customer. And it kind of caught me off guard.

One issue with having an "audience" like mine is that a lot of my leads/customers "just want to try a cool tool" or "want to start a business". It often feels like I'm wasting time with people like that, because they don't really need the product, and they end up churning.

But this potential customer was different, I was excited and I wanted to make sure I go above and beyond to land him.

He wanted a calendar integration, which is not something we do, but the other solutions don't do it either. What we do offer is Zapier, but we don't have a lot of Zaps yet. In order to impress him, I told him that I would personally set up a Zapier integration for him that would create calendar events from Pigeon.

So I spent much of the day configuring triggers in Zapier (needed to set this up anyways) and got it working! Then, I recorded a personal screencast to set up the whole thing, as that customer is not super technically savvy. You can watch it here.

Maybe that was a bad use of my time? But it felt right. Maybe I'm desperate for customers...?

Sometimes founders will explain their growth was "because of our excellent customer support". I used to think that was bullshit. But lately, I'm starting to think that's the best marketing in the world. It's just not flashy, trendy, or very tangible.

When a potential customer is personally struggling with another tool and getting lame customer support, you can come in and beat them every time with a decent tool and excellent customer support.

That can make all the difference and they can become a customer for life. And they'll tell 10 of their friends.
November 19th, 2019
Yesterday, I woke up at 10am and didn't start working until noon.

The night before, I couldn't sleep. Didn't pass out until 2am.

But it felt totally OK. Instead of forcing myself to sleep, I did some research on marathon training.

Back when I had a job, I felt so stressed out when that would happen, because I would have to wake up and be at work regardless of how much I slept the night before.

Sometimes I forget about these little things, or at least forget to appreciate them more. And it helps to write a bit about it.

Today, I woke up at 8am. I woke up and went for a run. I had nothing on my schedule.

It's so epic to wake up every day and choose your own schedule, and more importantly, to make your own decisions and be your own boss. I wake up and decide what to work on, how, and where.

And it almost never feels like work! Yesterday I looked at the clock and realized I had worked 10 solid hours - and it was so much fun.

It is a great feeling - I need to cherish it more - maybe it won't last forever.
November 18th, 2019
Today was an epicly productive day.

Yesterday (Sunday), I got most of my "errands" stuff done, like emails, budget, and catch up stuff because I wanted to ensure that Monday I could crush it.

I didn't have any meetings, and I didn't have to run today.

So that gave me a fully blocked day to get a bunch of "mini" product and coding tasks done.

Here's what I got done:

  • Paywalled filters on Starter Story (1 hour)
  • Added more categories to Starter Story businesses & some random design stuff (30 mins)
  • Added smart field for "last opened date" for Pigeon - users can quickly see last time email opened (1 hour)
  • Fixed date inconsistencies in Pigeon data model (1 hour)
  • Added ability to send a "test email sequence" for Pigeon users (1 hour)
  • Added ability to update a status for a Pigeon entry automatically, as part of a sequence (2 hours, still working on it)

Once I get this all tested and deployed, I'll have a nice update email for my Pigeon users along with the improved features I've been working on. Once I get that out, I can put my head down and focus on improving (1) the sequence sender from the Gmail reply box and (2) re-doing the spreadsheet interface! Those are two big projects that I can't wait to get out there.

Pigeon is really, really improving and getting easier to use. I've been really focused on product, design, and usability. I'm learning a lot. I can't wait to see what it's like at the end of the year.

Gonna crush it this week.
November 17th, 2019
I get a strange sense of satisfaction out of spending no money, or seeing how low my daily personal expenses can be.

For the past week, I made myself the same turkey sandwich for lunch every day. And cooked the same chicken and rice that I do most nights. I bought these groceries in bulk weeks ago.

I don't have any recurring expenses either. I don't pay for a gym membership - I just go outside and run for free.

I don't Uber or pay for a car. I walk everywhere or take public transportation.

I don't pay for a coworking space. I just go the amazing public library here or go to Starbucks.

I don't buy new clothes often, and often just wear the free stuff I can get from friends or running race t-shirts.

I do buy a coffee on some days, but usually just a cheap drip coffee out of respect for working out of the coffee shop.

The point I'm trying to make is I don't care to spend any money on myself. I spend a lot of time alone, and when I'm alone I live like a broke college student.

But I do spend money on/with others


I do spend lots of money, but it's only on travel, with friends/family, or on my business.

I spent thousands on my recent trips to New York and Europe. When I'm with friends, I go to expensive dinners and baseball games.

I gave my mom $10K to help her get out of debt.

I spend a couple thousand every month on my business - because that money is a tool to grow the business and spend my time on more important things.

Nowadays, I couldn't care less about nice clothes, a nice car, a nice apartment, a gym membership, a good job, or anything else that costs money or time.

I think that money is meant to be spent on people and experiences, or saved and used as leverage in your life.

I also think that not spending money on myself is my way of staying "hungry" and keeping myself grounded. 

Starting your own business is very scary. You need to be nimble in your life and be ready for the worst, financially.
November 16th, 2019
Now it's been about two weeks since I was rejected by YC. Things feel a lot better now and it's starting to feel smaller and smaller.

I recently read a Paul Graham blog post about "how not to die", more specifically how not to let your startup die. PG says that they might achieve a 50% success rate at YC.

I have my down days, but I know in my heart of hearts that I will have a 100% success rate.

It's hard to imagine failing at a startup, now. But maybe it's because I see failure differently.

In a startup that raises capital, I guess you can fail when you run out of money, but when that happens, what do you do next? Go start another startup? That's what I would do. But some people might never do it again, and go back to corporate/academia/investing.

I think that's the difference between them and me. I'm not scared of failing because I can't fail. For me, failure is not attached to one specific idea or business - failure is giving up.

When Michael Scott is negotiating the sale of his new paper company to Dunder Mifflin, he has a sudden aura of confidence, and says this:

 If tomorrow my company goes under, I will just start another paper company, and then another and another and another. I have no shortage of company names.

Maybe it won't be this project, or the next one, but I know that I will be successful because I won't give up, and I will just keep working at it until I'm set for life (and hopefully at an early age).
November 15th, 2019
My new Macbook Pro 16"


Today I got the new Macbook Pro!

Basically, I had been waiting for this for 6 years. The last computer I had was a Macbook Pro 15" from late 2013.

That computer was literally falling apart:

  • The webcam stopped working
  • The fan made this strange grinding noise
  • The battery lasted 30 minutes
  • The fan would go off like a jet engine all day
  • I couldn't even screen share on customer sales calls
  • Could barely edit videos
  • It was kernel panicking often

I would have upgraded, but the new Macbook Pros were notoriously horrible, and in my opinion, the butterfly keyboard was a non-starter.

I feel like I battled over the last couple of years to keep that old thing going, waiting until there was any good next option.

I lost a lot of faith in Apple, a company I used to obsess over. But I think they really came through with this thing. 

I haven't been this excited about a new product of theirs in a really, really long time. Worth every penny.
November 14th, 2019
Today was another missed day, didn't do a journal entry... I had the intention to do it, and then it completely slipped my mind.

So, as stated I will donate to charity or support/donate to people online.

I think a great way to do is to support independent product and app creators, so this time I will support Adriaan van Rossum from Simple Analytics. Simple Analytics is a privacy-based alternative to Google Analytics.

One of the things I want to do more of going forward is supporting people like Adriaan, and if I can get some use out of a new (and awesome) product, then even better!

I don't have much money, but I these kind of expenses are worth it. First of all, they are business expenses, so from a tax perspective, it's not so bad!

And more importantly, when you support people, they might support you back! Doesn't have to be money, but maybe it's a retweet, telling their friends about your product, could be anything - maybe something good comes out of it 5 years down the line...

Or maybe it's just supporting a friend, like buying them a beer :)

I know Adriaan works crazy hard and deserves it, blazing his own trail on the internet. And he's built an awesome product.

Setting up Simple Analytics
November 13th, 2019
Over the past couple days, I've been deep working with rich text editor frameworks, like Slate.

More specifically, I'm re-doing the text editor for Pigeon, because my first attempt at it was really shitty.

Why was it shitty?

Because I tried to take shortcuts and copy-pasted a done-for-you rich text editor from some Codepen. 

This was epic at first because it only took me an hour to implement a rich text editor, but it totally screwed me down the line.

  • I didn't know the fundamentals of the framework
  • Making changes and updates to the editor took a really long time
  • Overall it was buggy

This led to stress and even feelings of anguish looming in the back of my mind:

Pat, you need to make XYZ changes to the text editor. How are you going to do that?

Back to the drawing board

So, this time, I'm reimplementing it, and I'm doing it right. I'm reading the docs, doing it from scratch.

This is taking me a while and it sucks how long it's taking, but I know down the line it's going to be a killer feature and I will be able to add new things and fix bugs more quickly, leading to a happier life and happier customers.

Having that confidence in your code and product is so huge.

My new text editor (a work in progress)
November 12th, 2019
Today (well, technically yesterday) is officially my first day where I missed an update, and this time I have to pay for it.

For every post I miss, I have to donate a few bucks or support a friend or colleague.

I decided to donate to teamtrees.org which has a goal to plant 20M trees!

Partly influenced by Mr. Beast!

My donation to teamtrees.org



November 11th, 2019
Today I slept in until about 9:30. I'm trying to live most days without an alarm clock, it's a new thing I'm trying.

I've also had massively productive days since starting this experiment, and maybe it's due to getting really solid sleep?

Today, I added a submit/share page to Starter Story, something I've been meaning to do forever. I also added more tags to the platform. I'd like to start tracking more and more data. The more data I have, the more leverage I have. I can turn that data into paid features, or enrich pages on the site.

That data also may lead to new features, or even new products altogether. I can use the data to programatically generate content, and can do so much cool stuff, I really love this kind of stuff.

Also, getting data that is user-submitted is pretty epic. That, with a combination of scraping, and other tools, can build very valuable businesses. But our data is on such a small scale. But, it's still really cool to think about.

I also switched memberships on the site and removed the free trial. Also added a lifetime membership. I'll give that a test over the next couple months and through the new year.

I created a mini roadmap for Pigeon. Sounds like a non-important feature, but I think building this out and making each item as part of the docs will help me to share more of these features and build structure around the documentation and things like that. I need some process around that, because for me it super sucks right now :(

Feeling extremely energized this past week - need to take full advantage of this.
November 10th, 2019
Since I went through the YC interview process a couple of weeks ago, I was definitely exposed more to investors, or at least "investor-think" - through talking to people, blog posts, etc.

Although investors probably have good advice, it is often hard to understand or apply that advice when you are deep in the trenches as an operator or business builder. And sometimes, I think their advice is just bad for you if you're building a business.

The same goes for podcasts, business books, and general startup content as well.

Because most advice is in 20/20 hindsight. You hear classic startup advice like "you need to identify your target market" but I have a feeling that many successful businesses didn't find it right away and pivoted multiple times to get there. It's not that simple.

Advice like that is great but I don't find it very helpful, at least for me. The only way I learn is by doing, and learning the "hard way". Maybe that's what makes me "slower" in terms of growth/success/riches...

I wish more investors or VCs would say things like "just keep working every day" or "building a great business takes 20 years" or "just get started", but often it's more sophisticated junk where they try to sound smart.