<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="4.3.4">Jekyll</generator><link href="https://marc.io/feed.xml" rel="self" type="application/atom+xml" /><link href="https://marc.io/" rel="alternate" type="text/html" /><updated>2026-04-07T22:16:59+00:00</updated><id>https://marc.io/feed.xml</id><title type="html">Marc Köhlbrugge</title><subtitle>Maker of BetaList, Startup Jobs, WIP, and other products.</subtitle><entry><title type="html">My experience switching BetaList from Heroku to Render</title><link href="https://marc.io/heroku-to-render" rel="alternate" type="text/html" title="My experience switching BetaList from Heroku to Render" /><published>2022-11-02T00:00:00+00:00</published><updated>2022-11-02T00:00:00+00:00</updated><id>https://marc.io/heroku-to-render</id><content type="html" xml:base="https://marc.io/heroku-to-render"><![CDATA[<p><a href="/betalist">I started BetaList as a Tumblr site</a> back in 2010 to give startup founders and early adopters a place to discover each other and share feedback. Since then it has evolved a lot. Both functionally and technically.</p>

<p>It was a <a href="https://sinatrarb.com/">Sinatra</a> app for a while, and later I switched to Ruby on Rails 3. As the years went on I kept the codebase up-to-date by upgrading anytime a major new Rails version came out. (Running on Ruby on Rails 7 now with the <a href="https://hotwired.dev/">Hotwire</a> goodness.)</p>

<p>I played with the idea of moving away from Heroku for a while. For a few reasons. The most concrete reason being costs, but I also felt like their product development stalled the last few years and although I’ve had some good experiences with their support team, overall the company seemed more interested in serving huge enterprise clients rather than a startup like my own.</p>

<p>At one point one of their sales reps called me (still not sure how they got my phone number) and repeatedly emailed me trying to upsell me on a $1,400/mo Enterprise plan with a 12-month commitment. I guess someone needed to hit their quota 😅</p>

<h3 id="render">Render</h3>

<p>Because of these reasons I’ve been exploring alternatives. I briefly tried self-hosting with one app, but when the server randomly went down one night because my logfiles filled up the disk (apparently they don’t automatically get deleted?), I realized I don’t want to play devops engineer.</p>

<p>I ultimately settled on <a href="https://render.com">Render</a>. They provide a similar “Devops done for you” product as Heroku at a more reasonable price point, the product is actively developed, and the team seems more in touch with their customers. Not just the enterprise ones.</p>

<p>Over the past year, I’ve been migrating all of my apps from Heroku to Render. First some smaller apps, and eventually some of my bigger sites like <a href="https://startup.jobs/">Startup Jobs</a>. Since many makers are curious about switching to Render, I figured it would be valuable to document one of those migrations for others to benefit from.</p>

<p>I recently switched BetaList to Render as well and documented my approach below. I’ll also share some of the unexpected issues I ran into, and explain how I solved them.</p>

<div class="rounded bg-gray-50 text-gray-600 p-6 leading-normal">
	<strong class="text-gray-600">Disclosure</strong> &mdash; I've been a paying customer of Render for a while and they recently became a BetaList sponsor.
</div>

<h3 id="previous-heroku-stack">Previous Heroku stack</h3>

<ul>
  <li>Rails 7.0.4 / Ruby 3.1.2</li>
  <li>Web dyno ($50/mo)</li>
  <li>Worker dyno for Sidekiq background jobs ($25/mo)</li>
  <li>Postgres ($50/mo)</li>
  <li>Redis (for caching and Sidekiq background jobs) ($25/mo)</li>
  <li>Scheduler ($5/mo)</li>
  <li>Adapt Scale for scaling up/down web workers ($18/mo)</li>
</ul>

<p><img src="https://lh5.googleusercontent.com/xiIcT8LEA4JQBB9_8pvCdQKYzhyi4kZYjLt4wuy_Yvbxi__Sx1dLBpeuaQ4imX0p0t28foqVSRSteOJoPVjYSC2nvKCo06KwG5XsFnL32OVJPT2Kzf6XTS1zSymIVlT7Z3A6e5QaBnUJMUxFFZQFAh-Mm9TrA8ZeSQ1rq01SgWnKPilge34lzADqZv7DLw" alt="" /></p>

<p><img src="https://lh5.googleusercontent.com/CJ4dXdOB5MkETt-fwQne7zwqgiZvxarkRHuk9myY5tiCJYAgAFBStWPMwGER-Ld_bZAIu0kCR31B6l8AKavKPJrQWQgUGcHr2EtV6xEidEQOXisoo__tulTwPn-hH1qTSa1iySegvCqjEMRt9uckfOIK9A0f3cqQeop9KEOKeSK0ZLzhJEU1Nrrwr9AJjQ" alt="" /></p>

<p>On average I was paying around $175/mo at Heroku for BetaList. Not horrible, but if you run multiple sites like I do this will start to add up.</p>

<h2 id="the-migration-process">The migration process</h2>

<p>Here’s roughly how I approached the switch:</p>

<ol>
  <li>
    <p>Deploy a few smaller apps on Render.</p>
  </li>
  <li>
    <p>Prepare the BetaList codebase.</p>
  </li>
  <li>
    <p>Deploy a test version to Render.</p>
  </li>
  <li>
    <p>Import (sanitized) production data.</p>
  </li>
  <li>
    <p>Migrate for real.</p>
  </li>
</ol>

<h4 id="1-migrate-a-few-smaller-apps">1. Migrate a few smaller apps</h4>

<p>Before migrating, I got familiar with Render and <a href="https://render.com/docs/blueprint-spec">render.yaml</a>. Rather than configuring everything through the dashboard (which is still possible as well), you can write a document as part of your codebase that defines which services to use, etc. It’s one of my favorite features.</p>

<p>You spend a lot of time configuring your servers, etc. so it’s nice to have a concrete copy of all that work. It makes it easier to experiment as well as you can always revert. Plus, you can easily copy your server setup between projects.</p>

<h4 id="2-preparing-the-codebase">2. Preparing the codebase</h4>

