<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="/atom.xsl" type="text/xsl"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>Posts tagged: startup</title>
  <id>https://waylonwalker.com/tags/startup/atom.xml</id>
  <updated>2024-12-30T02:45:02Z</updated>
  <subtitle>All posts with the tag &#34;startup&#34;</subtitle>
  <link href="https://waylonwalker.com/tags/startup/" rel="alternate" type="text/html"></link>
  <link href="https://waylonwalker.com/tags/startup/atom.xml" rel="self" type="application/atom+xml"></link>
  <author>
    <name>Waylon Walker</name>
  </author>
  <generator uri="https://github.com/WaylonWalker/markata-go">markata-go</generator>
  <entry>
    <title>💭 Gary Vaynerchuk: &#34;2025 : the year of action … who’s finally re...</title>
    <id>https://waylonwalker.com/thought-481/</id>
    <updated>2024-12-30T02:45:02Z</updated>
    <published>2024-12-30T02:45:02Z</published>
    <link href="https://waylonwalker.com/thought-481/" rel="alternate" type="text/html"></link>
    <summary type="text">!https://bsky.app/profile/garyvee.com/post/3leidcd6xjk2y</summary>
    <content type="html">&lt;div class=&#34;embed-card embed-card-external&#34;&gt;&#xA;  &lt;a href=&#34;https://bsky.app/profile/garyvee.com/post/3leidcd6xjk2y&#34; class=&#34;embed-card-link&#34; target=&#34;_blank&#34; rel=&#34;noopener noreferrer&#34;&gt;&#xA;    &lt;div class=&#34;embed-card-image&#34;&gt;&#xA;      &lt;img src=&#34;https://cdn.bsky.app/img/feed_thumbnail/plain/did:plc:3g5dwh5bw3leulmrtfo4rlxm/bafkreig7nwdidlkbnyghjzmgfxr7bjjewepoodqywqvtykui4yfozt3i7m&#34; alt=&#34;Gary Vaynerchuk (@garyvee.com) — 2025 : the year of action … who’s finally ready ?&#xA;&amp;lt;p&amp;gt;PS: text me for any follow up questions at 📱 1-212-931-5731&amp;lt;/p&amp;gt;&#xA;&amp;lt;p&amp;gt;#2025 #todo #todolist #motivation #garyvee&amp;#34; loading=“lazy”&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&amp;lt;div class=&#34; embed-card-content glightbox&#34;=&#34;&#34;/ data-glightbox=&#34;description: Gary Vaynerchuk (@garyvee.com) — 2025 : the year of action … who’s finally ready ?&#xA;&amp;lt;p&amp;gt;PS: text me for any follow up questions at 📱 1-212-931-5731&amp;lt;/p&amp;gt;&#xA;&amp;lt;p&amp;gt;#2025 #todo #todolist #motivation #garyvee&amp;#34; loading=“lazy”&amp;gt;&#xA;&amp;lt;/div&amp;gt;&#xA;&amp;lt;div class=&#34;&gt;&#xA;&lt;div class=&#34;embed-card-title&#34;&gt;Gary Vaynerchuk (@garyvee.com)&lt;/div&gt;&#xA;&lt;div class=&#34;embed-card-description&#34;&gt;2025 : the year of action … who’s finally ready ?&lt;p&gt;&lt;/p&gt;&#xA;&lt;p&gt;PS: text me for any follow up questions at 📱 1-212-931-5731&lt;/p&gt;&#xA;&lt;p&gt;#2025 #todo #todolist #motivation #garyvee&lt;/p&gt;&lt;/div&gt;&#xA;&lt;div class=&#34;embed-card-meta&#34;&gt;Bluesky Social · bsky.app&lt;/div&gt;&#xA;&lt;/div&gt;&#xA;&lt;/a&gt;&lt;p&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Gary Vee, is the goat.  leaving this image as a reminder for myself&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;&lt;a href=&#34;https://dropper.wayl.one/api/file/074edddb-8b46-4d94-9b55-d70a7bb74366.webp&#34; class=&#34;glightbox-link&#34;&gt;&lt;img class=&#34;glightbox&#34; src=&#34;https://dropper.wayl.one/api/file/074edddb-8b46-4d94-9b55-d70a7bb74366.webp&#34; alt=&#34;image&#34;/ data-glightbox=&#34;description: image&#34;&gt;&lt;/a&gt;&#xA;&lt;/figure&gt;&#xA;&lt;div class=&#34;admonition note&#34;&gt;&#xA;&lt;p class=&#34;admonition-title&#34;&gt;Note&lt;/p&gt;&#xA;&lt;p&gt;This post is a &lt;a href=&#34;/thoughts/&#34; class=&#34;wikilink&#34; data-title=&#34;Thoughts&#34; data-description=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34; data-date=&#34;2024-04-01&#34; data-preview=&#34;These are generally my thoughts on a web page or some sort of url, except a rare few don&amp;#39;t have a link. These are dual published off of my...&#34;&gt;thought&lt;/a&gt;. It’s a short note that I make&#xA;about someone else’s content online &lt;a href=&#34;/tags/thoughts/&#34; class=&#34;hashtag-tag&#34; data-tag=&#34;thoughts&#34; data-count=&#34;2&#34; data-reading-time=&#34;3&#34; data-reading-time-text=&#34;3 minutes&#34;&gt;#thoughts&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
  <entry>
    <title>poc is not product</title>
    <id>https://waylonwalker.com/poc-is-not-product/</id>
    <updated>2024-01-28T09:49:57Z</updated>
    <published>2024-01-28T09:49:57Z</published>
    <link href="https://waylonwalker.com/poc-is-not-product/" rel="alternate" type="text/html"></link>
    <summary type="text">A poc is ** a product. I started focais, not in a rush, but as something that I already had a POC for and thought it would be easy. I wanted to build tools...</summary>
    <content type="html">&lt;p&gt;A poc is &lt;strong&gt;not&lt;/strong&gt; a product.  I started focais, not in a rush, but as something&#xA;that I already had a POC for and thought it would be easy.  I wanted to build&#xA;tools to make creating blog posts like this one easier.  I stared with &lt;code&gt;shots&lt;/code&gt;&#xA;a tool that takes screenshots of websites.&lt;/p&gt;&#xA;&lt;h2 id=&#34;poc-proof-of-concept&#34;&gt;POC (proof of concept) &lt;a href=&#34;#poc-proof-of-concept&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;For the poc, I made a single &lt;a href=&#34;/fastapi/&#34; class=&#34;glossary-term&#34; title=&#34;FastAPI is a modern and efficient web framework for Python, built on top of the Starlette web framework, and pydantic for data validation and serialization.&#34;&gt;fastapi&lt;/a&gt; endpoint that takes a url and returns a&#xA;screenshot of the page.  It converts the url into a key that I can lookup to&#xA;see if I have the shot, if I don’t I go get it.  With the open source libraries&#xA;out there, this is not too hard of a task.&lt;/p&gt;&#xA;&lt;h3 id=&#34;progress-thus-far&#34;&gt;Progress Thus Far &lt;a href=&#34;#progress-thus-far&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;/shot&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;But this wasn’t enough&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;All it does so far for this first tool is take screenshots of websites, and&#xA;give you a hosted image.&lt;/p&gt;&#xA;&lt;h2 id=&#34;users&#34;&gt;Users &lt;a href=&#34;#users&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;To bring in users, I need to create a signup flow, with a database to store&#xA;users, login, logout, and email recovery.  I’ve never had to use an email&#xA;service before that wasn’t already mandated by a company or an iternal smtp&#xA;server.  After some searching I chose resend for email.&lt;/p&gt;&#xA;&lt;h3 id=&#34;progress-thus-far-1&#34;&gt;Progress thus far &lt;a href=&#34;#progress-thus-far-1&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/shot&lt;/li&gt;&#xA;&lt;li&gt;email service for account recovery&lt;/li&gt;&#xA;&lt;li&gt;database to store users&lt;/li&gt;&#xA;&lt;li&gt;/login&lt;/li&gt;&#xA;&lt;li&gt;/forgot-password&lt;/li&gt;&#xA;&lt;li&gt;/recover-account&lt;/li&gt;&#xA;&lt;li&gt;/logout&lt;/li&gt;&#xA;&lt;li&gt;/signup&lt;/li&gt;&#xA;&lt;li&gt;/access-token&lt;/li&gt;&#xA;&lt;li&gt;/account&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;user-management&#34;&gt;User Management &lt;a href=&#34;#user-management&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Eventually I am going to need some user management for site admins (me), but&#xA;for now I just need to see users and some of their attributes such as&#xA;subscription level, number of shots, and such.  If I’m ever contacted for&#xA;support this will give me some first insight into what happened.&lt;/p&gt;&#xA;&lt;h2 id=&#34;subscription-levels&#34;&gt;Subscription Levels &lt;a href=&#34;#subscription-levels&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;For payment I chose stripe.  I was able to setup subscription levels with&#xA;config inside of stripe.  I setup a pricing page with jinja based on the data&#xA;right out of stripe, a way to create checkout sessions, a page to come back to&#xA;once you have executed a checkout, and a way to cancel your subscription.&lt;/p&gt;&#xA;&lt;h3 id=&#34;progress-thus-far-2&#34;&gt;Progress thus far &lt;a href=&#34;#progress-thus-far-2&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/shot&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;email service for account recovery&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;database to store users&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/login&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/forgot-password&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/recover-account&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/logout&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/signup&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/access-token&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/account&lt;/li&gt;&#xA;&lt;li&gt;stripe account&lt;/li&gt;&#xA;&lt;li&gt;stripe api integration&lt;/li&gt;&#xA;&lt;li&gt;/pricing&lt;/li&gt;&#xA;&lt;li&gt;/create-checkout-session&lt;/li&gt;&#xA;&lt;li&gt;/checkout-success&lt;/li&gt;&#xA;&lt;li&gt;/cancel-subscription&lt;/li&gt;&#xA;&lt;li&gt;/reactivate-subscription&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;back-to-the-product&#34;&gt;Back to the Product &lt;a href=&#34;#back-to-the-product&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;Now that I have users, with subscriptions, and different subscription levels. A&#xA;shot might not be the same per url.  For instance a shot from a low tier&#xA;subscription might have a watermark, while a higher tier will remove the&#xA;watermark.  Now I need a way to track shots per user, and keep them up to date&#xA;with subscriptions.&lt;/p&gt;&#xA;&lt;h3 id=&#34;progress-thus-far-3&#34;&gt;Progress thus far &lt;a href=&#34;#progress-thus-far-3&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h3&gt;&#xA;&lt;ul&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/shot&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;email service for account recovery&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;database to store users&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/login&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/forgot-password&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/recover-account&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/logout&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/signup&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/access-token&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/account&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;stripe account&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;stripe api integration&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/pricing&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/create-checkout-session&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/checkout-success&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/cancel-subscription&lt;/li&gt;&#xA;&lt;li class=&#34;text-gray-500&#34;&gt;/reactivate-subscription&lt;/li&gt;&#xA;&lt;li&gt;POST /shot&lt;/li&gt;&#xA;&lt;li&gt;GET /shot/{id}&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;keeping-the-internet-working&#34;&gt;Keeping the internet working &lt;a href=&#34;#keeping-the-internet-working&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;At the end of all of this once a shot is created I want to keep it working for&#xA;users regarless of subscription.  It really bothers me when part of the&#xA;internet just stops working.  I hope to keep running costs low and enough&#xA;monthly subscribers to cover those costs.  And if you decide that fokais is not&#xA;a product giving you any more value your shots will still be here with us.  At&#xA;the moment the biggest cost is compute running headless chrome to take the&#xA;shots anyways, continuing to host them over time is must less of an issue.&lt;/p&gt;&#xA;&lt;h2 id=&#34;its-a-lot-but-not-near-enough&#34;&gt;It’s a Lot, but not near enough &lt;a href=&#34;#its-a-lot-but-not-near-enough&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;I’m a couple of months in on building this for a few days at a time here an&#xA;there. I am in no rush for it to start gaining revenue.  I am learning a ton so&#xA;far.  Whether fokais becomes a big thing or not, I will be able to bring these&#xA;skills to a new startup or to my professional career.&lt;/p&gt;&#xA;&lt;p&gt;It already feels 1000% more complicated than it was just to get the thing to&#xA;work for just me, but in the end it will be worth it.&lt;/p&gt;&#xA;&lt;h2 id=&#34;its-still-not-complete&#34;&gt;It’s still not complete &lt;a href=&#34;#its-still-not-complete&#34; class=&#34;heading-anchor&#34;&gt;#&lt;/a&gt;&lt;/h2&gt;&#xA;&lt;p&gt;There’s feels like quite a bit to do before getting launched, testing out the&#xA;checkout workflow is HUGE thing.  I’ve never made a product for sale by myself&#xA;before, so I am definitly feeling some pressure when taking money to have a&#xA;product that works, and importantly not loosing the subscription or account.&lt;/p&gt;&#xA;</content>
    <author>
      <name>Waylon Walker</name>
      <email>hello@waylonwalker.com</email>
      <uri>https://waylonwalker.com</uri>
    </author>
  </entry>
</feed>