<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" xmlns:googleplay="http://www.google.com/schemas/play-podcasts/1.0"><channel><title><![CDATA[Víctor Falcón]]></title><description><![CDATA[An Indie Developer building in public.]]></description><link>https://blog.victorfalcon.es</link><image><url>https://substackcdn.com/image/fetch/$s_!qmId!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9476e9ab-fb86-40bd-a529-daa1a0b7e89d_400x400.jpeg</url><title>Víctor Falcón</title><link>https://blog.victorfalcon.es</link></image><generator>Substack</generator><lastBuildDate>Mon, 20 Jul 2026 17:00:07 GMT</lastBuildDate><atom:link href="https://blog.victorfalcon.es/feed" rel="self" type="application/rss+xml"/><copyright><![CDATA[Víctor Falcón]]></copyright><language><![CDATA[en]]></language><webMaster><![CDATA[victorfalcon@substack.com]]></webMaster><itunes:owner><itunes:email><![CDATA[victorfalcon@substack.com]]></itunes:email><itunes:name><![CDATA[Víctor Falcón 🤟]]></itunes:name></itunes:owner><itunes:author><![CDATA[Víctor Falcón 🤟]]></itunes:author><googleplay:owner><![CDATA[victorfalcon@substack.com]]></googleplay:owner><googleplay:email><![CDATA[victorfalcon@substack.com]]></googleplay:email><googleplay:author><![CDATA[Víctor Falcón 🤟]]></googleplay:author><itunes:block><![CDATA[Yes]]></itunes:block><item><title><![CDATA[This changed the way I work (and it's ridiculously simple)]]></title><description><![CDATA[This tool has completely changed how I work. It makes it really easy to orchestrate five or six agents in the same repository, each in its own worktree, and with an independent server.]]></description><link>https://blog.victorfalcon.es/p/this-changed-the-way-i-work-and-its</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/this-changed-the-way-i-work-and-its</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Sun, 19 Jul 2026 09:46:12 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/69c24d51-92fa-4771-b164-bfcc1abdc17b_1376x768.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p><strong>Yesterday I had five agents working at once.</strong></p><p>In the same repo.</p><p>Each one on its own task.</p><p>And me, in the browser, testing what they changed almost in real time.</p><p>Sounds like chaos. It wasn&#8217;t.</p><p>For months I worked with AI the &#8220;normal&#8221; way: one chat, one task, wait, review, repeat.</p><p>Slow.</p><p>Until I tried a tool that flipped the whole thing around.</p><p>Now I can spin up four, five, six agents in parallel on the same project.</p><p>Each one pulling its own thread.</p><p>And I jump between them, watching the changes in the browser without setting up anything weird.</p><p><strong>The best part isn&#8217;t the power. It&#8217;s how simple it is.</strong></p><p>I recorded the whole thing in a new YouTube video so you can see it actually working.</p><div id="youtube2-bTAPzSbkN0I" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;bTAPzSbkN0I&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/bTAPzSbkN0I?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[¿Tu banco no está en Whisper Money? Ahora puedes añadirlo tú]]></title><description><![CDATA[El truco no es la IA. Es la documentaci&#243;n que hay detr&#225;s.]]></description><link>https://blog.victorfalcon.es/p/tu-banco-no-esta-en-whisper-money</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/tu-banco-no-esta-en-whisper-money</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Fri, 17 Jul 2026 07:01:42 GMT</pubDate><enclosure url="https://substackcdn.com/image/youtube/w_728,c_limit/hUYjDUQ8hx8" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Otra vez me han pedido que a&#241;ada una moneda a Whisper Money.</p><p>Pasa casi cada semana. Un peso de aqu&#237;, un rand de all&#225;. Gente con bancos en Sudam&#233;rica, en &#193;frica, en sitios que ni sab&#237;a que ten&#237;an app de banca.</p><p>Hace un a&#241;o esto me habr&#237;a dado una pereza tremenda.</p><p><strong>Ayer a&#241;ad&#237; la corona sueca en cinco minutos. Y estaba tom&#225;ndome un caf&#233; mientras pasaba.</strong></p><p>Te cuento c&#243;mo.</p><p>Abr&#237; una rama nueva, lanc&#233; un agente y le escrib&#237; una sola frase:</p><blockquote><p>&#8220;A&#241;ade la moneda al sistema, que funcione tanto en cuentas de usuario como en cuentas bancarias.&#8221;</p></blockquote><p>Le pas&#233; un documento de referencia y me fui a por el caf&#233;.</p><p>Cuando volv&#237; hab&#237;a una pull request esper&#225;ndome. T&#237;tulo claro. Descripci&#243;n clara. Los cuatro archivos justos tocados, con la traducci&#243;n al espa&#241;ol y al franc&#233;s ya puestas.</p><p>Le di a auto-merge.</p><p>Cinco minutos despu&#233;s la corona sueca estaba en producci&#243;n, disponible para todo el mundo.</p><h4>Y aqu&#237; est&#225; lo que de verdad quer&#237;a contarte.</h4><p>Eso no funciona por magia. Funciona porque antes me sent&#233; a documentar el proceso.</p><p>Escrib&#237; un documento que explica qu&#233; archivos hay que tocar para meter una moneda, y otro para conectar un proveedor de datos nuevo.</p><p>El agente lee ese documento y sabe exactamente qu&#233; hacer. Pero no es solo para el agente.</p><p>Es para cualquier persona que quiera colaborar.</p><p>Por eso hice Whisper Money open source. Y por eso me pongo a documentar estas cosas.</p><p>Un desarrollador que nunca ha visto el proyecto puede abrir la documentaci&#243;n, lanzar Claude Code o Copilot, y en veinte o treinta minutos tener una moneda nueva o una integraci&#243;n funcionando.</p><p>Yo no tengo cuenta en todos los bancos del mundo. No puedo probarlos todos.</p><h4>Pero si t&#250; usas un banco que no est&#225;, ahora puedes a&#241;adirlo t&#250; mismo.</h4><p>Ese es el trato.</p><p>Grab&#233; un v&#237;deo ense&#241;ando el proceso entero, paso a paso, con la corona sueca de ejemplo.</p><p>Si quieres ver lo f&#225;cil que es, o colaborar con tu moneda o tu banco, empieza por aqu&#237;:</p><div id="youtube2-hUYjDUQ8hx8" class="youtube-wrap" data-attrs="{&quot;videoId&quot;:&quot;hUYjDUQ8hx8&quot;,&quot;startTime&quot;:null,&quot;endTime&quot;:null}" data-component-name="Youtube2ToDOM"><div class="youtube-inner"><iframe src="https://www.youtube-nocookie.com/embed/hUYjDUQ8hx8?rel=0&amp;autoplay=0&amp;showinfo=0&amp;enablejsapi=0" frameborder="0" loading="lazy" gesture="media" allow="autoplay; fullscreen" allowautoplay="true" allowfullscreen="true" width="728" height="409"></iframe></div></div>]]></content:encoded></item><item><title><![CDATA[TypeScript in Go is already available!]]></title><description><![CDATA[Make NVIM even faster now. Go-to-definition used to cost me a coffee sip.]]></description><link>https://blog.victorfalcon.es/p/typescript-in-go-is-already-available</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/typescript-in-go-is-already-available</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Fri, 10 Jul 2026 12:39:30 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qmId!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9476e9ab-fb86-40bd-a529-daa1a0b7e89d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Cursor lands on a function.</p><p>I hit go-to-definition.</p><p>And then I wait.</p><p>One second. Two. On our biggest repo, sometimes five.</p><p>You don&#8217;t notice it in a small project.</p><p>In a monorepo with thousands of files, you feel every one of those seconds.</p><p>It turned into muscle memory: hit &#8220;find all references,&#8221; tab over to Slack, come back when it finished thinking.</p><p>That was normal for years. I figured it was just the price of a big codebase.</p><p>Then TypeScript 7.0 shipped.</p><p>They rewrote the entire compiler in Go. The old one was JavaScript checking your JavaScript, which is about as fast as it sounds.</p><p>The build numbers are almost rude:</p><ul><li><p>VSCode&#8217;s typecheck dropped from 125 seconds to about 10.</p></li><li><p>Slack cut CI type-checking from 7.5 minutes to 1.25.</p></li><li><p>Opening a file full of errors in the editor went from 17 seconds to under 1.3.</p></li></ul><p><strong>&#8288;<br>Roughly 8 to 12 times faster across the board.</strong></p><p>But I don&#8217;t stare at build logs all day. I live inside my editor.</p><p>So the number I actually cared about was that editor one.</p><p>I <strong>wired the native compiler into Neovim</strong>, restarted, and dropped my cursor on a symbol in our biggest project.</p><p>Go-to-definition.</p><p>It landed before my finger left the key.</p><p>No spinner, no Slack detour. References that used to take seconds now feel like they were already sitting there.</p><p>Here&#8217;s exactly what I did. Three steps, about ten minutes.</p><p>&#8288;</p><h4>Step 1. Install the native compiler.</h4><p>Global (a fallback for loose files with no project):</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;4d695b82-22fb-4647-bef5-e725e45ef2c8&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">  npm i -g typescript@latest      # stable TS 7.0+, ships the `tsc` binary</code></pre></div><p>Per project (recommended, so the LSP uses the repo&#8217;s version):</p><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;bac9fa37-b407-49d0-b157-2eb27d03cb27&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">  npm i -D typescript@latest      # lands in node_modules/.bin/tsc</code></pre></div><h4>Step 2. Turn it on in Neovim. nvim-lspconfig already ships lsp/tsgo.lua, so you only override the cmd:</h4><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;4cb1a3f8-0e1d-4aa6-bbce-9de6221ea95c&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">  -- Stable TS 7.0 ships as `tsc` in the `typescript` package (LSP via `tsc --lsp`).
  -- lspconfig&#8217;s lsp/tsgo.lua still launches `tsgo`, so override just the cmd.
  vim.lsp.config(&#8217;tsgo&#8217;, {
    cmd = function(dispatchers, config)
      local bin = &#8216;tsc&#8217;

      if (config or {}).root_dir then
        local local_bin = vim.fs.joinpath(config.root_dir, &#8216;node_modules/.bin&#8217;, bin)
        if vim.fn.executable(local_bin) == 1 then bin = local_bin end
      end

      return vim.lsp.rpc.start({ bin, &#8216;--lsp&#8217;, &#8216;--stdio&#8217; }, dispatchers)
    end,
  })

  vim.lsp.enable &#8216;tsgo&#8217;</code></pre></div><p>root_dir (it finds the root by lockfile, with monorepo and Deno support) and inlay hints already come from lsp/tsgo.lua. Your vim.lsp.config just deep-merges on top.</p><h4>Step 3. Check it.</h4><div class="highlighted_code_block" data-attrs="{&quot;language&quot;:&quot;plaintext&quot;,&quot;nodeId&quot;:&quot;c48dc84c-1e51-4a2d-9ee3-13921bbe33b1&quot;}" data-component-name="HighlightedCodeBlockToDOM"><pre class="shiki"><code class="language-plaintext">tsc --version # &#8594; Version 7.0.x</code></pre></div><p>In nvim, on a .ts file: :LspInfo (or :checkhealth vim.lsp), and you&#8217;ll see the tsgo client attached.</p><p>&#8288;</p><p>A few notes:</p><ul><li><p>You need Neovim 0.11+. That&#8217;s where <code>vim.lsp.config</code> and <code>vim.lsp.enable</code> live.</p></li><li><p>It&#8217;s not in Mason. The binary comes from npm, not :Mason.</p></li><li><p>Want the nightly channel instead? <code>npm i -g @typescript/native-preview</code> (that&#8217;s the tsgo binary) and use <code>tsgo</code> as your bin.</p></li></ul><p>That&#8217;s the whole thing.</p><p>I went from waiting several seconds on our biggest projects, just to jump to a definition or list references, to everything being instant.</p><p>The editor finally keeps up with how fast I&#8217;m reading the code.</p><p><strong>If you write TypeScript in Neovim, give it the ten minutes this week.</strong></p><p>Then hold down go-to-definition on your ugliest file and enjoy how quiet it got.</p>]]></content:encoded></item><item><title><![CDATA[I have an employee whose face I've never seen]]></title><description><![CDATA[He works in the early morning, fixes bugs in production, and has never asked me for a day off.]]></description><link>https://blog.victorfalcon.es/p/i-have-an-employee-whose-face-ive</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/i-have-an-employee-whose-face-ive</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Mon, 06 Jul 2026 09:59:05 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qmId!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9476e9ab-fb86-40bd-a529-daa1a0b7e89d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;ve got an employee I&#8217;ve never seen the face of.</p><p>It&#8217;s 3 in the morning.</p><p>Something breaks in production.</p><p>One user, maybe hundreds, walk straight into an error.</p><p>I&#8217;m asleep.</p><p>And still, 15 minutes later, the fix is live. Working.</p><p>&#8288;</p><h4>Nobody touched a key.</h4><p>I&#8217;ve been messing around with loops for a while now.</p><p>In Whisper Money I&#8217;ve got an agent that never stops.</p><p>Round and round it goes, watching every error Sentry reports.</p><p>When it finds one, it does triage.</p><p>How many users does it hit? Is it serious?</p><p>Based on that, it decides where to start.</p><p>Then it gets to work on the fix.</p><p>&#8288;</p><h4>And here&#8217;s the good part.</h4><p>Before it calls anything done, it reviews itself from three angles at once: the code architecture, the possible bugs and regressions, and the user experience.</p><p>If it all checks out, it opens the pull request.</p><p>And if the fix is simple and it&#8217;s sure, it flips on auto-merge.</p><p>The solution ships to production on its own.</p><p>Without me lifting a finger.</p><p>So far it&#8217;s solving all of them.</p><p>Zero problems in production. Not one.</p><p>&#8288;</p><h4>It&#8217;s the closest thing to a real employee I&#8217;ve ever had. And it&#8217;s 100% automatic.</h4><p>The feeling is strange, I won&#8217;t lie to you.</p><p>Something blows up, because I just deployed or for whatever reason, and I already know that in 10, 15, 20 minutes it&#8217;ll be fixed.</p><p>Without opening my laptop.</p><p>This isn&#8217;t a demo or a LinkedIn video.</p><p>It&#8217;s running in my production while you read this.</p>]]></content:encoded></item><item><title><![CDATA[I did learn the KEY to make money with a project.]]></title><description><![CDATA[I shipped 25+ products in five years. The code was never the problem.]]></description><link>https://blog.victorfalcon.es/p/i-did-learn-the-key-to-make-money</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/i-did-learn-the-key-to-make-money</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Tue, 30 Jun 2026 10:59:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Re_T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Five years.</p><p>More than 25 products shipped. Just me doing the code, the design, the marketing, all of it.</p><p>A couple even sold. A few made decent money. So no, <strong>not a flop.</strong></p><p>But I never built the one.</p><p>The product that pays the bills every month and lets you quit everything else and go all in.</p><p>For a long time I blamed the wrong things. The code wasn&#8217;t clean enough. The design needed one more pass. Ship it again, better this time.</p><p>&#8288;</p><p><strong>That was never it.</strong></p><p>I&#8217;m a good programmer. I know product. I can design. None of that was holding me back.</p><p>What held me back was getting anyone to actually see the thing I built.</p><p>That&#8217;s distribution. <strong>And it&#8217;s pretty much the whole game.</strong></p><p>The project that finally drove it home for me was <a href="https://whisper.money?ref=victorfalcon">Whisper Money</a>. That&#8217;s where it clicked: the building was the easy part, and getting people to find it was everything.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Re_T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Re_T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png 424w, https://substackcdn.com/image/fetch/$s_!Re_T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png 848w, https://substackcdn.com/image/fetch/$s_!Re_T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png 1272w, https://substackcdn.com/image/fetch/$s_!Re_T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Re_T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png" width="729" height="410" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:410,&quot;width&quot;:729,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:217052,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:&quot;https://blog.victorfalcon.es/i/204120446?img=https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png&quot;,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Re_T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png 424w, https://substackcdn.com/image/fetch/$s_!Re_T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png 848w, https://substackcdn.com/image/fetch/$s_!Re_T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png 1272w, https://substackcdn.com/image/fetch/$s_!Re_T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F506126f9-dd1d-4f91-970e-29a68081fa27_729x410.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>You can build the best product on earth and watch it die quiet because nobody ever found it.</p><p>Here&#8217;s what makes it worse now. AI writes half your code. Building has never been this easy, so everyone is shipping something.</p><p>The hard part stopped being the building a while ago.</p><p>&#8288;</p><p><strong>The hard part is getting found.</strong></p><p>So if you only learn one thing this year, don&#8217;t make it another SaaS.</p><p>Learn how to put your product in front of people. Otherwise you&#8217;re just talking to yourself.</p>]]></content:encoded></item><item><title><![CDATA[Why being "just" a programmer is a dying career]]></title><description><![CDATA[Code is becoming less important. The areas where AI can&#8217;t reach yet are where you need to focus right now.]]></description><link>https://blog.victorfalcon.es/p/why-being-just-a-programmer-is-a</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/why-being-just-a-programmer-is-a</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Sun, 21 Jun 2026 11:50:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qmId!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9476e9ab-fb86-40bd-a529-daa1a0b7e89d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>As you know, I&#8217;ve been working at Factorial for two years.</p><p>The other day, <strong>a designer made their first code change</strong> in the product.</p><p>This is proof that the ability to write code is becoming less important.  </p><p>It&#8217;s also becoming more horizontal.</p><p>Anyone with general computer knowledge, will be able write code using AI, create a pull request, and launch a feature.</p><p><strong>If that&#8217;s all you can bring as a programmer, you&#8217;re fucked.  </strong></p><p><strong>&#8288;</strong></p><p>In the coming months, designers won&#8217;t be the only ones making updates.  </p><p>Product owners and even customer support will also be able to launch their own changes to the product.</p><p><strong>So if the only thing you can do right now is receive a ticket with a description and turn it into a pull request, you are fucked.  </strong></p><p>  &#8288;</p><p>Now more than ever, <strong>being a programmer has to mean something more</strong>. </p><p>It means being able to read production logs and spot optimization points, identifying bottlenecks, figuring out what&#8217;s consuming the most resources, and pinpointing the parts that are performing poorly for users.</p><p>It also involves product knowledge: thinking about how we can make the product more useful, solving user problems more effectively, and pulling the right levers to boost our product&#8217;s ARR.</p><p>As a programmer, you also need to start learning and understanding how servers work, how deployments work, and the different CI and CD processes. </p><p>All of these areas are where AI isn&#8217;t reaching yet, so you have to know how to control them.  </p><p>  &#8288;</p><p>I don&#8217;t want to alarm you. I&#8217;m a programmer too, but honestly, <strong>junior developers and mid&#8209;level engineers who only take tickets and submit pull requests are in trouble</strong>. </p><p>If you want to stay competitive in the market and keep progressing, you need to go one step further.</p>]]></content:encoded></item><item><title><![CDATA[Why 99% build products that stay at $0 MRR ❌]]></title><description><![CDATA[You think your code quality matters? Think again. The brutal reality of why your project is failing before you even launch.]]></description><link>https://blog.victorfalcon.es/p/why-99-build-products-that-stay-at</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/why-99-build-products-that-stay-at</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Tue, 16 Jun 2026 10:56:58 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qmId!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9476e9ab-fb86-40bd-a529-daa1a0b7e89d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>The key is in <strong>distribution</strong>.</p><p>If you&#8217;re not clear on that, writing code today isn&#8217;t a blocker at all.</p><p>Launching products is easier than ever, and adding new features or filters to your product is just as simple.</p><p></p><p>The key is <strong>getting your product to the right audience</strong>&#8212;and to as many people as possible within that audience.</p><p>If you are a developer like me, and you are focused on features, code quality, speed, performance, frameworks, programming languages, and all that stuff.</p><p>You&#8217;re mistaken.</p><p></p><p>I noticed all of this with <a href="https://whisper.money/?utm_source=victor_falcon&amp;utm_medium=email&amp;utm_campaign=victor_falcon">Whisper Money</a>.</p><p>I started this product about six months ago. The product is complete and functional. It covers a real need. It&#8217;s also attractive and easy to use.</p><p>But <strong>it wasn&#8217;t until I teamed up with a partner who handled marketing and distribution</strong> that the product <strong>started to take off</strong>.</p><p></p><p>As of today, our <strong>MRR keeps climbing</strong>.</p><p>Every day we&#8217;re gaining more users, getting more feedback, and building a bigger community.</p><p>And finally, it feels like the product is really starting to click.</p>]]></content:encoded></item><item><title><![CDATA[I tried 10 money apps. Then I built my own.]]></title><description><![CDATA[Six months. Zero shortcuts. One honest money app.]]></description><link>https://blog.victorfalcon.es/p/i-tried-10-money-apps-then-i-built</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/i-tried-10-money-apps-then-i-built</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Sun, 26 Apr 2026 13:45:43 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!HoFf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Six months ago, I opened my banking app on a Sunday night.</p><p>Three accounts. A Binance wallet. An apartment I rent out. An index fund I&#8217;d forgotten about.</p><p>No app on earth could show me the real picture. So I went back to my spreadsheet. Again.</p><p>That night I started building <a href="https://whisper.money?ref=victorfalcon">Whisper.money</a>. Alone.</p><p><br></p><p><em><strong>Four months in, I hit a wall.</strong></em></p><p>The product was good. But a great product nobody hears about is just an expensive hobby.</p><p>So I called <a href="https://www.youtube.com/@InvernovAH">&#193;lvaro</a> &#8212; a YouTuber I respected, with a real community and sharp instincts for what people actually want.</p><p>He said yes. Now I build, he brings the world in.</p><p><br></p><p><em><strong>Here&#8217;s the thing nobody says out loud.</strong></em></p><p>Budgeting apps don&#8217;t make you richer. They make you organized.</p><p>There&#8217;s a difference.</p><p>Most apps show you what you *spent*. None of them show you what you actually *own* &#8212; across banks, crypto, real estate, funds, the whole mess.</p><p>And the ones that try? They sell your data to do it.</p><p>We&#8217;re building the opposite.</p><p><br></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!HoFf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!HoFf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!HoFf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!HoFf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!HoFf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!HoFf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png" width="1200" height="630" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/edb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:630,&quot;width&quot;:1200,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Whisper Money&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Whisper Money" title="Whisper Money" srcset="https://substackcdn.com/image/fetch/$s_!HoFf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png 424w, https://substackcdn.com/image/fetch/$s_!HoFf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png 848w, https://substackcdn.com/image/fetch/$s_!HoFf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png 1272w, https://substackcdn.com/image/fetch/$s_!HoFf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fedb82906-20c8-4ad6-a1f6-4b03b7539877_1200x630.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><em><strong>&#128036; <a href="https://whisper.money?ref=victorfalcon">Whisper.Money</a> &#8212; three things that make it different:</strong></em></p><p>- <strong>Everything in one place.</strong> Banks, Binance, Bitpanda, real estate, index funds. Your full net worth. Not just last month&#8217;s coffee spend.</p><p>- <strong>Actionable, not decorative.</strong> Pretty charts are easy. Telling you *what to do next* is hard. That&#8217;s the whole product.</p><p>- <strong>Your data is yours.</strong> No selling. No sharing. No third parties. That&#8217;s why it&#8217;s called Whisper.</p><p><br></p><p><em><strong>We launch May 4th &#128467;&#65039;.</strong></em></p><p>Bank connections cost real money, so we can&#8217;t make it free. But the first 100 users on the waitlist get <strong>early access + a free discount forever</strong> at won&#8217;t come back.</p><p>Move up the queue by inviting friends. Simple as that.</p><p><strong>&#128279; Join the waitlist &#8594; <a href="https://whisper.money?ref=victorfalcon">https://whisper.money</a></strong></p><p><br></p><p>I&#8217;ve worked nights, weekends, and every gap between 9 and 5 for six months to build this.</p><p>Not because the world needs another finance app.</p><p>Because it needs one that actually tells you the truth.</p><p>&#8212; Victor</p>]]></content:encoded></item><item><title><![CDATA[Join Kaiden: AI nutrition + workouts — free forever for early testers]]></title><description><![CDATA[Kaiden is an AI nutritionist and fitness coach. Join our private Android test today and get a free, forever, unlimited license.]]></description><link>https://blog.victorfalcon.es/p/join-kaiden-ai-nutrition-workouts</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/join-kaiden-ai-nutrition-workouts</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Thu, 16 Oct 2025 12:16:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qmId!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9476e9ab-fb86-40bd-a529-daa1a0b7e89d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Hi,</p><p>I need your help.</p><p>I&#8217;m working on <strong>kaiden.chat</strong>, an AI personal nutritionist and fitness coach, and I need testers on Android.</p><p>With Kaiden you can log meals with text or photos, get instant calories/macros, personalized meal suggestions, and adaptive workout plans, all synced across devices. </p><p>We&#8217;re inviting  &#129302; <strong>Android</strong> users to join our private test and help shape the app. Install the app and share feedback directly with me at <a href="mailto:victorfalcon@duck.com">victorfalcon@duck.com</a>. </p><p>Everyone who signs up now gets a free, forever, unlimited license.</p><p>Sign in now:</p><ul><li><p>Android: <a href="https://play.google.com/store/apps/details?id=chat.kaiden.twa">https://play.google.com/store/apps/details?id=chat.kaiden.twa</a></p></li><li><p>Test signup (web): <a href="https://play.google.com/apps/testing/chat.kaiden.twa">https://play.google.com/apps/testing/chat.kaiden.twa</a></p></li></ul><p>Thanks,</p>]]></content:encoded></item><item><title><![CDATA[Your Ultimate SaaS Boilerplate (25% Discount)]]></title><description><![CDATA[Launch your next SaaS in hours with the single-command boilerplate you were looking for.]]></description><link>https://blog.victorfalcon.es/p/your-ultimate-saas-boilerplate-2</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/your-ultimate-saas-boilerplate-2</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Mon, 04 Nov 2024 07:25:51 GMT</pubDate><enclosure url="https://api.substack.com/feed/podcast/151109389/6c012954b848d1740127e1d3694a49af.mp3" length="0" type="audio/mpeg"/><content:encoded><![CDATA[<p><strong>Are you ready to take your SaaS idea from concept to launch in record time?</strong><br>With <strong><a href="https://laravelshipper.com?ref=victorfalcon.es">Laravel Shipper</a></strong>, you can do just that&#8212;effortlessly! </p><p>This powerful Laravel boilerplate enables you to <strong>create your SaaS product with a single command</strong>, saving you precious time and allowing you to focus on what truly matters: solving problems for your users.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!-fdi!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7b657cf-6825-42c7-aebe-ef26f63ad6de_832x448.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!-fdi!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7b657cf-6825-42c7-aebe-ef26f63ad6de_832x448.png 424w, https://substackcdn.com/image/fetch/$s_!-fdi!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7b657cf-6825-42c7-aebe-ef26f63ad6de_832x448.png 848w, https://substackcdn.com/image/fetch/$s_!-fdi!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7b657cf-6825-42c7-aebe-ef26f63ad6de_832x448.png 1272w, https://substackcdn.com/image/fetch/$s_!-fdi!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7b657cf-6825-42c7-aebe-ef26f63ad6de_832x448.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!-fdi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7b657cf-6825-42c7-aebe-ef26f63ad6de_832x448.png" width="832" height="448" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e7b657cf-6825-42c7-aebe-ef26f63ad6de_832x448.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:448,&quot;width&quot;:832,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:623014,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!-fdi!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7b657cf-6825-42c7-aebe-ef26f63ad6de_832x448.png 424w, https://substackcdn.com/image/fetch/$s_!-fdi!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7b657cf-6825-42c7-aebe-ef26f63ad6de_832x448.png 848w, https://substackcdn.com/image/fetch/$s_!-fdi!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7b657cf-6825-42c7-aebe-ef26f63ad6de_832x448.png 1272w, https://substackcdn.com/image/fetch/$s_!-fdi!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe7b657cf-6825-42c7-aebe-ef26f63ad6de_832x448.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><h4><strong>Why Laravel Shipper?</strong></h4><p>In the fast-paced world of software development, time is of the essence. Laravel Shipper is designed to help you launch your app in days, not weeks or months. With just one command, you&#8217;ll have a fully functional application that includes:</p><ul><li><p><strong>Authentication</strong>: Secure user login and registration.</p></li><li><p><strong>Billing</strong>: Integrated payment processing to handle subscriptions and one-time payments.</p></li><li><p><strong>Lifetime Licenses</strong>: Offer your users the flexibility they need.</p></li><li><p><strong>Leads Generation</strong>: Capture potential customers right from the start.</p></li><li><p><strong>Beautiful Landing Page</strong>: A professional-looking page to showcase your product.</p></li></ul><p></p><h4><strong>Focus on What Matters</strong></h4><p>With Laravel Shipper, you can concentrate on the problem you&#8217;re trying to solve instead of getting bogged down by the generic setup processes that don&#8217;t add value to your business. </p><p><strong>Do you have a brilliant idea?</strong> Create a landing page in less than an hour and start capturing emails from interested users&#8212;or even better, start selling licenses! </p><p>There&#8217;s no better way to validate your idea than to get it in front of potential customers quickly.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2O4V!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511af621-7698-4c25-9b8b-5605919e2c9d_849x402.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2O4V!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511af621-7698-4c25-9b8b-5605919e2c9d_849x402.png 424w, https://substackcdn.com/image/fetch/$s_!2O4V!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511af621-7698-4c25-9b8b-5605919e2c9d_849x402.png 848w, https://substackcdn.com/image/fetch/$s_!2O4V!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511af621-7698-4c25-9b8b-5605919e2c9d_849x402.png 1272w, https://substackcdn.com/image/fetch/$s_!2O4V!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511af621-7698-4c25-9b8b-5605919e2c9d_849x402.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2O4V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511af621-7698-4c25-9b8b-5605919e2c9d_849x402.png" width="849" height="402" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/511af621-7698-4c25-9b8b-5605919e2c9d_849x402.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:402,&quot;width&quot;:849,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:133185,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2O4V!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511af621-7698-4c25-9b8b-5605919e2c9d_849x402.png 424w, https://substackcdn.com/image/fetch/$s_!2O4V!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511af621-7698-4c25-9b8b-5605919e2c9d_849x402.png 848w, https://substackcdn.com/image/fetch/$s_!2O4V!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511af621-7698-4c25-9b8b-5605919e2c9d_849x402.png 1272w, https://substackcdn.com/image/fetch/$s_!2O4V!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F511af621-7698-4c25-9b8b-5605919e2c9d_849x402.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p></p><h4><strong>One Command, Two Code, Three Launch!</strong></h4><p>Why wait? Get <strong>Laravel Shipper</strong> today and make your first dollar online! </p><p>Stop spending days on a project that may not resonate with your audience. </p><p>Launch a landing page now, validate your idea, and start your journey toward building a successful SaaS business.</p><p></p><h4>Pricing</h4><p>You can purchase a single license for $29.99, or an unlimited for $109.99. <strong>This prices will increase soon.</strong></p><p>Also, because your are subscribed to this newsletter, with the code <code>VICTOR25</code>, you can get an extra <strong>25% discount until Friday 8th</strong>.</p>]]></content:encoded></item><item><title><![CDATA[The Laravel SaaS Boilerplate you have ever wanted]]></title><description><![CDATA[Start your next SaaS Project with Laravel and a single command.]]></description><link>https://blog.victorfalcon.es/p/the-laravel-saas-boilerplate-you</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/the-laravel-saas-boilerplate-you</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Mon, 30 Sep 2024 10:08:55 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qmId!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9476e9ab-fb86-40bd-a529-daa1a0b7e89d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I&#8217;m working on a Laravel Boilerplate to create a SaaS product.</p><p>The good thing about it, it&#8217;s not a project you have to clone, it&#8217;s just a Laravel package you have to install.</p><blockquote><p><strong>&#8505; If you want to test this boilerplate for free, <a href="https://x.com/victoor/status/1840451204822016136">write me on this tweet</a>.</strong></p></blockquote><p>You can continue using Laravel as you have been doing until now. It&#8217;s just a single command that will provide your project with:</p><ul><li><p>Authentication.</p></li><li><p>Monthly or Yearly subscriptions with Stripe.</p></li><li><p>Single Pay Licenses.</p></li><li><p>UI Components and an already build landing page with:</p><ul><li><p>Company logos.</p></li><li><p>FAQ.</p></li><li><p>Prices.</p></li><li><p>Testimonials.</p></li><li><p>&#8230; and more.</p></li></ul></li><li><p>Legal pages: privacy policy and Terms of Services.</p></li></ul><p>And, the best thing.</p><p><strong>You can use Blade, React, VueJS or InertiaJS with or without Typescript.</strong></p><div><hr></div><p><strong>Would you use something like this? </strong></p><p><strong>Do you want to access the first beta for free?</strong></p><p><strong>&#8618; <a href="https://x.com/victoor/status/1840451204822016136">Write me on this tweet.</a></strong></p>]]></content:encoded></item><item><title><![CDATA[What happened to Monse?]]></title><description><![CDATA[In recent months many things have changed in Monse, a project that was almost abandoned is now back with more energy than ever.]]></description><link>https://blog.victorfalcon.es/p/what-happened-to-monse</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/what-happened-to-monse</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Thu, 23 Nov 2023 15:01:01 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qmId!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9476e9ab-fb86-40bd-a529-daa1a0b7e89d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I haven't talked about <a href="https://monseapp.com/coming-soon?utm_source=victorfalcon&amp;utm_medium=email&amp;utm_campaign=north+america+launch&amp;utm_id=victorfalcon">Monse</a> for a while and I think I owe you explanations (I also feel like giving you one).</p><p>If you follow the project, since the beginning it has gone through several different phases.</p><ul><li><p>I started fully on the project, super motivated and active. I dedicated time to it practically every day and the pace of updates was frenetic.</p></li><li><p>As time went by, I was still motivated, but I focused more on getting users and increasing MRR.</p></li><li><p>Then, there were problems, the costs of the service increased and the MRR did not take off, and the project became half abandoned. Consider selling it, making it open source, closing it, etc.</p></li></ul><p>In the end, after a few months of inactivity, the project returns with more enthusiasm than ever.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!6j0k!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61332350-0e05-4285-ab46-9f7f613b2048_720x72.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!6j0k!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61332350-0e05-4285-ab46-9f7f613b2048_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!6j0k!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61332350-0e05-4285-ab46-9f7f613b2048_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!6j0k!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61332350-0e05-4285-ab46-9f7f613b2048_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!6j0k!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61332350-0e05-4285-ab46-9f7f613b2048_720x72.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!6j0k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61332350-0e05-4285-ab46-9f7f613b2048_720x72.png" width="720" height="72" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/61332350-0e05-4285-ab46-9f7f613b2048_720x72.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:72,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:468,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!6j0k!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61332350-0e05-4285-ab46-9f7f613b2048_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!6j0k!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61332350-0e05-4285-ab46-9f7f613b2048_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!6j0k!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61332350-0e05-4285-ab46-9f7f613b2048_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!6j0k!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F61332350-0e05-4285-ab46-9f7f613b2048_720x72.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h3>Monse has been partially acquired</h3><p><strong>Two people, with a lot of potential and experience in the sector, have bought a large part of the application with the intention of taking it to the next level.</strong></p><p>I still maintain a part of the application and I am still an active part of the development, although I am no longer alone.</p><p>They have great ideas that we are currently working on.</p><ul><li><p>First, we are going to <strong>add more bank providers</strong> to the platform and will be <a href="https://monseapp.com/coming-soon?utm_source=victorfalcon&amp;utm_medium=email&amp;utm_campaign=north+america+launch&amp;utm_id=victorfalcon">compatible with banks in the United States and Canada</a>, in addition to adding credit cards and loans. The idea is to reach beyond my Twitter account.</p></li><li><p>We want to add <strong>budgeting functionalities</strong> and detect <strong>recurring charges</strong> like those that come from subscriptions (Netflix, Spotify, etc.)</p></li><li><p>We are going to <strong>improve current compatibility with bank in EU</strong>. Right now we are having some problems creating new connections.</p></li><li><p>We are going to <strong>relaunch iOS and Android app</strong>. Maybe we can add some widgets to the Android app too.</p></li><li><p>We are going to <strong>invest in ads</strong>, and focus on USA market. The idea is to reach beyond my Twitter account.</p></li></ul><p>We will see how everything progresses, it is too early to draw conclusions, but I am sure that Monse will become the best tool to manage your assets.</p><p><strong>If you are interested in knowing the full story of this acquisition and how the tool evolves, <a href="https://blog.victorfalcon.es">subscribe</a> and, of course, register in <a href="https://monseapp.com/coming-soon?utm_source=victorfalcon&amp;utm_medium=email&amp;utm_campaign=north+america+launch&amp;utm_id=victorfalcon">Monse</a>.</strong></p>]]></content:encoded></item><item><title><![CDATA[My Salary as a Developer and Companies that practice salary transparency]]></title><description><![CDATA[This is how my salary has evolved over the last 12 years. My entire career as a developer in a single post.]]></description><link>https://blog.victorfalcon.es/p/my-salary-as-a-developer-and-companies</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/my-salary-as-a-developer-and-companies</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Fri, 27 Oct 2023 14:31:26 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Wgic!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>In the previous post we talked about <a href="https://blog.victorfalcon.es/p/my-salary-and-why-i-believe-in-salary">salary transparency and its benefits</a>.</p><p>Today I want to share with you some companies that are applying this transparency to its core.</p><p>The first company I saw that practiced this was Buffer. Buffer it&#8217;s an <a href="https://buffer.com/open">open company</a> since day one and they are sharing their salaries publicly.</p><p>Here you can see all the <a href="https://buffer.com/salaries">buffer employee&#8217;s and his salaries</a>. And even more, they created a <a href="https://buffer.com/salary-calculator/senior-product-designer/intermediate">salary calculator</a> so you, and everyone, can know how much they will earn working for buffer.</p><p>For me, it&#8217;s the perfect company mindset. No more people earning more than you just because they negotiate their salary better than you. Your salary depends in your level as a developer and your location (cost of living).</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!rg1d!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080b6111-7a39-4fb1-92cf-7ddedaa7c4ba_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!rg1d!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080b6111-7a39-4fb1-92cf-7ddedaa7c4ba_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!rg1d!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080b6111-7a39-4fb1-92cf-7ddedaa7c4ba_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!rg1d!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080b6111-7a39-4fb1-92cf-7ddedaa7c4ba_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!rg1d!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080b6111-7a39-4fb1-92cf-7ddedaa7c4ba_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!rg1d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080b6111-7a39-4fb1-92cf-7ddedaa7c4ba_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/080b6111-7a39-4fb1-92cf-7ddedaa7c4ba_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!rg1d!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080b6111-7a39-4fb1-92cf-7ddedaa7c4ba_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!rg1d!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080b6111-7a39-4fb1-92cf-7ddedaa7c4ba_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!rg1d!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080b6111-7a39-4fb1-92cf-7ddedaa7c4ba_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!rg1d!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F080b6111-7a39-4fb1-92cf-7ddedaa7c4ba_2x2.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p>Another companies sharing salaries are <a href="http://ghost.org/open/">Ghost CMS</a>, <a href="http://gumroad.com/company">Gumroad</a>, and <a href="https://keepler.io/2018/05/la-transparencia-y-mejora-continua-como-valores-culturales-haciendo-publicos-los-salarios/">Keepler</a> who also has a <a href="https://keepler.io/calculadora-salarial/">public Salary Calculator</a>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!meMf!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55f35fdc-7360-4c2a-bc26-cab9a82fdefd_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!meMf!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55f35fdc-7360-4c2a-bc26-cab9a82fdefd_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!meMf!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55f35fdc-7360-4c2a-bc26-cab9a82fdefd_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!meMf!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55f35fdc-7360-4c2a-bc26-cab9a82fdefd_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!meMf!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55f35fdc-7360-4c2a-bc26-cab9a82fdefd_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!meMf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55f35fdc-7360-4c2a-bc26-cab9a82fdefd_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55f35fdc-7360-4c2a-bc26-cab9a82fdefd_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!meMf!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55f35fdc-7360-4c2a-bc26-cab9a82fdefd_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!meMf!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55f35fdc-7360-4c2a-bc26-cab9a82fdefd_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!meMf!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55f35fdc-7360-4c2a-bc26-cab9a82fdefd_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!meMf!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55f35fdc-7360-4c2a-bc26-cab9a82fdefd_2x2.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><h2>My Salary evolution as a Developer</h2><p>As a person who likes transparency, now it's my turn.</p><p>This has been my salary evolution as a programmer from my first job to my current one.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Wgic!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Wgic!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png 424w, https://substackcdn.com/image/fetch/$s_!Wgic!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png 848w, https://substackcdn.com/image/fetch/$s_!Wgic!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png 1272w, https://substackcdn.com/image/fetch/$s_!Wgic!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Wgic!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png" width="1456" height="835" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/df181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:835,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:303009,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Wgic!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png 424w, https://substackcdn.com/image/fetch/$s_!Wgic!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png 848w, https://substackcdn.com/image/fetch/$s_!Wgic!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png 1272w, https://substackcdn.com/image/fetch/$s_!Wgic!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fdf181f84-b9c1-4b8f-a2b1-fd32e7998b17_1947x1116.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I have been working as a Developer for +12 years now and this have been my career until now.</p><p>I moved from Gran Canaria to Madrid to work at <strong>Clever Consulting</strong>, a small agency where we make websites mainly with WordPress and Prestashop. We also did some tools with Ruby on Rails. I learned a lot, it was my first job.</p><p>Then I moved to <strong>Chicfy</strong> and from Madrid to Malaga. Chicfy was a small start-up that was competing with WallaPop and Vinted. At the end, Vinted bought us. It was my first job at a startup and I love it. I discovered myself as a product developer.</p><p>My next step was <strong>Wallbox</strong>. When I joined it was a &#8220;small&#8221; company with about 15 developers, and after 4-5 years it became a huge company with more than 50 developers. There I learned a lot about how to scale, how to work with microservices, event driven design, hexagonal architecture, DDD, and more.</p><p>After 5 years I received a bug offer from <strong>Spryker</strong>, an offer that I can&#8217;t reject, but I should. At Spryker I was not happy, I was working on a demo team and I were not working on the product itself. I was not working on what I like. That&#8217;s why I left after less than a year.</p><p>Right now I&#8217;m working at <strong>AltoVita</strong>, a company based in London, but working from home. It&#8217;s too soon to tell you anything, but I feel super happy here, working on the product, and try to improve it as much as I can since day one.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!hk9T!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F267b0e8f-cfc9-42f1-8130-5283bd921022_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!hk9T!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F267b0e8f-cfc9-42f1-8130-5283bd921022_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!hk9T!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F267b0e8f-cfc9-42f1-8130-5283bd921022_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!hk9T!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F267b0e8f-cfc9-42f1-8130-5283bd921022_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!hk9T!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F267b0e8f-cfc9-42f1-8130-5283bd921022_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!hk9T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F267b0e8f-cfc9-42f1-8130-5283bd921022_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/267b0e8f-cfc9-42f1-8130-5283bd921022_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!hk9T!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F267b0e8f-cfc9-42f1-8130-5283bd921022_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!hk9T!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F267b0e8f-cfc9-42f1-8130-5283bd921022_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!hk9T!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F267b0e8f-cfc9-42f1-8130-5283bd921022_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!hk9T!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F267b0e8f-cfc9-42f1-8130-5283bd921022_2x2.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>One more thing</h2><p>I have some important news about Monse. A few days ago a I signed a contract with some interesting changes in a company level.</p><p>I want to wait a few days before giving details, but that will be my next post so, <strong>share this one and subscribe</strong>.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.victorfalcon.es/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.victorfalcon.es/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[My salary and why I believe in salary transparency]]></title><description><![CDATA[I think sharing your salary transparently benefits employees, and the more we share it, the better.]]></description><link>https://blog.victorfalcon.es/p/my-salary-and-why-i-believe-in-salary</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/my-salary-and-why-i-believe-in-salary</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Mon, 23 Oct 2023 08:01:25 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!8vPM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I have sometimes shared my salary on Twitter, by sharing my career or responding to randoms tweets.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8vPM!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8vPM!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png 424w, https://substackcdn.com/image/fetch/$s_!8vPM!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png 848w, https://substackcdn.com/image/fetch/$s_!8vPM!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png 1272w, https://substackcdn.com/image/fetch/$s_!8vPM!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8vPM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png" width="593" height="478" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:478,&quot;width&quot;:593,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:71064,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8vPM!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png 424w, https://substackcdn.com/image/fetch/$s_!8vPM!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png 848w, https://substackcdn.com/image/fetch/$s_!8vPM!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png 1272w, https://substackcdn.com/image/fetch/$s_!8vPM!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F1abd26aa-7e7c-44b8-876f-f9da9bad0a36_593x478.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>I did it when I was earning 1,200 a month and now that I am earning 4,000. </p><p>I don't do it out of arrogance, I don't think I'm better than anyone else, but before when I said it, nothing happened and now there are people who resent it.</p><p>If I have a good salary and I share it, I am a conceited person, if I have a normal salary and I share it, I am not.</p><p>When I am with a person in private, I don't shout out my salary, but if he asks me I tell him without any problem.</p><p>On Twitter, I post whatever I feel like, I don't think about a specific person, so I just blurt out these kinds of things and others without thinking too much about it.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!m37U!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b49e91d-accd-4424-b2d1-6b8fd341eec0_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!m37U!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b49e91d-accd-4424-b2d1-6b8fd341eec0_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!m37U!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b49e91d-accd-4424-b2d1-6b8fd341eec0_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!m37U!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b49e91d-accd-4424-b2d1-6b8fd341eec0_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!m37U!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b49e91d-accd-4424-b2d1-6b8fd341eec0_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!m37U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b49e91d-accd-4424-b2d1-6b8fd341eec0_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/2b49e91d-accd-4424-b2d1-6b8fd341eec0_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!m37U!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b49e91d-accd-4424-b2d1-6b8fd341eec0_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!m37U!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b49e91d-accd-4424-b2d1-6b8fd341eec0_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!m37U!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b49e91d-accd-4424-b2d1-6b8fd341eec0_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!m37U!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F2b49e91d-accd-4424-b2d1-6b8fd341eec0_2x2.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>The reality is that <strong>I believe in salary transparency</strong>. </p><p>I think we are the employees who benefit from it and I think we should share it more.</p><p>Sharing your salary favors the elimination of the gender gap and avoids discrimination. </p><p>It also gives more bargaining power to workers, and favors fairer salaries within the same company and outside it.</p><p>And, believe it or not, there are companies that publicly share the salary of all their employees, and everyone knows how much the person next to them earns.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!FClJ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87e117dd-366f-4bf6-b729-f55c6b58ae8a_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!FClJ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87e117dd-366f-4bf6-b729-f55c6b58ae8a_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!FClJ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87e117dd-366f-4bf6-b729-f55c6b58ae8a_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!FClJ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87e117dd-366f-4bf6-b729-f55c6b58ae8a_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!FClJ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87e117dd-366f-4bf6-b729-f55c6b58ae8a_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!FClJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87e117dd-366f-4bf6-b729-f55c6b58ae8a_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/87e117dd-366f-4bf6-b729-f55c6b58ae8a_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!FClJ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87e117dd-366f-4bf6-b729-f55c6b58ae8a_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!FClJ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87e117dd-366f-4bf6-b729-f55c6b58ae8a_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!FClJ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87e117dd-366f-4bf6-b729-f55c6b58ae8a_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!FClJ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F87e117dd-366f-4bf6-b729-f55c6b58ae8a_2x2.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>I am preparing an email in which I will show you the evolution of my salary from my first job to my current one.</p><p>I will also share with you some companies that practice this salary transparency.</p><p><strong><a href="https://blog.victorfalcon.es/subscribe?">Leave me your email</a> </strong>and<strong> <a href="https://blog.victorfalcon.es/publish/post/https://blog.victorfalcon.es/p/my-salary-and-why-i-believe-in-salary?utm_source=substack&utm_medium=email&utm_content=share&action=share">share this article</a></strong>, I'll let you know as soon as I publish it &#128521;.</p><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.victorfalcon.es/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe now&quot;,&quot;action&quot;:null,&quot;class&quot;:null}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.victorfalcon.es/subscribe?"><span>Subscribe now</span></a></p>]]></content:encoded></item><item><title><![CDATA[How to create a SaaS with Laravel in days, not weeks]]></title><description><![CDATA[I created three SaaS last year. The first one took me about a month, the last one only 3 days. These are the reasons and how you can shorten the time as much as possible]]></description><link>https://blog.victorfalcon.es/p/how-to-create-a-saas-with-laravel</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/how-to-create-a-saas-with-laravel</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Sun, 01 Oct 2023 15:01:56 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!Zcrk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>My first SaaS product took me about a month or two from beginning to release. </p><p><strong><a href="https://metricswave.com?utm_source=victorfalcon">MetricsWave</a> was making sales three days after starting development. A week later he had already sold $300 worth of licenses.</strong></p><p>Launching quickly is one of the best decisions you can make when creating a SaaS. The sooner your product is in production, the sooner you will start to get feedback.</p><p>So, how can you launch your product in days instead of weeks?</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!isuz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89748140-192d-4957-a3d3-87550e896195_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!isuz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89748140-192d-4957-a3d3-87550e896195_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!isuz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89748140-192d-4957-a3d3-87550e896195_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!isuz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89748140-192d-4957-a3d3-87550e896195_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!isuz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89748140-192d-4957-a3d3-87550e896195_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!isuz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89748140-192d-4957-a3d3-87550e896195_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89748140-192d-4957-a3d3-87550e896195_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!isuz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89748140-192d-4957-a3d3-87550e896195_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!isuz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89748140-192d-4957-a3d3-87550e896195_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!isuz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89748140-192d-4957-a3d3-87550e896195_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!isuz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89748140-192d-4957-a3d3-87550e896195_2x2.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><h3>1. Choose the right stack</h3><p>In my case, I make all SaaS with <a href="https://laravel.com/">Laravel</a> and <a href="https://react.dev/">React.js</a> or <a href="https://laravel-livewire.com/">Laravel Livewire</a>, why? Because is the framework I already know and the one with I&#8217;m faster.</p><p>Although, Laravel with gives me some <a href="https://laravel.com/docs/10.x/starter-kits">starter kits</a> with which I can have registration, login and user profile in a second.</p><p>And with <a href="https://laravel.com/docs/10.x/billing">Laravel Cashier</a> I can connect Stripe, and start receiving payments in minutes.</p><p>But in your case it may be different. If you don't know PHP or Laravel, you may be faster using Ruby On Rails, Node.js, or any other language or framework. </p><p><strong>Let me tell you something: Nobody really cares.</strong> Seriously, there are no users who care what language or framework is behind an application.</p><p>The advice is clear, <strong>use the one with which you are most comfortable and fastest</strong>.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wSEu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wSEu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wSEu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wSEu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>2. Define the right MVP</h3><p>Ok, now you know how to build it, but what are we going to do?</p><p>Ok, now you know how to build it, but what are we going to do? I'm not talking about the idea, I'll leave that to you, but about that idea, what is essential and what is not? </p><p><strong>What is the minimum we can do so that the user has a functional tool that solves their problem? </strong>That&#8217;s the question. Everything else should be built after launch, not before.</p><p><strong>I'm going to tell you a secret.</strong> As of today, months after launch, MetricsWave does not have any limitations on free accounts.</p><p>You can pay and upgrade your account plan, but free accounts only see a warning when you exceed the limit. The rest continues to work exactly the same.</p><p>Why? Because that&#8217;s not my focus right now. My objective it&#8217;s to keep improving the application a make sure that it solves the problem of having good website analytics in a convenient and privacy-friendly way.</p><p><strong>So, in summary, build only what is essential.</strong> Think about the problem and solve it. The rest will either be done or not.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!VeDR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8be539-306b-4ff9-a58f-6ed9ce0fd6a4_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!VeDR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8be539-306b-4ff9-a58f-6ed9ce0fd6a4_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!VeDR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8be539-306b-4ff9-a58f-6ed9ce0fd6a4_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!VeDR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8be539-306b-4ff9-a58f-6ed9ce0fd6a4_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!VeDR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8be539-306b-4ff9-a58f-6ed9ce0fd6a4_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!VeDR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8be539-306b-4ff9-a58f-6ed9ce0fd6a4_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/eb8be539-306b-4ff9-a58f-6ed9ce0fd6a4_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!VeDR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8be539-306b-4ff9-a58f-6ed9ce0fd6a4_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!VeDR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8be539-306b-4ff9-a58f-6ed9ce0fd6a4_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!VeDR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8be539-306b-4ff9-a58f-6ed9ce0fd6a4_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!VeDR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Feb8be539-306b-4ff9-a58f-6ed9ce0fd6a4_2x2.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>3. Use the right tools and APIs</h3><p>You don't need to reinvent the wheel. There are tools out there that can make the entire process easier.</p><p>You can use the <a href="https://stripe.com/docs/no-code/customer-portal">Stripe Customer Portal</a> to allow your users to manage their subscription and payments. Or the <a href="https://stripe.com/en-es/payments/payment-links">Payment Links</a> to start receiving payments without developing anything.</p><p>Do you need an application, or can it start with just a form? Can you solve the problem with a few emails?</p><p>Maybe you can solve the problem creating a basic shop with <a href="https://www.shopify.com/">Shopify</a>, or sell your content with <a href="https://substack.com/">Substack</a>.</p><p>Check if there is the perfect tool for you and the problem you want to solve. Most of the time it is not necessary to program an ultra-complex tool.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wSEu!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wSEu!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wSEu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:&quot;&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" title="" srcset="https://substackcdn.com/image/fetch/$s_!wSEu!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!wSEu!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F4d35b7f5-6a4a-4707-adca-baf3935fba54_2x2.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>4. And, the most important</h3><p>If you want to make sales, this is the best advice I can give you:</p><p><strong>You don't really need a product to start making sales.</strong></p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Zcrk!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Zcrk!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png 424w, https://substackcdn.com/image/fetch/$s_!Zcrk!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png 848w, https://substackcdn.com/image/fetch/$s_!Zcrk!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png 1272w, https://substackcdn.com/image/fetch/$s_!Zcrk!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Zcrk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png" width="1032" height="393" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:393,&quot;width&quot;:1032,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:130152,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Zcrk!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png 424w, https://substackcdn.com/image/fetch/$s_!Zcrk!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png 848w, https://substackcdn.com/image/fetch/$s_!Zcrk!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png 1272w, https://substackcdn.com/image/fetch/$s_!Zcrk!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F43f2f8c7-acd8-4bf0-a1c9-85bbfd46399a_1032x393.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>Believe it or not, you can sell without having an app or a product.</p><p>Knowing how to explain the problem and what the solution will be like already gives value and can make many people end up buying future licenses for that app.</p><p>With MetricsWave I achieved sales before launching the product. It was just a landing page explaining what I was going to build and what the tool would be like.</p><p>I also promised to do it if a certain level of sales was reached or return all the money otherwise.</p><p>Also create a roadmap to explain when the initial version would be available, what features it will have and when the next new features will arrive.</p><p></p>]]></content:encoded></item><item><title><![CDATA[Three Keys to Create a maintainable Laravel Application]]></title><description><![CDATA[These are all my learnings after been working and building more than 25 laravel projects.]]></description><link>https://blog.victorfalcon.es/p/three-keys-to-create-a-maintainable</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/three-keys-to-create-a-maintainable</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Wed, 27 Sep 2023 07:00:19 GMT</pubDate><enclosure url="https://substack-post-media.s3.amazonaws.com/public/images/5bf7822a-3da1-40a6-94cc-c69b469239f5_1000x420.webp" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>Laravel is a framework that gives you a lot of freedom. It allows you to structure your application code as you wish.</p><p>You can decide to put all the code in the controller, you can create use cases, DDD, or use jobs to host all your logic.</p><p>Thanks to <a href="https://developerjoy.co/?utm_source=devto&amp;utm_medium=poat&amp;utm_campaign=laravel&amp;utm_id=693262&amp;utm_term=laravel">developerjoy.co</a> I have been able to work on dozens of different projects and I have seen first-hand what makes a Laravel application easy to maintain as it grows.</p><p>For me, if I had to keep only three keys, they would be the following:</p><h4>Table Of Contents</h4><ul><li><p><a href="https://dev.to/victoor/three-keys-to-create-a-maintainable-laravel-application-2e2n#events">Use Events and Listeners</a></p></li><li><p><a href="https://dev.to/victoor/three-keys-to-create-a-maintainable-laravel-application-2e2n#testing">Tests everything, it's super important</a></p></li><li><p><a href="https://dev.to/victoor/three-keys-to-create-a-maintainable-laravel-application-2e2n#ddd">Embrace DDD and create Modules</a></p></li></ul><div><hr></div><h3>Use Events and Listeners</h3><p>It is very common, in all applications, to have to do something extra after a simple use case.</p><p>For example, send an email, after creating a user.</p><p>This type of case tends to dirty our use cases and forces us to add more and more logic. In addition, we make the use case slower and slower, and the user has to wait longer.</p><p>Why does the user have to wait, when they register, for us to send an email?, for example. Has no sense.</p><p>To avoid this and keep our use cases clean, <strong>you should use events and listeners</strong>.</p><p>Create a <code>UserCreated</code> event and a <code>SendWelcomeMailOnUserCreated</code> listener.</p><p>Every time you need to do something else in a use case, you will simply have to create the listener. Your use case will be able to continue working as is, without any changes.</p><div><hr></div><h3>Tests everything, it's super important</h3><p>I know, making tests is boring and a waste of time. Really?</p><p>Apart from making sure that the basic use cases still work, it will also help you keep your code clean. You do not believe me?</p><p>If you test your use cases you will be able to refactor the code when and how you want without breaking anything. This is something of a superpower.</p><p>Do you want to simplify your use case and start launching events? Do you want to move your site code? No problem. First write a test and then you can play what you want with the assurance that you are not breaking anything.</p><p>Plus, testing in Laravel is easy.</p><p>Most of the time, testing an endpoint is just a couple of lines. It's easy to make and quick to execute.</p><p>Really, there is no turning back. When you prove the value that the tests give you, you will not stop writing them.</p><div><hr></div><h3>Embrace DDD and create Modules</h3><p>When an application with Laravel grows we find many models, controllers, events, listeners and jobs together in the same folder.</p><p>This makes it impossible to have a context of what is happening with our model.</p><p>Imagine that you are working with the user, and you need to update a use case, the registration case, for example.</p><p>By having everything together it is impossible, at a single glance, to see everything that affects our user model, in which controllers it is being used and what events it launches.</p><p>Using DDD, you will separate your code into modules and be able to see at a glance what you are working on.</p><p>Personally I like to create a <code>src</code> folder and there create a Module for each model or entity.</p><p>In the end it would be like this:</p><pre><code><code>/src
   /Users
      User.php
      /Listeners
      /Controllers
      /Events
      /Providers
      ...
   /Posts
      Post.php
      ...
   ...
</code></code></pre><p>Believe me, in the end, as your application grows, you will appreciate it.</p>]]></content:encoded></item><item><title><![CDATA[Should I relaunch Monse?]]></title><description><![CDATA[or not? Let's review my reasons for doing so...]]></description><link>https://blog.victorfalcon.es/p/should-i-relaunch-monse</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/should-i-relaunch-monse</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Thu, 14 Sep 2023 13:00:47 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!qmId!,w_256,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9476e9ab-fb86-40bd-a529-daa1a0b7e89d_400x400.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I closed registrations three weeks ago because they were not working basically.</p><p>After three weeks or so with the project paused I still think it makes sense. I still thinks that the product can make money, be useful, and find his niche, but with a few changes.</p><p>That&#8217;s why I posted this a few days ago.</p><p></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!siQK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93c6d1fb-eb59-4306-86db-35a35e249e19_594x190.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!siQK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93c6d1fb-eb59-4306-86db-35a35e249e19_594x190.png 424w, https://substackcdn.com/image/fetch/$s_!siQK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93c6d1fb-eb59-4306-86db-35a35e249e19_594x190.png 848w, https://substackcdn.com/image/fetch/$s_!siQK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93c6d1fb-eb59-4306-86db-35a35e249e19_594x190.png 1272w, https://substackcdn.com/image/fetch/$s_!siQK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93c6d1fb-eb59-4306-86db-35a35e249e19_594x190.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!siQK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93c6d1fb-eb59-4306-86db-35a35e249e19_594x190.png" width="594" height="190" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/93c6d1fb-eb59-4306-86db-35a35e249e19_594x190.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:190,&quot;width&quot;:594,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:27813,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!siQK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93c6d1fb-eb59-4306-86db-35a35e249e19_594x190.png 424w, https://substackcdn.com/image/fetch/$s_!siQK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93c6d1fb-eb59-4306-86db-35a35e249e19_594x190.png 848w, https://substackcdn.com/image/fetch/$s_!siQK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93c6d1fb-eb59-4306-86db-35a35e249e19_594x190.png 1272w, https://substackcdn.com/image/fetch/$s_!siQK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F93c6d1fb-eb59-4306-86db-35a35e249e19_594x190.png 1456w" sizes="100vw" fetchpriority="high"></picture><div></div></div></a></figure></div><p></p><p>A simple message that got a lot of interactions. I received +10 DMs and replies of people interested in helping me with the project.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!2fBj!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ef0adff-188e-48da-9f40-8aea3314992b_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!2fBj!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ef0adff-188e-48da-9f40-8aea3314992b_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!2fBj!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ef0adff-188e-48da-9f40-8aea3314992b_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!2fBj!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ef0adff-188e-48da-9f40-8aea3314992b_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!2fBj!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ef0adff-188e-48da-9f40-8aea3314992b_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!2fBj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ef0adff-188e-48da-9f40-8aea3314992b_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5ef0adff-188e-48da-9f40-8aea3314992b_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!2fBj!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ef0adff-188e-48da-9f40-8aea3314992b_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!2fBj!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ef0adff-188e-48da-9f40-8aea3314992b_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!2fBj!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ef0adff-188e-48da-9f40-8aea3314992b_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!2fBj!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5ef0adff-188e-48da-9f40-8aea3314992b_2x2.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><p>Some of them wanted to work with me while others wanted to talk about the current status of the project, make me think, and give me ideas.</p><p>One of these ideas was key.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!8UOR!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04d19-8d14-4c7b-96d8-eee125966c77_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!8UOR!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04d19-8d14-4c7b-96d8-eee125966c77_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!8UOR!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04d19-8d14-4c7b-96d8-eee125966c77_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!8UOR!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04d19-8d14-4c7b-96d8-eee125966c77_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!8UOR!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04d19-8d14-4c7b-96d8-eee125966c77_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!8UOR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04d19-8d14-4c7b-96d8-eee125966c77_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/d5a04d19-8d14-4c7b-96d8-eee125966c77_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!8UOR!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04d19-8d14-4c7b-96d8-eee125966c77_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!8UOR!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04d19-8d14-4c7b-96d8-eee125966c77_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!8UOR!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04d19-8d14-4c7b-96d8-eee125966c77_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!8UOR!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fd5a04d19-8d14-4c7b-96d8-eee125966c77_2x2.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p><strong>What if Monse, instead of being a banking aggregator, is a tool focused on helping you save?</strong></p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!OETH!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55662ae4-2e08-4c33-b5b9-06fde318a14f_2x2.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!OETH!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55662ae4-2e08-4c33-b5b9-06fde318a14f_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!OETH!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55662ae4-2e08-4c33-b5b9-06fde318a14f_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!OETH!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55662ae4-2e08-4c33-b5b9-06fde318a14f_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!OETH!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55662ae4-2e08-4c33-b5b9-06fde318a14f_2x2.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!OETH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55662ae4-2e08-4c33-b5b9-06fde318a14f_2x2.png" width="2" height="2" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/55662ae4-2e08-4c33-b5b9-06fde318a14f_2x2.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:2,&quot;width&quot;:2,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:102,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!OETH!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55662ae4-2e08-4c33-b5b9-06fde318a14f_2x2.png 424w, https://substackcdn.com/image/fetch/$s_!OETH!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55662ae4-2e08-4c33-b5b9-06fde318a14f_2x2.png 848w, https://substackcdn.com/image/fetch/$s_!OETH!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55662ae4-2e08-4c33-b5b9-06fde318a14f_2x2.png 1272w, https://substackcdn.com/image/fetch/$s_!OETH!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F55662ae4-2e08-4c33-b5b9-06fde318a14f_2x2.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p>Next week, we'll explore this idea <a href="https://blog.victorfalcon.es/subscribe">here</a>.</p>]]></content:encoded></item><item><title><![CDATA[I paid $299.00 to sponsor a newsletter with DeveloperJoy.co [Results]]]></title><description><![CDATA[Is it worth the investment? I am going to share everything with you, we are going to see how much traffic, leads and sales I have generated.]]></description><link>https://blog.victorfalcon.es/p/i-paid-29900-to-sponsor-a-newsletter</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/i-paid-29900-to-sponsor-a-newsletter</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Sun, 27 Aug 2023 13:14:12 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!whpb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bbdd23-375d-4fea-a848-144645283be7_694x572.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<p>I paid &#163;299.00 to sponsor Startups.fyi newsletter with <a href="https://developerjoy.co">developerjoy.co</a>.</p><p>A newsletter with over 12,000+ of startup founders, business owners, and indie makers.</p><p>Here you can find the ad it self.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!whpb!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bbdd23-375d-4fea-a848-144645283be7_694x572.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!whpb!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bbdd23-375d-4fea-a848-144645283be7_694x572.png 424w, https://substackcdn.com/image/fetch/$s_!whpb!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bbdd23-375d-4fea-a848-144645283be7_694x572.png 848w, https://substackcdn.com/image/fetch/$s_!whpb!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bbdd23-375d-4fea-a848-144645283be7_694x572.png 1272w, https://substackcdn.com/image/fetch/$s_!whpb!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bbdd23-375d-4fea-a848-144645283be7_694x572.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!whpb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bbdd23-375d-4fea-a848-144645283be7_694x572.png" width="694" height="572" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/73bbdd23-375d-4fea-a848-144645283be7_694x572.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:572,&quot;width&quot;:694,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:163390,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!whpb!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bbdd23-375d-4fea-a848-144645283be7_694x572.png 424w, https://substackcdn.com/image/fetch/$s_!whpb!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bbdd23-375d-4fea-a848-144645283be7_694x572.png 848w, https://substackcdn.com/image/fetch/$s_!whpb!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bbdd23-375d-4fea-a848-144645283be7_694x572.png 1272w, https://substackcdn.com/image/fetch/$s_!whpb!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F73bbdd23-375d-4fea-a848-144645283be7_694x572.png 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a><figcaption class="image-caption">Screenshot of the actual ad at the top of the email.</figcaption></figure></div><p>Before of sharing with you the actual metrics and results, <strong>how many sales/leads do you think I got from this ad? </strong>Write it down before continuing.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!wA18!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b1c57c-3a82-4bd1-9961-0a0379626e52_720x72.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!wA18!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b1c57c-3a82-4bd1-9961-0a0379626e52_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!wA18!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b1c57c-3a82-4bd1-9961-0a0379626e52_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!wA18!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b1c57c-3a82-4bd1-9961-0a0379626e52_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!wA18!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b1c57c-3a82-4bd1-9961-0a0379626e52_720x72.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!wA18!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b1c57c-3a82-4bd1-9961-0a0379626e52_720x72.png" width="720" height="72" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/c0b1c57c-3a82-4bd1-9961-0a0379626e52_720x72.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:72,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:468,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!wA18!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b1c57c-3a82-4bd1-9961-0a0379626e52_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!wA18!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b1c57c-3a82-4bd1-9961-0a0379626e52_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!wA18!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b1c57c-3a82-4bd1-9961-0a0379626e52_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!wA18!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fc0b1c57c-3a82-4bd1-9961-0a0379626e52_720x72.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><h3>First of all, let&#8217;s see the traffic.</h3><p>I&#8217;m using MetricsWave &#127754;, to monitor all the traffic at DeveloperJoy.co so here are the screenshots you are waiting for.</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!ng5z!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dcc9cc3-5efe-4cd0-8b73-9e9a337689e5_2558x1436.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!ng5z!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dcc9cc3-5efe-4cd0-8b73-9e9a337689e5_2558x1436.png 424w, https://substackcdn.com/image/fetch/$s_!ng5z!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dcc9cc3-5efe-4cd0-8b73-9e9a337689e5_2558x1436.png 848w, https://substackcdn.com/image/fetch/$s_!ng5z!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dcc9cc3-5efe-4cd0-8b73-9e9a337689e5_2558x1436.png 1272w, https://substackcdn.com/image/fetch/$s_!ng5z!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dcc9cc3-5efe-4cd0-8b73-9e9a337689e5_2558x1436.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!ng5z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dcc9cc3-5efe-4cd0-8b73-9e9a337689e5_2558x1436.png" width="1456" height="817" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/5dcc9cc3-5efe-4cd0-8b73-9e9a337689e5_2558x1436.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:817,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:251047,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!ng5z!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dcc9cc3-5efe-4cd0-8b73-9e9a337689e5_2558x1436.png 424w, https://substackcdn.com/image/fetch/$s_!ng5z!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dcc9cc3-5efe-4cd0-8b73-9e9a337689e5_2558x1436.png 848w, https://substackcdn.com/image/fetch/$s_!ng5z!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dcc9cc3-5efe-4cd0-8b73-9e9a337689e5_2558x1436.png 1272w, https://substackcdn.com/image/fetch/$s_!ng5z!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F5dcc9cc3-5efe-4cd0-8b73-9e9a337689e5_2558x1436.png 1456w" sizes="100vw"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GiLx!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d66e8d-90b3-425a-8607-947d99bbee4e_1376x774.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GiLx!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d66e8d-90b3-425a-8607-947d99bbee4e_1376x774.png 424w, https://substackcdn.com/image/fetch/$s_!GiLx!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d66e8d-90b3-425a-8607-947d99bbee4e_1376x774.png 848w, https://substackcdn.com/image/fetch/$s_!GiLx!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d66e8d-90b3-425a-8607-947d99bbee4e_1376x774.png 1272w, https://substackcdn.com/image/fetch/$s_!GiLx!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d66e8d-90b3-425a-8607-947d99bbee4e_1376x774.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GiLx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d66e8d-90b3-425a-8607-947d99bbee4e_1376x774.png" width="1376" height="774" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e2d66e8d-90b3-425a-8607-947d99bbee4e_1376x774.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:774,&quot;width&quot;:1376,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:147215,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GiLx!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d66e8d-90b3-425a-8607-947d99bbee4e_1376x774.png 424w, https://substackcdn.com/image/fetch/$s_!GiLx!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d66e8d-90b3-425a-8607-947d99bbee4e_1376x774.png 848w, https://substackcdn.com/image/fetch/$s_!GiLx!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d66e8d-90b3-425a-8607-947d99bbee4e_1376x774.png 1272w, https://substackcdn.com/image/fetch/$s_!GiLx!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe2d66e8d-90b3-425a-8607-947d99bbee4e_1376x774.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><ul><li><p>The spike is real, usually it doesn&#8217;t receive a lot of traffic, so the traffic from the ad was noticeable.</p></li><li><p>As you can see, from this campaign, I received 97 new visits. About $3,08 per click.</p></li></ul><p>If it is a lot or a little, if it is worth it or not, it is something that you must decide.</p><p>In my experience, I have ever invested in worse campaigns with a lower CPC.</p><p>As for the amount of traffic, it seems correct to me.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!Gl_f!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89f954b3-0c23-4f96-8786-a346f34aa0a8_720x72.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!Gl_f!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89f954b3-0c23-4f96-8786-a346f34aa0a8_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!Gl_f!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89f954b3-0c23-4f96-8786-a346f34aa0a8_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!Gl_f!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89f954b3-0c23-4f96-8786-a346f34aa0a8_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!Gl_f!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89f954b3-0c23-4f96-8786-a346f34aa0a8_720x72.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!Gl_f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89f954b3-0c23-4f96-8786-a346f34aa0a8_720x72.png" width="720" height="72" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/89f954b3-0c23-4f96-8786-a346f34aa0a8_720x72.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:72,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:468,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!Gl_f!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89f954b3-0c23-4f96-8786-a346f34aa0a8_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!Gl_f!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89f954b3-0c23-4f96-8786-a346f34aa0a8_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!Gl_f!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89f954b3-0c23-4f96-8786-a346f34aa0a8_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!Gl_f!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F89f954b3-0c23-4f96-8786-a346f34aa0a8_720x72.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h3>And, How many leads and sales have I gotten?</h3><p>Now it's when the tricky parts begins.</p><p>We are going to give the data, and then we move on to the explanation.</p><p><strong>With this ad I got no leads or sales.</strong></p><p>But, maybe, it&#8217;s normal. I mean, it&#8217;s an expensive product. The cheapest plan is a <strong>$3,995 monthly subscription.</strong> So it&#8217;s not something you can buy without thinking about it.</p><p>At least, right now, there are about a hundred more people who knows about DeveloperJoy and how it offers.</p>]]></content:encoded></item><item><title><![CDATA[Creating Successful SaaS: Lessons Learned]]></title><description><![CDATA[I have been creating different SaaS in public for the last 3 years, and I am very clear on two things...]]></description><link>https://blog.victorfalcon.es/p/creating-successful-saas-lessons</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/creating-successful-saas-lessons</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Sun, 16 Jul 2023 15:00:29 GMT</pubDate><enclosure url="https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1456w" sizes="100vw"><img src="https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080" width="786" height="524" data-attrs="{&quot;src&quot;:&quot;https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:false,&quot;imageSize&quot;:&quot;large&quot;,&quot;height&quot;:3744,&quot;width&quot;:5616,&quot;resizeWidth&quot;:786,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;person sitting front of laptop&quot;,&quot;title&quot;:null,&quot;type&quot;:&quot;image/jpg&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-large" alt="person sitting front of laptop" title="person sitting front of laptop" srcset="https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 424w, https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 848w, https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1272w, https://images.unsplash.com/photo-1515378960530-7c0da6231fb1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wzMDAzMzh8MHwxfHNlYXJjaHw2fHxjb21wdXRlcnxlbnwwfHx8fDE2ODkxNzMzODF8MA&amp;ixlib=rb-4.0.3&amp;q=80&amp;w=1080 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p><strong>Three years ago I started my first adventure creating a product as an Indie Maker. </strong></p><p>I thought it would be something simple, it solved a personal problem and it seemed that people would be willing to pay for it, but I found myself with the reality.</p><p>During these three years I have not succeeded yet, but I have learned two lessons that I consider very valuable.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!0UTt!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f2963b-f629-44dc-8441-099a4e96155d_720x72.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!0UTt!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f2963b-f629-44dc-8441-099a4e96155d_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!0UTt!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f2963b-f629-44dc-8441-099a4e96155d_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!0UTt!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f2963b-f629-44dc-8441-099a4e96155d_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!0UTt!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f2963b-f629-44dc-8441-099a4e96155d_720x72.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!0UTt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f2963b-f629-44dc-8441-099a4e96155d_720x72.png" width="720" height="72" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16f2963b-f629-44dc-8441-099a4e96155d_720x72.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:72,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4204,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!0UTt!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f2963b-f629-44dc-8441-099a4e96155d_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!0UTt!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f2963b-f629-44dc-8441-099a4e96155d_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!0UTt!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f2963b-f629-44dc-8441-099a4e96155d_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!0UTt!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f2963b-f629-44dc-8441-099a4e96155d_720x72.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><div class="captioned-button-wrap" data-attrs="{&quot;url&quot;:&quot;https://blog.victorfalcon.es/p/creating-successful-saas-lessons?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="CaptionedButtonToDOM"><div class="preamble"><p class="cta-caption">This post is public so feel free to share it.</p></div><p class="button-wrapper" data-attrs="{&quot;url&quot;:&quot;https://blog.victorfalcon.es/p/creating-successful-saas-lessons?utm_source=substack&utm_medium=email&utm_content=share&action=share&quot;,&quot;text&quot;:&quot;Share&quot;}" data-component-name="ButtonCreateButton"><a class="button primary" href="https://blog.victorfalcon.es/p/creating-successful-saas-lessons?utm_source=substack&utm_medium=email&utm_content=share&action=share"><span>Share</span></a></p></div><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!T3Dz!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47aee156-dab1-4398-ae8b-4aada9df45bb_720x72.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!T3Dz!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47aee156-dab1-4398-ae8b-4aada9df45bb_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!T3Dz!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47aee156-dab1-4398-ae8b-4aada9df45bb_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!T3Dz!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47aee156-dab1-4398-ae8b-4aada9df45bb_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!T3Dz!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47aee156-dab1-4398-ae8b-4aada9df45bb_720x72.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!T3Dz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47aee156-dab1-4398-ae8b-4aada9df45bb_720x72.png" width="720" height="72" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/47aee156-dab1-4398-ae8b-4aada9df45bb_720x72.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:72,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4204,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!T3Dz!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47aee156-dab1-4398-ae8b-4aada9df45bb_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!T3Dz!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47aee156-dab1-4398-ae8b-4aada9df45bb_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!T3Dz!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47aee156-dab1-4398-ae8b-4aada9df45bb_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!T3Dz!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F47aee156-dab1-4398-ae8b-4aada9df45bb_720x72.png 1456w" sizes="100vw"></picture><div></div></div></a></figure></div><h2>I<strong>t's not easy to be successful</strong></h2><p>When I say success, I mean generating +1k/m (over $1,000 per month). </p><p>Despite the numerous success stories you come across, they represent only a minority.</p><p>Many projects, if you observe them from the beginning, eventually fade away after a year or two. </p><p>Just take a look at old projects on Product Hunt; they speak volumes.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!L1Kg!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172760eb-c878-4618-8424-49023f87e1cc_720x72.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!L1Kg!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172760eb-c878-4618-8424-49023f87e1cc_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!L1Kg!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172760eb-c878-4618-8424-49023f87e1cc_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!L1Kg!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172760eb-c878-4618-8424-49023f87e1cc_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!L1Kg!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172760eb-c878-4618-8424-49023f87e1cc_720x72.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!L1Kg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172760eb-c878-4618-8424-49023f87e1cc_720x72.png" width="720" height="72" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/172760eb-c878-4618-8424-49023f87e1cc_720x72.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:72,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4204,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!L1Kg!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172760eb-c878-4618-8424-49023f87e1cc_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!L1Kg!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172760eb-c878-4618-8424-49023f87e1cc_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!L1Kg!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172760eb-c878-4618-8424-49023f87e1cc_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!L1Kg!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F172760eb-c878-4618-8424-49023f87e1cc_720x72.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Challenges are Inevitable</h2><p>There are always problems, always. </p><p>Let me share my experience with <strong>my first SaaS</strong>, <a href="https://monseapp.com">Monse</a> &#8211; an app designed to connect your bank and help you spend your money efficiently, maximizing savings and investments.</p><p>What initially seemed like a small and relatively simple project eventually became more complex. </p><p>The banks' APIs didn't work as they should, and many users encountered difficulties connecting their accounts, fetching transactions, checking balances, and more.</p><p>Learning from this lesson, I embarked on creating <strong>my second product</strong>. <a href="https://metricswave.com">MetricsWave</a> &#8211; an event-based alternative to Google Analytics. </p><p>This time, I aimed to develop a solution that didn't rely on APIs or third-party services.</p><p>However, I soon encountered another hurdle &#8211; ad blockers.</p><p>For no apparent reason, ad blockers started blocking my domain. </p><p>It wasn't even a script to track visits; it affected the main domain of my landing page. </p><p>If you have one of these extensions installed and visit the landing page, you will encounter something like this:</p><div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!GM45!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dbcdad7-b106-42bd-9e9e-f20376fb5b1a_1582x1442.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!GM45!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dbcdad7-b106-42bd-9e9e-f20376fb5b1a_1582x1442.png 424w, https://substackcdn.com/image/fetch/$s_!GM45!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dbcdad7-b106-42bd-9e9e-f20376fb5b1a_1582x1442.png 848w, https://substackcdn.com/image/fetch/$s_!GM45!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dbcdad7-b106-42bd-9e9e-f20376fb5b1a_1582x1442.png 1272w, https://substackcdn.com/image/fetch/$s_!GM45!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dbcdad7-b106-42bd-9e9e-f20376fb5b1a_1582x1442.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!GM45!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dbcdad7-b106-42bd-9e9e-f20376fb5b1a_1582x1442.png" width="1456" height="1327" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/8dbcdad7-b106-42bd-9e9e-f20376fb5b1a_1582x1442.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:1327,&quot;width&quot;:1456,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:377124,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!GM45!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dbcdad7-b106-42bd-9e9e-f20376fb5b1a_1582x1442.png 424w, https://substackcdn.com/image/fetch/$s_!GM45!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dbcdad7-b106-42bd-9e9e-f20376fb5b1a_1582x1442.png 848w, https://substackcdn.com/image/fetch/$s_!GM45!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dbcdad7-b106-42bd-9e9e-f20376fb5b1a_1582x1442.png 1272w, https://substackcdn.com/image/fetch/$s_!GM45!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F8dbcdad7-b106-42bd-9e9e-f20376fb5b1a_1582x1442.png 1456w" sizes="100vw" loading="lazy"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>This issue, yet again, is beyond my control and hampers the user experience I intended to provide.</p><p>Presently, I am actively working on finding a solution. Only time will tell how it turns out.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!nqwK!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F402c9c56-4418-4f7f-b736-17442714db50_720x72.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!nqwK!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F402c9c56-4418-4f7f-b736-17442714db50_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!nqwK!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F402c9c56-4418-4f7f-b736-17442714db50_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!nqwK!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F402c9c56-4418-4f7f-b736-17442714db50_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!nqwK!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F402c9c56-4418-4f7f-b736-17442714db50_720x72.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!nqwK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F402c9c56-4418-4f7f-b736-17442714db50_720x72.png" width="720" height="72" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/402c9c56-4418-4f7f-b736-17442714db50_720x72.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:72,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4204,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!nqwK!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F402c9c56-4418-4f7f-b736-17442714db50_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!nqwK!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F402c9c56-4418-4f7f-b736-17442714db50_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!nqwK!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F402c9c56-4418-4f7f-b736-17442714db50_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!nqwK!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F402c9c56-4418-4f7f-b736-17442714db50_720x72.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2>Conclusion: Embrace the Journey</h2><p>Throughout my experience in creating SaaS, one thing is clear: something unexpected will always happen. </p><p>It is crucial to <strong>stay motivated and passionate about what you do</strong>; otherwise, you may give up at the first sign of a problem.</p><p><strong>Starting a venture solely for money or success is not the right approach.</strong> </p><p>Enjoying the journey is essential because the reality is that the chances of not succeeding are very high.</p><p>Remember, the road to success is paved with challenges and obstacles. </p><p>Embrace them, learn from them, and remain dedicated to your vision. It is this unwavering dedication and love for the process that will drive you forward, despite the odds.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!fvlO!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bae0e97-200c-41a5-9947-4c00f91bbc61_720x72.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!fvlO!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bae0e97-200c-41a5-9947-4c00f91bbc61_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!fvlO!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bae0e97-200c-41a5-9947-4c00f91bbc61_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!fvlO!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bae0e97-200c-41a5-9947-4c00f91bbc61_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!fvlO!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bae0e97-200c-41a5-9947-4c00f91bbc61_720x72.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!fvlO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bae0e97-200c-41a5-9947-4c00f91bbc61_720x72.png" width="720" height="72" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/9bae0e97-200c-41a5-9947-4c00f91bbc61_720x72.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:72,&quot;width&quot;:720,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:4204,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!fvlO!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bae0e97-200c-41a5-9947-4c00f91bbc61_720x72.png 424w, https://substackcdn.com/image/fetch/$s_!fvlO!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bae0e97-200c-41a5-9947-4c00f91bbc61_720x72.png 848w, https://substackcdn.com/image/fetch/$s_!fvlO!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bae0e97-200c-41a5-9947-4c00f91bbc61_720x72.png 1272w, https://substackcdn.com/image/fetch/$s_!fvlO!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9bae0e97-200c-41a5-9947-4c00f91bbc61_720x72.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><div class="subscription-widget-wrap-editor" data-attrs="{&quot;url&quot;:&quot;https://blog.victorfalcon.es/subscribe?&quot;,&quot;text&quot;:&quot;Subscribe&quot;,&quot;language&quot;:&quot;en&quot;}" data-component-name="SubscribeWidgetToDOM"><div class="subscription-widget show-subscribe"><div class="preamble"><p class="cta-caption">V&#237;ctor Falc&#243;n is a reader-supported publication. To receive new posts and support my work, consider becoming a free or paid subscriber.</p></div><form class="subscription-widget-subscribe"><input type="email" class="email-input" name="email" placeholder="Type your email&#8230;" tabindex="-1"><input type="submit" class="button primary" value="Subscribe"><div class="fake-input-wrapper"><div class="fake-input"></div><div class="fake-button"></div></div></form></div></div>]]></content:encoded></item><item><title><![CDATA[Does the repository pattern make sense in Laravel?]]></title><description><![CDATA[The repository pattern has many advantages when it comes to testing and separating our code from the infrastructure, but does it make sense in Laravel?]]></description><link>https://blog.victorfalcon.es/p/repository-pattern-in-laravel</link><guid isPermaLink="false">https://blog.victorfalcon.es/p/repository-pattern-in-laravel</guid><dc:creator><![CDATA[Víctor Falcón 🤟]]></dc:creator><pubDate>Thu, 13 Jul 2023 13:41:00 GMT</pubDate><enclosure url="https://substackcdn.com/image/fetch/$s_!55fh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg" length="0" type="image/jpeg"/><content:encoded><![CDATA[<div class="captioned-image-container"><figure><a class="image-link image2 is-viewable-img" target="_blank" href="https://substackcdn.com/image/fetch/$s_!55fh!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!55fh!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!55fh!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!55fh!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!55fh!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!55fh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg" width="960" height="640" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:640,&quot;width&quot;:960,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:null,&quot;alt&quot;:&quot;Does the repository pattern make sense in Laravel?&quot;,&quot;title&quot;:null,&quot;type&quot;:null,&quot;href&quot;:null,&quot;belowTheFold&quot;:false,&quot;topImage&quot;:true,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="Does the repository pattern make sense in Laravel?" title="Does the repository pattern make sense in Laravel?" srcset="https://substackcdn.com/image/fetch/$s_!55fh!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg 424w, https://substackcdn.com/image/fetch/$s_!55fh!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg 848w, https://substackcdn.com/image/fetch/$s_!55fh!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg 1272w, https://substackcdn.com/image/fetch/$s_!55fh!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F16f10470-a22d-4dfe-88b9-787f6ab47b11_960x640.jpeg 1456w" sizes="100vw" fetchpriority="high"></picture><div class="image-link-expand"><div class="pencraft pc-display-flex pc-gap-8 pc-reset"><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container restack-image"><svg role="img" width="20" height="20" viewBox="0 0 20 20" fill="none" stroke-width="1.5" stroke="var(--color-fg-primary)" stroke-linecap="round" stroke-linejoin="round" xmlns="http://www.w3.org/2000/svg"><g><title></title><path d="M2.53001 7.81595C3.49179 4.73911 6.43281 2.5 9.91173 2.5C13.1684 2.5 15.9537 4.46214 17.0852 7.23684L17.6179 8.67647M17.6179 8.67647L18.5002 4.26471M17.6179 8.67647L13.6473 6.91176M17.4995 12.1841C16.5378 15.2609 13.5967 17.5 10.1178 17.5C6.86118 17.5 4.07589 15.5379 2.94432 12.7632L2.41165 11.3235M2.41165 11.3235L1.5293 15.7353M2.41165 11.3235L6.38224 13.0882"></path></g></svg></button><button tabindex="0" type="button" class="pencraft pc-reset pencraft icon-container view-image"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="lucide lucide-maximize2 lucide-maximize-2"><polyline points="15 3 21 3 21 9"></polyline><polyline points="9 21 3 21 3 15"></polyline><line x1="21" x2="14" y1="3" y2="10"></line><line x1="3" x2="10" y1="21" y2="14"></line></svg></button></div></div></div></a></figure></div><p>The repository pattern consists of adding a layer of classes that is in charge of accessing the data source and obtaining the different data models.</p><p>They have methods like <code>find</code>, <code>findAll</code>, <code>create </code>or <code>update </code>among others and they are very common in <em>frameworks</em> like Symfony but not so much in Laravel.</p><p>There are articles, videos, and even <strong><a href="https://github.com/drbarzaga/laravel-repository-pattern">libraries</a></strong> for implementing this pattern in Laravel, but does it make sense?</p><h2><strong>Laravel is Active Record</strong></h2><p>In Laravel we have <strong><a href="https://laravel.com/docs/8.x/eloquent">Eloquent ORM</a></strong> is based on the <em>Active Record</em> pattern and Doctrine, from symfony, is based on the repository pattern.</p><p>In the <em>active record</em> pattern , each model corresponds to a table in our database, and this model itself is our way of accessing this table. <strong>We can search, create or update records in the table using the model directly.</strong></p><pre><code><code>&lt;?php