<p>Good preparation can save a bunch of work. I started by moving all of my API keys and other sensitive data from environment variables to the more portable <a href="https://guides.rubyonrails.org/security.html#custom-credentials">Rails Credentials</a>. I also backed up my config variables with this just to be safe. (Don’t commit this file to your git repository).</p>]]></content><author><name></name></author><summary type="html"><![CDATA[My experience and some practical advice.]]></summary></entry><entry><title type="html">Embrace the chaos</title><link href="https://marc.io/embrace-the-chaos" rel="alternate" type="text/html" title="Embrace the chaos" /><published>2022-10-01T00:00:00+00:00</published><updated>2022-10-01T00:00:00+00:00</updated><id>https://marc.io/embrace-the-chaos</id><content type="html" xml:base="https://marc.io/embrace-the-chaos"><![CDATA[<p>Starting something new is messy. You don’t know exactly where you’re going. You try one direction and hit a dead-end. Try another. You’ll get fully immersed in a new piece of technology, only to hit an insurmountable roadblock and be back at square one.
Your code will be a mess. Your UI lacks structure. Your UX is full of glaring problems. When you fix one bug, three new ones pop up. But only sometimes. With some browsers. And of course you’re unable to reliably reproduce them.</p>

<p>If you’re anything like me, you’ll see a multitude of opportunities to clean up. To streamline the design. Remove unused assets. Refactor that piece of code you wrote late last night.</p>

<p>Don’t.</p>

<p>Early on when building your startup, chaos is your friend. That mess of an HTML template? It reminds you it’s okay to be scrappy. The customer won’t mind. Making that border radius consistent with the rest can wait. It’s okay.</p>

<p>Enjoy the moment. Pretty soon you’ll have your structure. You’ll have a working product. And better yet, customers!</p>

<p>But this comes at a price. Rigidity. Changes will be harder to make. Bugs more costly. You’ll long for the chaos. Back when anything was possible.</p>

<p>Embrace the chaos… while you still can.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Starting something new is messy. You don’t know exactly where you’re going. You try one direction and hit a dead-end. Try another. You’ll get fully immersed in a new piece of technology, only to hit an insurmountable roadblock and be back at square one. Your code will be a mess. Your UI lacks structure. Your UX is full of glaring problems. When you fix one bug, three new ones pop up. But only sometimes. With some browsers. And of course you’re unable to reliably reproduce them.]]></summary></entry><entry><title type="html">Measure once, cut twice</title><link href="https://marc.io/measure-once-cut-twice" rel="alternate" type="text/html" title="Measure once, cut twice" /><published>2022-09-22T00:00:00+00:00</published><updated>2022-09-22T00:00:00+00:00</updated><id>https://marc.io/measure-once-cut-twice</id><content type="html" xml:base="https://marc.io/measure-once-cut-twice"><![CDATA[<p>The old adage “measure twice, cut once” suggests you spend some extra time planning your work before taking action, saving you from having to do the work again, wasting time and material.</p>

<p>This is excellent advice for carpentry and working with physical objects. But, when it comes to building startups, I’ve come to realize it’s usually faster to “measure once, cut twice”.</p>

<p>You often don’t know yet exactly what you’re making. You’re figuring it out as you go along. The first cut lets you try out an idea. The second cut makes it right.</p>

<p>So next time you’re starting a new project, don’t spend too much time planning. Just start hacking away and see what you come up with. It’s usually faster and more effective than trying to plan everything out in advance.</p>

<p>Measure once, cut twice.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[The old adage “measure twice, cut once” suggests you spend some extra time planning your work before taking action, saving you from having to do the work again, wasting time and material.]]></summary></entry><entry><title type="html">#buildinpublic</title><link href="https://marc.io/buildinpublic" rel="alternate" type="text/html" title="#buildinpublic" /><published>2021-08-09T00:00:00+00:00</published><updated>2021-08-09T00:00:00+00:00</updated><id>https://marc.io/buildinpublic</id><content type="html" xml:base="https://marc.io/buildinpublic"><![CDATA[<p><img src="/images/posts/buildinpublic/screenshot.png#full" alt="" /></p>

<p>I’ve always been fascinated by seeing creative people work their craft. I don’t just want to see the finished product. I’d like to see the progress that got them there.</p>

<p>That’s why I make products like <a href="https://betalist.com">BetaList</a> (discover startups in their early stages) and <a href="https://wip.co">WIP</a> (community of makers sharing their work in progress).</p>

<p>Over the last couple of years, the concept of “building in public” has become mainstream. People no longer wait to show off their project when it’s finished. Instead, they start sharing their progress from day one. It’s a great way to meet other makers, stay motivated, get early feedback, and build an audience.</p>

<p>A lot of people now build in public on Twitter. To connect, they use the hashtag #buildinpublic. Unfortunately, there wasn’t a great way to explore all these tweets and makers. Until now…</p>

<p>Introducing <a href="https://buildinpublic.com">buildinpublic.com</a> 🚀</p>

<p>A place to explore all the #buildinpublic tweets and see what everyone is working on.</p>

<p>Have a look and maybe give building in public a try yourself. Just post a tweet with the #buildinpublic hashtag and it will automatically show up on the site!</p>

<p>It’s also live on <a href="https://www.producthunt.com/posts/buildinpublic">Product Hunt</a> and <a href="https://betalist.com/startups/buildinpublic">BetaList</a>, so if you’ve got an account there, your support would be appreciated! Looking forward to your feedback and #buildinpublic updates!</p>]]></content><author><name></name></author><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">Tweet Photo got acquired</title><link href="https://marc.io/tweet-photo-acquired" rel="alternate" type="text/html" title="Tweet Photo got acquired" /><published>2020-08-31T00:00:00+00:00</published><updated>2020-08-31T00:00:00+00:00</updated><id>https://marc.io/tweet-photo-acquired</id><content type="html" xml:base="https://marc.io/tweet-photo-acquired"><![CDATA[<p><strong>TL;DR: <a href="https://tweet.photo">Tweet Photo</a> is a software service to automatically post your Instagram photos to Twitter. It started out as a Medium post, turned into a software product, and eventually got acquired for $30,000.</strong></p>

<p>Continue reading for the full story on how I validated the idea, built a simple product, grew it to thousands of active users, tried monetizing it, and eventually sold it.</p>

<hr />

<h3 id="-blog-post-as-an-mvp">📝 Blog post as an MVP</h3>

<p>People always tell you: start with an MVP, prove there’s demand for your product
before investing all your time into something nobody wants. In my experience
that’s good advice, but it seems many successful products often start out as
accidental MVPs. Tweet Photo is a perfect example of this.</p>

<p>If you’ve ever tried posting an Instagram photo to Twitter, you might have noticed it looks like this:</p>

<div class="jekyll-twitter-plugin"><blockquote class="twitter-tweet"><p lang="in" dir="ltr">🌺 Flower power. @ Bali, Indonesia <a href="https://t.co/HBUbFDbvL5">https://t.co/HBUbFDbvL5</a></p>&mdash; Marc (@marckohlbrugge) <a href="https://twitter.com/marckohlbrugge/status/1072785131226697728?ref_src=twsrc%5Etfw">December 12, 2018</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div>

<p>Just a link. No photo. Useless. I don’t know the politics behind this, but I believe Facebook is the one that disabled the photo previews at some point. So now we’re stuck with useless tweets.</p>

<p>You can find many workarounds using automation services like <a href="https://ifttt.com">IFTTT</a> and <a href="https://zapier.com">Zapier</a>. Because I was unhappy with all solutions, I decided to write my own article in May 2017:</p>

<p><strong><a href="https://medium.com/@marckohlbrugge/a-better-way-to-post-your-instagram-photos-to-twitter-7f3a04a37d89">A better way to post your Instagram photos to Twitter</a></strong></p>

<p>Turns out I struck a chord. To this date that post has been read 70,000 times. Over three years later it continues to get over a thousand hits per month.</p>

<p><img src="/images/posts/tweet-photo-acquired/medium.png#full" alt="" /></p>

<p>If you read the post though, you will notice how complicated the setup is. So I figured there might be an opportunity for a product here. I knew there was interest, but I didn’t know if I could monetize it.</p>

<p>It wasn’t until <a href="https://hi.yuko.im">Yuko</a> posted <a href="https://wip.co/questions/what-is-the-best-way-to-repost-instagram-contents-to-twitter">this question</a> on WIP:</p>

<p><a href="https://wip.co/questions/what-is-the-best-way-to-repost-instagram-contents-to-twitter"><img src="/images/posts/tweet-photo-acquired/wip.png" alt="" /></a></p>

<p>She mentioned she’d happily pay $20/mo for Zapier to tweet her photos. That got me thinking: maybe it’s a product that can be monetized after all. Plus, I already got the leads coming in via the blog post. I could funnel them through to this new service instead.</p>

<p>Rather than further validating the business model, I challenged myself to build a prototype over the next couple of days.</p>

<h3 id="-building-the-product">🛠 Building the Product</h3>

<p>I believe in using the tools you’re familiar with, so I used Ruby on Rails to build the product.</p>

<p>Tweet Photo is technically quite simple. I’m basically gluing together the Instagram and Twitter APIs. I was able to do most of the work with open-source libraries.</p>

<p>I finished the product in just over a week during my spare time.</p>

<p>I initially went with the <strong>tweetphoto.icu</strong> domain name because it was only $1. That’s how much faith I had in the product I guess. But shortly after I decided if I’m going to do this, I might as well do it right and purchased <strong>tweet.photo for $130</strong>. It might not seem like a lot of money, but with all the projects I start things start to add up 😅. In hindsight I’m really glad I got this domain name…</p>

<p>I wouldn’t realize it until later, but the key feature I added was appending <em>“via tweet.photo”</em> to every tweet. This single piece of text would prove to be the driving factor of Tweet Photo’s growth.</p>

<div class="jekyll-twitter-plugin"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">🌺 Flower power.<br /><br />📸 <a href="https://t.co/uJSFHQSyOE">https://t.co/uJSFHQSyOE</a> via <a href="https://t.co/4BojSCBY2i">https://t.co/4BojSCBY2i</a> <a href="https://t.co/N9A0ZyZ3Ar">pic.twitter.com/N9A0ZyZ3Ar</a></p>&mdash; Marc (@marckohlbrugge) <a href="https://twitter.com/marckohlbrugge/status/1072785705548595201?ref_src=twsrc%5Etfw">December 12, 2018</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div>

<h3 id="-time-to-launch">🚀 Time to launch</h3>

<p>December 12th, 2018, 11 days after Yuko’s post, I launched:</p>

<div class="jekyll-twitter-plugin"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">🖼👉🐦 I made a new thing called <a href="https://t.co/LMVsrPNaFV">https://t.co/LMVsrPNaFV</a> ✨<br /><br />Automagically post your Instagram photos and videos to your Twitter account. Your media will be embedded in the tweet, unlike Instagram&#39;s built-in feature.</p>&mdash; Marc (@marckohlbrugge) <a href="https://twitter.com/marckohlbrugge/status/1072869470866034688?ref_src=twsrc%5Etfw">December 12, 2018</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div>

<p>It got featured on <a href="https://betalist.com/startups/tweet-photo">BetaList</a>
(although no surprise here, as I’m the founder of BetaList) and
<a href="https://www.producthunt.com/posts/tweet-photo">Product Hunt</a>.</p>

<p>At the end of the launch day over 100 accounts were created with a combined total of over 100 published tweets.</p>

<p>The product worked! 🥳</p>

<h3 id="-growth">📈 Growth</h3>

<p>As time went on the userbase continued growing.</p>

<p>Unlike most software services, the retention of Tweet Photo was basically 100%. Meaning that anyone that signed up, was likely to continue using it for a long time. Once signed up, everything was automated after all.</p>

<p>Combine that with the “via tweet.photo” in every tweet and you’ve got steady growth:</p>

<p><img src="/images/posts/tweet-photo-acquired/growth.png" alt="" /></p>

<p>Here’s a screenshot of the <a href="https://simpleanalytics.com">Simple Analytics</a> dashboard showing how tweets are driving new leads to the homepage:</p>

<p><img src="/images/posts/tweet-photo-acquired/tweets.png" alt="" /></p>