// Obtener el usuario con id = 1
User::find(1);

// Algunas forma de buscar/crear usuarios
User::all();
User::where('email', '=', 'hola@victorfalcon.es')-&gt;first();
User::create([ ... ]);</code></code></pre><p>This has caused many people to classify <em>active record</em> as an anti-pattern. Specifically, it breaks with SOLID's <em>Single Responsibly Principle</em> , since each model is responsible for both interacting with the database and its relationships, and also, being a model, it also contains some domain/business logic.</p><p><strong>And I don't know if you agree with this or not, I have my opinion, but what you don't have to EVER do is mix both patterns.</strong></p><h2><strong>Repository pattern in Laravel</strong></h2><p>For starters, wanting to apply this pattern in Laravel, with Eloquent ORM already sounds very bad. We are making an active record based library work like a repository based ORM when one has nothing to do with the other.</p><p>But hey, we are stubborn, we want our Laravel application to have repositories, let's get to it.</p><h3><strong>Create our repository</strong></h3><p>Let's create our own <code>UserRepository </code>that will look something like this:</p><pre><code><code>&lt;?php

namespace App\Repositories;

interface UserRepositoryInterface
{
    public function all();
    public function create(array  $data);
    public function update(array $data, $id);
    public function delete($id);
    public function find($id);
}</code></code></pre><pre><code><code>&lt;?php