<p>We even got some major Hollywood celebrities using the service. In fact, Tweet
Photo became a hot topic amongst her fans. Driving even more sign ups.</p>

<div class="jekyll-twitter-plugin"><blockquote class="twitter-tweet"><p lang="en" dir="ltr">I took this last week, ignore the makeup on my shirt<br /><br />📸 <a href="https://t.co/NrpzzKh9UO">https://t.co/NrpzzKh9UO</a> via <a href="https://t.co/NxPR6lYMyD">https://t.co/NxPR6lYMyD</a> <a href="https://t.co/uzB3ZTDQ9E">pic.twitter.com/uzB3ZTDQ9E</a></p>&mdash; Zendaya (@Zendaya) <a href="https://twitter.com/Zendaya/status/1150188870560092160?ref_src=twsrc%5Etfw">July 13, 2019</a></blockquote>
<script async="" src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</div>

<h3 id="-monetization">💸 Monetization</h3>

<p>Okay, so we’ve got decent growth. But what about the revenue?</p>

<p>This was a lot harder. When I launched Tweet Photo I included a $19/year PRO subscription that would remove the “via tweet.photo” branding. I figured if people care enough about their Twitter profile to not want to show that link, they might be willing to pay.</p>

<p>People with more Twitter followers would pay more. After all if someone has a million Twitter followers it’s worth a lot more to me if they promote Tweet Photo in every tweet.</p>

<p><img src="/images/posts/tweet-photo-acquired/stripe.png" alt="" /></p>

<p>I eventually switched to monthly pricing starting at $5/mo. I figured churn rate would be really low anyway, so it would be better to charge monthly. Paying $5/mo instead of $19 for a year upfront is a lower commitment for the customer, but ultimately 3x the revenue for me.</p>

<p>Unfortunately MRR grew very slowly. It’s about $135 MRR right now.</p>

<p>I think the main problem is that the free plan is already very compelling. So it’s hard to convince people to upgrade.</p>

<h3 id="-now-what">🤔 Now what?</h3>

<p>While I had plenty of ideas for improving monetization, including removing the free plan altogether, it didn’t seem worth my time trying to grow a product that’s only doing $135 MRR. Even if I could 10x that, it’s still a low amount compared to my other products.</p>

<p>So over time I spent less time and attention on Tweet Photo. It continued to grow organically.</p>

<p>Another reason I didn’t want to invest too much time is the inherent platform-risk of building an API-powered product. I was dependent on both Twitter and Facebook continuing to provide me access to their API. They could revoke it at any time and Tweet Photo might be doomed.</p>

<p>Earlier this year Facebook did actually deprecate one of their APIs I was relying on, requiring me to upgrade my integration to use a different API.</p>

<h3 id="-acquisition-offer">💬 Acquisition offer</h3>

<p>In April, <a href="https://twitter.com/kevntz">Kevin</a> reached out to me asking if I was interested in selling Tweet Photo. He had a strategic interest with his other products <a href="https://creatorkit.com">CreatorKit</a> and <a href="https://topnine.co">Top Nine</a>.</p>

<p><img src="/images/posts/tweet-photo-acquired/dm.png" alt="" /></p>

<p>Of course the question of valuation quickly came up. Typically a SaaS product is sold for 3-4x annual revenue. In Tweet Photo’s case that would be around $5,000. But that didn’t factor in the many free users that required almost zero customer support, but drove continued growth.</p>

<p>If I were to sell it, it would need to be in the $xx,xxx range. Otherwise I’d prefer to just keep the service and see what happens. There’s always the possibility of another celebrity using it and it going viral.</p>

<h3 id="-valuation-of-30000">💰 Valuation of $30,000</h3>

<p>After some negotiation we ultimately settled on a purchase price of $30,000.</p>

<p>The first $10,000 is cash upfront with no strings attached. The remaining $20,000 is contingent on the revenue Tweet Photo will generate. Basically I will receive all revenue generated within 24 months of the acquisition, with a cap of $20,000.</p>

<p>We both ran the numbers and we believe that with the full weight of <a href="https://creatorkit.com">CreatorKit</a> behind it, it seems very likely Tweet Photo will generate more than that.</p>

<p>But you never know how things turn out, so this was a way to de-risk the acquisition for the buyer while still allowing for a higher purchase than you’d typically see for a $135 MRR business.</p>

<p>Ask me in a few months how things are going 🙂</p>

<h3 id="-whats-next">👀 What’s next</h3>

<p>The $10,000 is in the bank and we’re now finalizing the asset transfer.</p>

<p>In the coming months CreatorKit will likely start marketing it to their existing userbase and possibly improving the service as well. Since we still have a shared interest in growing Tweet Photo me and the CreatorKit team will keep in touch to see how things are going.</p>

<p>Personally, I will continue to focus on <a href="https://wip.co">WIP</a>, <a href="https://betalist.com">BetaList</a>, and <a href="https://startup.jobs">Startup Jobs</a>.</p>

<p>If you want to hear how the remaining $20,000 plays out subscribe to my newsletter below 💌</p>]]></content><author><name></name></author><summary type="html"><![CDATA[It started out as a Medium post, turned into a software product, and eventually got acquired for…]]></summary><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://marc.io/images/posts/tweet-photo-acquired/og.png" /><media:content medium="image" url="https://marc.io/images/posts/tweet-photo-acquired/og.png" xmlns:media="http://search.yahoo.com/mrss/" /></entry><entry><title type="html">Traveling tips</title><link href="https://marc.io/traveling-tips" rel="alternate" type="text/html" title="Traveling tips" /><published>2018-08-14T00:00:00+00:00</published><updated>2018-08-14T00:00:00+00:00</updated><id>https://marc.io/traveling-tips</id><content type="html" xml:base="https://marc.io/traveling-tips"><![CDATA[<p>Some of my favorite traveling tips.</p>

<h4 id="-only-bring-carry-on-luggage">🛄 Only bring carry-on luggage.</h4>

<p>It’s usually cheaper and you can check in online. For most airlines this means you don’t need to go to the airport counter and can go straight to the gate. It also saves you time when you arrive at your destination as you don’t need to wait for the slow luggage belt.</p>

<h4 id="-in-case-of-doubt-dont-bring-it">🛒 In case of doubt, don’t bring it.</h4>

<p>The less luggage you bring, the less hassle. Smaller chance something gets lost, and less weight to carry around. If you’re unsure about whether to bring a certain item, consider that you can probably just buy it at your destination as well.</p>

<h4 id="-flight-ticket-prices-vary-wildly">🎫 Flight ticket prices vary wildly.</h4>

<p>Prices can change a lot depending on when you travel, with which airline, in which class, etc. If you’re traveling on a budget, make sure to do your research. Typically the more time between when you book and when your flight is, the cheaper. Use sites like <a href="https://flights.google.com">Google Flights</a> and <a href="https://kiwi.com">Kiwi</a> to compare different airlines.</p>

<h4 id="-meeting-people">💬 Meeting people.</h4>

<p>It’s great if you can travel with friends. But if that’s not an option, there’s a bunch of different ways to make new friends at your destination. Joining a co-working place is one way. But also meetups through sites like <a href="https://meetup.com">Meetup.com</a> or <a href="https://nomadlist.com">Nomad List</a>. Dating apps like Tinder and Bumble can also be good ways to make new friends (or more).</p>

<h4 id="-stay-flexible">📅 Stay flexible</h4>

<p>If you’re visiting a new place, it’s hard to predict if you’re going to like it. And which area to stay at. So I try not to commit too much in advance and keep my options open. For example I might book a one-week hotel stay even if I plan to stay a few months. That gives enough time to explore the area IRL and pick a permanent spot.</p>

<h4 id="-use-revolut">💳 Use Revolut</h4>

<p>Traditional banks can charge a lot for international credit card payments and ATM withdrawals. Newer banks like Revolut have a lot lower fees, and make it easy to order multiple cards so you always have a backup if you lose one.</p>

<h4 id="-make-checklists">✅ Make checklists</h4>

<p>I’ve created a bunch of check lists for myself for travel. I’ve got a list for “what to look when booking an accommodation” (I have quite a few requirements 😅). Prep for a flight (including a packing list, etc). I even have checklist with what to do when <em>arriving</em> at my destination. It includes things like getting protein powder for exercise (as I usually find it too bulky to travel with) and properly unpacking rather than living out of my suitcase.</p>

<h4 id="-select-specific-in-flight-meal-during-check-in">🍛 Select specific in-flight meal during check-in.</h4>

<p>You’ll get food first + your choice. AFAIK there’s never an additional cost for choosing beforehand</p>

<h4 id="-noise-cancelling">🎧 Noise-cancelling</h4>

<p>headphones for flight</p>

<h4 id="-nomad-list">🗺 Nomad List</h4>

<p>Add trip to <a href="https://nomadlist.com">https://nomadlist.com</a> to receive arrival email with local tips (which sim card to get, tipping percentage, etc)</p>

<h4 id="-you-can-wash-clothes-during-travel">👕 You can wash clothes during travel.</h4>

<p>No need to pack weeks worth of clothes.</p>

<h4 id="-seatguru">💺 SeatGuru</h4>

<p>Use <a href="http://SeatGuru.com">SeatGuru.com</a> to find the best seats in plane</p>

<h4 id="-enjoy">👍 Enjoy</h4>

<p>Yes</p>

<p>I learned many of these tips from <a href="https://twitter.com/levelsio">@levelsio</a> (<a href="https://twitter.com/nomadlist">@nomadlist</a>), and <a href="https://twitter.com/jelmerdeboer">@jelmerdeboer</a>’s book: <a href="https://thuisblijvenisduurder.com">https://thuisblijvenisduurder.com</a></p>]]></content><author><name></name></author><category term="twitter" /><summary type="html"><![CDATA[Some of my favorite traveling tips.]]></summary></entry><entry><title type="html">Do it now.</title><link href="https://marc.io/do-it-now" rel="alternate" type="text/html" title="Do it now." /><published>2018-08-04T00:00:00+00:00</published><updated>2018-08-04T00:00:00+00:00</updated><id>https://marc.io/do-it-now</id><content type="html" xml:base="https://marc.io/do-it-now"><![CDATA[<p>Whether it’s replying to the email that’s been sitting in your inbox forever, writing that blog post you’ve been thinking about all month, or coding up a prototype for that product idea you’ve had for years: do it now.</p>

<p>The timing is never right. The stars won’t align. Your plate is always full. It won’t be any easier tomorrow. You cannot do it all. But if you do choose to do it, you might as well do it now.</p>]]></content><author><name></name></author><summary type="html"><![CDATA[Whether it’s replying to the email that’s been sitting in your inbox forever, writing that blog post you’ve been thinking about all month, or coding up a prototype for that product idea you’ve had for years: do it now.]]></summary></entry><entry><title type="html">You might have $6,000 worth of cryptocurrency you forgot about</title><link href="https://marc.io/forgotten-cryptocurrency" rel="alternate" type="text/html" title="You might have $6,000 worth of cryptocurrency you forgot about" /><published>2017-08-26T00:00:00+00:00</published><updated>2017-08-26T00:00:00+00:00</updated><id>https://marc.io/forgotten-cryptocurrency</id><content type="html" xml:base="https://marc.io/forgotten-cryptocurrency"><![CDATA[<p><strong>I just stumbled upon some free cryptocurrency I totally forgot about. You might have some as well. Read on to find out…</strong></p>

<p><em>Updated on December 2024 to reflect new exchange rates for a total worth of about $6,000. The original post dated August 2017mentioned $310 worth of cryptocurrency.</em></p>

<hr />

<h3 id="give-aways">Give-aways</h3>

<p>A few years ago a lot of new cryptocurrencies started to pop up. Give-aways were a popular way to promote them. Generally all you’d have to do is create an account and you’d get some free coins generally worth a few bucks.</p>

<p>Many cryptocurrencies have risen significantly in value since, so those free coins you got… They might be worth a lot more today.</p>

<p>I personally re-discovered over $300 worth of crypto coins when I first wrote this post.</p>

<p>In this article I’ll walk you through finding out for yourself if you still own any crypto coins you might have forgotten about by now.</p>

<hr />

<h3 id="1-ripple--xrp">1. Ripple / XRP</h3>