namespace App\Repositories;

use App\Model\User;
use Illuminate\Database\Eloquent\ModelNotFoundException;

class UserRepository implements UserRepositoryInterface
{
    protected $model;

    public function __construct(User $user)
    {
        $this-&gt;model = $user;
    }

    public function all()
    {
        return $this-&gt;model-&gt;all();
    }

    public function create(array $data)
    {
        return $this-&gt;model-&gt;create($data);
    }

    public function update(array $data, $id)
    {
        return $this-&gt;model-&gt;where('id', $id)
            -&gt;update($data);
    }

    public function delete($id)
    {
        return $this-&gt;model-&gt;destroy($id);
    }

    public function find($id)
    {
        if (null == $user = $this-&gt;model-&gt;find($id)) {
            throw new ModelNotFoundException("User not found");
        }

        return $user;
    }
}</code></code></pre><p>And finally we will create a <em>repository service container</em> in which <em>we bind</em> the interface to the repository implementation so that we can then inject where we need it.</p><pre><code><code>public function register()
{
    $this-&gt;app-&gt;bind(
        'App\Repositories\UserRepositoryInterface',
        'App\Repositories\UserRepository'
    );
}</code></code></pre><p>As we can now see, we have encapsulated all the access to the data in a specific class and we can now stop using the model for this, although, in reality, our model continues to have the same methods and the repository depends directly on the model and that it has this inheritance. with Eloquent.</p><p>And the question is:</p><ul><li><p><strong>Me &#8212;</strong> Have we won something? Is there a difference between do <code>User::all()</code>or do <code>$this-&gt;repository-&gt;all()</code>?</p></li><li><p><strong>Symfony dev &#8212;</strong> Well, even though we're increasing complexity and, even worse, duplicating code, we can now mock <em>the</em> repository and do tests without accessing the database, and that's cool!</p></li><li><p><strong>Me &#8212;</strong> True, but if that was your problem, I should have said it before. That is solvable and we don't have to change Eloquent to achieve it.</p></li></ul><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!XV2P!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21b735b3-e8a9-474b-8ef0-104e184c88dc_1300x112.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!XV2P!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21b735b3-e8a9-474b-8ef0-104e184c88dc_1300x112.png 424w, https://substackcdn.com/image/fetch/$s_!XV2P!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21b735b3-e8a9-474b-8ef0-104e184c88dc_1300x112.png 848w, https://substackcdn.com/image/fetch/$s_!XV2P!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21b735b3-e8a9-474b-8ef0-104e184c88dc_1300x112.png 1272w, https://substackcdn.com/image/fetch/$s_!XV2P!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21b735b3-e8a9-474b-8ef0-104e184c88dc_1300x112.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!XV2P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21b735b3-e8a9-474b-8ef0-104e184c88dc_1300x112.png" width="1300" height="112" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/21b735b3-e8a9-474b-8ef0-104e184c88dc_1300x112.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:112,&quot;width&quot;:1300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3397,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!XV2P!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21b735b3-e8a9-474b-8ef0-104e184c88dc_1300x112.png 424w, https://substackcdn.com/image/fetch/$s_!XV2P!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21b735b3-e8a9-474b-8ef0-104e184c88dc_1300x112.png 848w, https://substackcdn.com/image/fetch/$s_!XV2P!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21b735b3-e8a9-474b-8ef0-104e184c88dc_1300x112.png 1272w, https://substackcdn.com/image/fetch/$s_!XV2P!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F21b735b3-e8a9-474b-8ef0-104e184c88dc_1300x112.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><p></p><h3><strong>Why doesn't it make any sense?</strong></h3><p>Most of the time someone rejects <em>active record</em> it's because it's not <em>testable</em> , you can't test a simple class without having to set up a database, since there is no way to change or replace the model that is part of our domain code and we need to test.</p><p>And this would be a big problem if, in Laravel, it wasn't so easy to do a test with the database.</p><p>As we see in the following test, Laravel comes prepared to do this type of automatic tests in a simple and clear way and, with <strong><a href="https://victorfalcon.es/laravel-sail-en-espanol/">Laravel Sail, we don't even have to worry about Docker containers</a></strong> .</p><pre><code><code>use DatabaseMigrations;