<p>On May 10th, 2013 a cryptocurrency startup named Ripple announced a promotional give-away. Beta users would receive 1,000 XRP (Ripple) just for signing up to their mailing list.</p>

<p>Back then that 1,000 XRP was worth a few dollars. Like many other cryptocurrencies, the value of those coins has increased significantly. Today, that free 1,000 XRP is worth over $2,000 USD. Cha-ching!</p>

<h4 id="how-to-find-out-if-you-own-1000-xrp">How to find out if you own 1,000 XRP</h4>

<p>If you don’t remember whether you signed up four years ago, it’s relatively simple to find out. Just search your email inbox for <em>“ripple.com”</em>. If you’re using Gmail you can <a href="https://mail.google.com/mail/u/0/#search/from%3Aripple.com">click this handy link</a>.</p>

<p>Here’s one of the emails I found:</p>

<p><img src="/images/posts/forgotten-cryptocurrency/ripple-email.png" alt="" /></p>

<h4 id="didnt-find-any-emails">Didn’t find any emails?</h4>

<p>Skip to the next section (2. Stellar) to see if you own any of those.</p>

<h4 id="found-the-email-great">Found the email? Great!</h4>

<p>If you read closely you’ll notice that this email merely informs you that you’re eligible for the give-away. Unfortunately it doesn’t seem like Ripple actually sent an email after you received the 1,000 XRP, so this is the closest thing we get to confirmation.</p>

<p>If you did receive this email however, I’d bet there’s a decent chance you participated and have 1,000 XRP sitting somewhere in an inactive account.</p>

<h4 id="whats-next">What’s next?</h4>

<p>Ripple Trade, the service that initially hosted your “XRP wallet” containing the coins has been shut down. Unfortunately that complicates the process a bit, but it’s not a dealbreaker.</p>

<p>All you have to do is follow their instructions. You’ll need to migrate your old Ripple account to a new service called Gatehub. It’s all explained on Ripple’s official webpage: <a href="http://rippletrade.com/#/404"><strong>http://rippletrade.com/</strong></a></p>

<p>Click the button “<em>Migrate Wallet to Gatehub”</em> to start the process.</p>

<p>You’ll be asked to create a new Gatehub account (assuming you don’t have one yet). After that you can follow the instructions to migrate your old Ripple account to Gatehub so you can access your coins.</p>

<p>Unfortunately I did this a few months ago and don’t remember the exact process anymore, but I think it was relatively straightforward. In my case I had to verify my identity first to activate my old Ripple.com account. I don’t recall why, but ultimately it worked.</p>

<p>If you’re having trouble signing in to Gatehub try a different browser. Safari didn’t work for me, but Google Chrome did. ¯\_(ツ)_/¯</p>

<p>Here’s my Gatehub dashboard:</p>

<p><img src="/images/posts/forgotten-cryptocurrency/gatehub.png" alt="" /></p>

<p>And here’s a screenshot of the Exchange showing how much the 1,000 XRP is worth at the time of writing:</p>

<p><img src="/images/posts/forgotten-cryptocurrency/exchange.png" alt="" /></p>

<p><small>Update: the value of XRP has increased significantly since writing this post.</small></p>

<p>If you are now the proud owner of $2,000+ worth of Ripple, feel free to send some test payments to my wallet. Haha. Whatever you think is fair ☺️</p>

<blockquote>
  <p>Open Gatehub, go to Wallet → Send Payment, and enter my username: <strong><em>~marckohlbrugge</em></strong></p>
</blockquote>

<h3 id="2-stellar">2. Stellar</h3>

<p>Stellar is another startup that gave away free coins in order to promote their service. I can’t recall what type of promotion they ran, but I found out I own 5,152 lumens which is worth a little over $100 USD. (Update: now about $1812.18!)</p>

<h4 id="figure-out-if-you-have-a-stellar-account">Figure out if you have a Stellar account</h4>

<p>Search your email inbox for emails sent by “@stellar.org”. Use <a href="https://mail.google.com/mail/u/0/#search/from%3Astellar.org">this link</a> if you use Gmail. Here’s an email I found dated August 1st, 2013:</p>

<p><img src="/images/posts/forgotten-cryptocurrency/stellar-email.png" alt="" /></p>

<h4 id="didnt-find-the-email">Didn’t find the email?</h4>

<p>No worries. There’s one more cryptocurrency to try out. Skip to the next section named <em>“3. Circle”.</em></p>

<h4 id="found-the-email">Found the email?</h4>

<p>Great! Visit the following page to sign in: <a href="https://launch.stellar.org/#/login"><strong>https://launch.stellar.org/</strong></a></p>

<p>If you’re able to sign in successfully you’ll be walked through a migration guide as they updated their systems. Make sure to securely store your public and secret key or you’ll lose access to your account.</p>

<p>After migrating your account you should see how many “lumens” you have. They might take a few seconds to show up.</p>

<p>I personally have 5,152 lumens which at <a href="https://coinmarketcap.com/currencies/stellar/#markets">$0.02 a piece</a> is worth about $109 at the time of writing. Not bad! (Update: it has 10x’d since writing this post!)</p>

<p>If you are now the proud owner of $100 worth of lumens, feel free to send some test payments to my wallet. Whatever you think is fair ☺️</p>

<blockquote>
  <p>Open your Stellar Dashboard, go to Send lumens, and enter my public key: <strong>GDIDVWKEBFKZ3274CEHFOGROJQXLMFR2LBMDA6LCS6JDUSATKPYN4FSG</strong></p>
</blockquote>

<p>Thanks to <a href="https://twitter.com/tommoor">Tom Moor</a> for reminding me about Stellar.</p>

<h3 id="3-circle">3. Circle</h3>

<p>Back in 2014 a startup named Circle provided $10 USD worth of Bitcoin to new users. The value of bitcoin has increased by a factor of roughly 150x, so that means it’s worth about $1,500 now.</p>

<h4 id="figure-out-if-you-have-a-circle-account">Figure out if you have a Circle account</h4>

<p>Search your email inbox for emails sent by “@circle.com”. Use <a href="https://mail.google.com/mail/u/0/#search/from%3Acircle.com">this link</a> if you use Gmail. Here’s an email I found dated June 5th, 2014:</p>