class UserCreatorTest extends TestCase
{
    use DatabaseMigrations;

    private $service;

    protected function setUp(): void
    {
        $this-&gt;service = new UserCreator();
    }

    public function test_it_creates_an_user(): void
    {
        $data = [
            'name' =&gt; 'V&#237;ctor',
            'email' =&gt; 'hola@victorfalcon.es',
        ];

        ($this-&gt;service)($data);

        $this-&gt;assertDatabaseHas('users', $data);
    }
}</code></code></pre><p>In addition, the latest versions of Laravel are even prepared to launch these tests in parallel, making them run faster and time is not a problem.</p><p>And finally, these tests provide us with much more value than unit tests without infrastructure and, in most cases, even if we do unit tests, we will also have to do functional tests with the database to make sure that everything goes as expected.</p><div class="captioned-image-container"><figure><a class="image-link image2" target="_blank" href="https://substackcdn.com/image/fetch/$s_!X7fZ!,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a060a7-05be-4e86-8a1a-4f0075680406_1300x112.png" data-component-name="Image2ToDOM"><div class="image2-inset"><picture><source type="image/webp" srcset="https://substackcdn.com/image/fetch/$s_!X7fZ!,w_424,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a060a7-05be-4e86-8a1a-4f0075680406_1300x112.png 424w, https://substackcdn.com/image/fetch/$s_!X7fZ!,w_848,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a060a7-05be-4e86-8a1a-4f0075680406_1300x112.png 848w, https://substackcdn.com/image/fetch/$s_!X7fZ!,w_1272,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a060a7-05be-4e86-8a1a-4f0075680406_1300x112.png 1272w, https://substackcdn.com/image/fetch/$s_!X7fZ!,w_1456,c_limit,f_webp,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a060a7-05be-4e86-8a1a-4f0075680406_1300x112.png 1456w" sizes="100vw"><img src="https://substackcdn.com/image/fetch/$s_!X7fZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a060a7-05be-4e86-8a1a-4f0075680406_1300x112.png" width="1300" height="112" data-attrs="{&quot;src&quot;:&quot;https://substack-post-media.s3.amazonaws.com/public/images/e6a060a7-05be-4e86-8a1a-4f0075680406_1300x112.png&quot;,&quot;srcNoWatermark&quot;:null,&quot;fullscreen&quot;:null,&quot;imageSize&quot;:null,&quot;height&quot;:112,&quot;width&quot;:1300,&quot;resizeWidth&quot;:null,&quot;bytes&quot;:3397,&quot;alt&quot;:null,&quot;title&quot;:null,&quot;type&quot;:&quot;image/png&quot;,&quot;href&quot;:null,&quot;belowTheFold&quot;:true,&quot;topImage&quot;:false,&quot;internalRedirect&quot;:null,&quot;isProcessing&quot;:false,&quot;align&quot;:null,&quot;offset&quot;:false}" class="sizing-normal" alt="" srcset="https://substackcdn.com/image/fetch/$s_!X7fZ!,w_424,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a060a7-05be-4e86-8a1a-4f0075680406_1300x112.png 424w, https://substackcdn.com/image/fetch/$s_!X7fZ!,w_848,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a060a7-05be-4e86-8a1a-4f0075680406_1300x112.png 848w, https://substackcdn.com/image/fetch/$s_!X7fZ!,w_1272,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a060a7-05be-4e86-8a1a-4f0075680406_1300x112.png 1272w, https://substackcdn.com/image/fetch/$s_!X7fZ!,w_1456,c_limit,f_auto,q_auto:good,fl_progressive:steep/https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2Fe6a060a7-05be-4e86-8a1a-4f0075680406_1300x112.png 1456w" sizes="100vw" loading="lazy"></picture><div></div></div></a></figure></div><h2><strong>Conclusion</strong></h2><p>In short, we have to assume that unit tests in Laravel are not common, but that doing functional tests is a matter of seconds and therefore, we adopt the facility of <em>active record.</em></p>]]></content:encoded></item></channel></rss>