<p><img src="/images/posts/forgotten-cryptocurrency/circle-email.png" alt="" /></p>

<p>This email doesn’t guarantee you actually were invited to become a beta tester, or that you received the Bitcoin. However, it does make it more likely.</p>

<p>If you only find more recent emails you probably never received the bitcoin.</p>

<p>To be sure, try and sign in to <a href="https://circle.com"><strong>Circle.com</strong></a></p>

<p>My account didn’t show any transactions unfortunately. I reached out to customer support just to be sure they didn’t get lost somehow considering it was over 3 years ago that I signed up. I’ll update this post when I know more.</p>

<hr />

<p>That concludes the guide. If you know of any other cryptocurrencies that gave away coins back in the day, let me know!</p>

<p>Send me a message <a href="https://twitter.com/marckohlbrugge">on Twitter</a> if you need any help. ✌️</p>]]></content><author><name></name></author><summary type="html"><![CDATA[I just stumbled upon some free cryptocurrency I totally forgot about. You might have some as well. Read on to find out…]]></summary></entry><entry><title type="html">Get your own emoji domain with 😁.to</title><link href="https://marc.io/emoji-domains" rel="alternate" type="text/html" title="Get your own emoji domain with 😁.to" /><published>2017-08-15T00:00:00+00:00</published><updated>2017-08-15T00:00:00+00:00</updated><id>https://marc.io/emoji-domains</id><content type="html" xml:base="https://marc.io/emoji-domains"><![CDATA[<p><img src="/images/posts/emoji-domains/overview.png#full" alt="" /></p>

<p>Today I’m announcing my newest product: <a href="https://😁.to"><strong>😁.to</strong></a> (← yes that’s a link!)</p>

<p><strong>An overview of all the emoji domains that are still available to register.</strong></p>

<p>As you might know, a handful of domain extensions allow emoji to be used in the URL. The domain extension <strong><em>.to</em></strong> is one of them. It’s the official extension for the country of Tonga which is an island north of New Zealand.</p>

<p>This is what it looks like 😍</p>

<p><img src="/images/posts/emoji-domains/screenshot.jpeg" alt="" /></p>

<p>Most <strong><em>.to</em></strong> domains tend to be used as a domain hack though, where it can be part of a word (<strong><em>toma.to</em></strong>) or sentence (<strong><em>surf.to</em></strong>). This started all the way back 20 years ago in 1997 by <a href="https://twitter.com/boris">Boris VvZ</a> from The Next Web with his redirect service using domains such as come.to, welcome.to, surf.to, etc.</p>

<p>It’s still a very popular extension today and with the support for emoji it might get even more popular.</p>

<h3 id="-the-idea">💡 The idea</h3>

<p>Okay, so how did the idea for this site come about and how does it actually work? Well, I’m glad you asked!</p>

<p>About a week ago a nice guy by the name of <a href="https://twitter.com/domaineur">Max Guerin</a> sent me an email about how .to domains allow emoji to be used and he suggested I’d get one.</p>

<p>I manually checked a registrar’s site to see if my favorite emoji were still available to register. I quickly realised what I really wanted was just a list of every emoji domain that was still available. So I wrote a simple script which filled out the registrar’s form with each emoji and saved the results. I now had a list with about 1,500 emoji domains of which 70% was still available.</p>

<p><img src="/images/posts/emoji-domains/list.png" alt="" /></p>

<p>After checking with Max to make sure I wasn’t stepping on <a href="http://claim.club">his turf</a>, I decided it was a good idea to publicise the list. I figured it would save other people some time and figured I could potentially monetise it too.</p>

<h3 id="-the-revenue-model">🤑 The revenue model</h3>

<p>I reached out to <a href="https://register.to/a.php?i=1">Register.to</a> to see if they had an affiliate program. They happened to be working on one which was about to launch. I could get a 10% commission on every sale. Since each domain is $45, that works out to $4.50 per sale. It won’t make me a millionaire, but it might get me a ticket to Tonga. Who knows!</p>

<p>I guess it’s reasonable considering all I do is set up a page. I don’t have to worry about providing an actual service, ongoing support, etc.</p>

<p>I did check a few other registrars too, and Register.to seemed the most affordable so that worked out as well. They were also very responsive and implemented any feedback I had in a matter of days. 👏</p>

<p>An additional revenue model is selling premium domains. These are domains that are already registered and are now available for sale. Max has some great ones which I’m featuring on top of the page. I get a 5% commission on each sale. I also included some of my own:</p>

<ul>
  <li>👏.to</li>
  <li>🙌.to</li>
  <li>🎵.to</li>
  <li>👋.to</li>
</ul>

<p>If you’re wondering: do people buy these? Yes they do. Max sold ✉️.to the other day. (Not through me.)</p>

<h3 id="-how-i-built-it">⚒ How I built it</h3>

<p>Since it’s just a one-pager with limited interactivity I was able to build most of it in just the weekend. I initially considered just creating a static HTML page, but quickly decided it would be better if the list was kept up-to-date automatically. So I created a simple Rails project and loaded in all emoji using the <a href="https://github.com/muan/emojilib">emojilib rubygem</a>. It contains different keywords for each emoji which later would make it easier to implement search.</p>

<p>The code of the site is quite messy. My main priority was to ship the product. Clean code wasn’t much of a priority since I’ll probably not spend a lot of time on it in the future anyway.</p>

<p>Here’s what the homepage looks like:</p>

<p><img src="/images/posts/emoji-domains/page.png" alt="" /></p>

<p>I recently started playing around with Web Sockets in Rails 5 which makes it really easy to add real-time interactivity to a site. I wanted to try it out just for fun, so I added something where it will show a notification whenever someone clicks on a domain to order it.</p>

<p><img src="/images/posts/emoji-domains/fomo.gif" alt="" /></p>

<p>It makes the page feel more alive, and shows you need to hurry if you want to get a good domain. 😁 #FOMO</p>

<h3 id="-how-i-plan-on-promoting-it">📣 How I plan on promoting it</h3>

<p>Since I launched the site just now, I haven’t done much promotion yet.</p>

<p>I did get in touch with <a href="https://medium.com/u/6c391a426368">Matthew Hughes</a> at <a href="https://thenextweb.com">The Next Web</a> before I launched though. I promised them the scoop. That’s a win/win, because The Next Web will be the first to cover the story meaning they will get more traffic to the article. For me it provides the certainty that I will reach many people at launch.</p>

<p>I also posted the site to <a href="https://betalist.com/startups/emoji-domains">BetaList</a> and <a href="https://www.producthunt.com/posts/to-2">Product Hunt</a>. You might notice a fun easter egg if you visit the site through Product Hunt. (or just check the source code above)</p>

<p>I show a message with a tweet button after you click on a domain:</p>

<figure>
  <img src="/images/posts/emoji-domains/congrats.png" />
  <figcaption>It tweets a personalised message with the customer's domain name in it.</figcaption>
</figure>

<h3 id="-whats-next">👉 What’s next</h3>

<p>To be honest I consider this more of a one-off project. A bit of fun, and quick way to make some money. (hopefully!) I might also add support for more domain extensions as they start supporting emoji.</p>

<p>Depending on how well the site does I’ll consider selling it to someone in the domaining industry. Maybe even the registrar itself, as it could be a nice way to drive traffic.</p>

<h3 id="-should-you-buy-an-emoji-domain">🤔 Should you buy an emoji domain?</h3>

<p>Yes! — Well, obviously I’m biased haha, but I think they are pretty cool and get people’s attention. I wouldn’t go and spend hundreds of dollars on them as an investment hoping to sell them off, but if you find one that fits your product or personality it might be worth the $45/year investment.</p>

<p>Keep in mind there are some caveats to using emoji domains. Some software like Slack don’t support them well (links are not clickable), and at the moment Google Chrome doesn’t actually show the emoji in the address bar (although they work just fine).</p>

<p>If you do register one, <a href="http://twitter.com/marckohlbrugge">let me know on Twitter!</a></p>

<p><strong>👉</strong> <a href="https://😁.to"><strong>https://😁.to</strong></a></p>

<p><img src="/images/posts/emoji-domains/tweet.gif" alt="" /></p>]]></content><author><name></name></author><summary type="html"><![CDATA[]]></summary></entry><entry><title type="html">How to ask for feedback</title><link href="https://marc.io/ask-for-feedback" rel="alternate" type="text/html" title="How to ask for feedback" /><published>2017-04-20T00:00:00+00:00</published><updated>2017-04-20T00:00:00+00:00</updated><id>https://marc.io/ask-for-feedback</id><content type="html" xml:base="https://marc.io/ask-for-feedback"><![CDATA[<p>Ever since starting BetaList I get asked by founders to provide them with my feedback. They share their idea or product with me and end with <em>“Thoughts?”</em> or <em>“What do you think?”</em></p>

<p><strong>This is an awful way to ask for feedback.</strong></p>

<p>Often, after answering, they tell me <em>“we’re not looking to change that part”</em>, or <em>“yes we’ve considered that, but we decided not to go that way”</em>. So you’re wasting both my time and your own by me giving you feedback you didn’t want.</p>

<p>So, how do you ask for better feedback?</p>

<h4 id="1-be-specific-on-what-youd-like-feedback-on">1. Be specific on what you’d like feedback on</h4>

<p>Why are you asking for feedback? Are you stuck? Are you unsure of something? Explain that to the person you’re asking for feedback. Do you want feedback on the vision, concept, execution, the design, a specific part of the product, or maybe you are simply looking to squash bugs?</p>

<blockquote>
  <p>By clearly communicating what it is that you would like feedback on, you make sure you get exactly what you need. It’s perfectly fine to ask different people for different types of feedback based on their expertise.</p>
</blockquote>

<h4 id="2-tell-them-what-you-dont-need-any-feedback-on">2. Tell them what you DON’T need any feedback on</h4>

<p>Let’s say you’re developing an app and you haven’t spent any time yet refining the on-boarding flow. You’ll want to tell them upfront they can disregard that part of the app. Otherwise you’ll just be wasting their time and will be less likely to provide feedback in the future.</p>

<h4 id="3-ask-the-right-people">3. Ask the right people</h4>

<p>You want to make sure you ask the right people for the right feedback. I often see entrepreneurs asking their peers for product feedback, because these are the people that are easily accessible. If you’re building a product for other entrepreneurs, that’s great, but otherwise you want to make sure you <strong>talk to your customers</strong> instead. It’s the people that are paying for your product whose feedback you should value the most.</p>

<p>When it comes to business topics like hiring and strategy it does make sense to ask your peers, but then I still recommend being intentional about who you ask for which feedback.</p>

<h4 id="4-are-you-comfortable-with-harsh-feedback">4. Are you comfortable with harsh feedback?</h4>

<p>I personally prefer feedback that cuts to the chase. It doesn’t need to be sugar coated. If something sucks tell me so I can fix it now, rather than invest more time and money into something that isn’t working. I believe that’s the most efficient, but I also realize not everyone is the same and it depends on the situation and your relationship with the person too.</p>

<p>Tell the person you’re asking feedback from if they can be blunt or if you prefer a little more sugar coating. If you’re uncomfortable saying you prefer sugar coated feedback you can use language such as <em>“where do you see room for improvement?”</em>, etc.</p>

<h4 id="5-make-it-easy">5. Make it easy</h4>

<p>Asking people for their feedback can come in many different ways. Sometimes you’ll want to talk to a person. When you’re beta testing with dozens of users you’ll want an easy way for them to provide feedback from within your app or website (e.g. using <a href="https://www.intercom.com/">Intercom</a>). If you want feedback on an article you’re writing (like the one you’re reading now) use Medium or Google Docs so people can leave comments within the text. If it’s a design or visual mockup use a tool like <a href="https://www.invisionapp.com/">InVision</a>, etc.</p>

<p><strong>Thanks for reading 🙌</strong></p>]]></content><author><name></name></author><summary type="html"><![CDATA[Ever since starting BetaList I get asked by founders to provide them with my feedback. They share their idea or product with me and end with “Thoughts?” or “What do you think?”]]></summary></entry></feed>