<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Samir Alibabic</title>
    <description>The latest articles on DEV Community by Samir Alibabic (@samiralibabic).</description>
    <link>https://dev.to/samiralibabic</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1101202%2Fd775e82b-a1a3-4cbe-b537-9ea8e6195b7a.jpg</url>
      <title>DEV Community: Samir Alibabic</title>
      <link>https://dev.to/samiralibabic</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/samiralibabic"/>
    <language>en</language>
    <item>
      <title>What AI Actually Did to My Software Development Velocity</title>
      <dc:creator>Samir Alibabic</dc:creator>
      <pubDate>Thu, 24 Sep 2026 17:29:40 +0000</pubDate>
      <link>https://dev.to/samiralibabic/what-ai-actually-did-to-my-software-development-velocity-55jg</link>
      <guid>https://dev.to/samiralibabic/what-ai-actually-did-to-my-software-development-velocity-55jg</guid>
      <description>&lt;p&gt;A lot of AI productivity claims sound impressive until you ask what was actually measured.&lt;/p&gt;

&lt;p&gt;"10x developer productivity" usually means one of three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More lines of code&lt;/li&gt;
&lt;li&gt;Faster task completion in a benchmark&lt;/li&gt;
&lt;li&gt;A subjective feeling that work is moving faster&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are weak signals.&lt;/p&gt;

&lt;p&gt;Lines of code are easy to inflate. Benchmarks are not production systems. And generating code quickly is not the same as shipping working software safely.&lt;/p&gt;

&lt;p&gt;I wanted a better answer for my own work.&lt;/p&gt;

&lt;p&gt;I own and operate &lt;strong&gt;MachDuDas&lt;/strong&gt;, a German marketplace that has existed for more than a decade. The repository has years of history from conventional development teams, before generative AI was part of the workflow.&lt;/p&gt;

&lt;p&gt;Today, I am effectively the only human driving development, but I work heavily with AI coding agents.&lt;/p&gt;

&lt;p&gt;That gave me something close to a natural experiment:&lt;/p&gt;

&lt;p&gt;Same product. Same codebase. Different development model.&lt;/p&gt;

&lt;p&gt;The question was simple:&lt;/p&gt;

&lt;p&gt;How much engineering capacity have AI agents actually given me?&lt;/p&gt;

&lt;h2&gt;
  
  
  The first measurement was misleading
&lt;/h2&gt;

&lt;p&gt;My first instinct was to look at code volume.&lt;/p&gt;

&lt;p&gt;Over roughly 30 days of recent development, MachDuDas had:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;About 54,700 lines added&lt;/li&gt;
&lt;li&gt;About 10,000 lines removed&lt;/li&gt;
&lt;li&gt;About 44,600 net lines added&lt;/li&gt;
&lt;li&gt;139 relevant commits&lt;/li&gt;
&lt;li&gt;Another roughly 10,000 net lines on feature branches not yet merged to &lt;code&gt;master&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That looked like about 10,000 net lines per week.&lt;/p&gt;

&lt;p&gt;If you compare that to old industry estimates for programmer productivity, the result looks absurdly good. Depending on the benchmark, you can make the output look equivalent to a team of 15, 20, or more engineers.&lt;/p&gt;

&lt;p&gt;That comparison failed the smell test.&lt;/p&gt;

&lt;p&gt;The reason is obvious once you inspect the work.&lt;/p&gt;

&lt;p&gt;AI-assisted development produces a lot of supporting code:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Automated tests&lt;/li&gt;
&lt;li&gt;Browser tests&lt;/li&gt;
&lt;li&gt;Fixtures&lt;/li&gt;
&lt;li&gt;Migration logic&lt;/li&gt;
&lt;li&gt;Verification scripts&lt;/li&gt;
&lt;li&gt;Supporting infrastructure&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That code is valuable and cannot be compared reliably with generic historical LOC benchmarks.&lt;/p&gt;

&lt;p&gt;A line of application logic, a line of fixture data, and a line of browser-test setup are not the same productivity unit.&lt;/p&gt;

&lt;p&gt;So I stopped comparing MachDuDas to generic industry averages.&lt;/p&gt;

&lt;p&gt;I compared it to itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  The better baseline was the same repository
&lt;/h2&gt;

&lt;p&gt;The MachDuDas repository still contains older development history.&lt;/p&gt;

&lt;p&gt;That means I can compare current AI-assisted development against earlier conventional development on the same product.&lt;/p&gt;

&lt;p&gt;One useful period was July 2016.&lt;/p&gt;

&lt;p&gt;During that month, three human contributors added approximately:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;22,900 lines of runtime application code&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;They also removed about:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;5,700 lines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That was a productive conventional team working on the same software product.&lt;/p&gt;

&lt;p&gt;Now compare that with recent AI-assisted development.&lt;/p&gt;

&lt;p&gt;In June 2026, one human contributor directing AI agents added approximately:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;30,800 runtime-code lines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In August 2026, runtime-code additions were lower:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;About 12,200 lines&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;But test code exploded:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;More than 72,000 lines of tests were added&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Across March through September 2026, MachDuDas accumulated approximately:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;81,000 runtime-code additions&lt;/li&gt;
&lt;li&gt;105,000 test additions&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That test number matters.&lt;/p&gt;

&lt;p&gt;The older history does not contain anything close to that amount of automated verification.&lt;/p&gt;

&lt;p&gt;The fuller story includes:&lt;/p&gt;

&lt;p&gt;AI makes certain kinds of engineering work cheap enough that I ask for much more of them.&lt;/p&gt;

&lt;p&gt;Especially testing.&lt;/p&gt;

&lt;h2&gt;
  
  
  The multiplier I can defend
&lt;/h2&gt;

&lt;p&gt;When I normalized the historical periods by active human contributor-month, the current AI-assisted workflow produced about:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;2.4x the runtime-code output per active human contributor.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If I exclude the initial large 2016 repository-import period, the multiplier is closer to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.2x.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is much less dramatic than the 10x or 20x claims people like to throw around.&lt;/p&gt;

&lt;p&gt;It is also much more believable.&lt;/p&gt;

&lt;p&gt;And it only covers application-code production.&lt;/p&gt;

&lt;p&gt;The estimate also excludes extra automated QA, migration verification, operational work, and test-writing produced by agents.&lt;/p&gt;

&lt;p&gt;My current estimate is that my one-person-plus-agents setup has engineering capacity comparable to a conventional pre-generative-AI software team of roughly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4 to 7 people.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;My best single estimate would be around &lt;strong&gt;five or six&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Very roughly, that conventional team might have looked like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;2 to 3 application developers&lt;/li&gt;
&lt;li&gt;1 to 2 QA or test-automation engineers&lt;/li&gt;
&lt;li&gt;Part of a DevOps or release-engineering role&lt;/li&gt;
&lt;li&gt;Part of a technical product or engineering-management role&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is an engineering-capacity comparison. Literal replacement of six developers is too simplistic.&lt;/p&gt;

&lt;p&gt;It means one technical founder can now operate at a level of engineering capacity that, on this product, previously would have implied a small software team.&lt;/p&gt;

&lt;p&gt;Those are different claims.&lt;/p&gt;

&lt;h2&gt;
  
  
  Shipping matters more than code volume
&lt;/h2&gt;

&lt;p&gt;The next question is more important:&lt;/p&gt;

&lt;p&gt;Did the code actually reach production without making the product worse?&lt;/p&gt;

&lt;p&gt;So I reconstructed MachDuDas production deployments and applied DORA-style delivery metrics.&lt;/p&gt;

&lt;p&gt;The goal was to look beyond code generation and measure the delivery system:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;How long does a commit take to reach production?&lt;/li&gt;
&lt;li&gt;How often do deployments happen?&lt;/li&gt;
&lt;li&gt;How often do deployments break production?&lt;/li&gt;
&lt;li&gt;How quickly do deployment-caused failures recover?&lt;/li&gt;
&lt;li&gt;How much deployment work is rework?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This changed the picture.&lt;/p&gt;

&lt;h2&gt;
  
  
  Lead time changed once large branches cleared
&lt;/h2&gt;

&lt;p&gt;Across a large set of commits where I could reconstruct both the commit timestamp and the first production deployment containing that commit, the median commit-to-production time was:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;6.8 days.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The 75th percentile was about:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;9.2 days.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;At first, that looked much less impressive than the development velocity.&lt;/p&gt;

&lt;p&gt;Then I separated the most recent deployments.&lt;/p&gt;

&lt;p&gt;From mid-September onward, the median commit-to-production lead time fell to roughly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;11 hours.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The 75th percentile was about:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3 days.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The system had changed.&lt;/p&gt;

&lt;p&gt;Earlier work was accumulating in large branches, especially around a major frontend migration and parity project. Once those large batches started clearing, the actual delivery loop became much shorter.&lt;/p&gt;

&lt;p&gt;This is an important lesson for AI-heavy development:&lt;/p&gt;

&lt;p&gt;Fast implementation does not automatically create fast delivery.&lt;/p&gt;

&lt;p&gt;You can generate code faster than you can review, integrate, and release it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deployment frequency moved from weekly to several times per week
&lt;/h2&gt;

&lt;p&gt;Over the six-month period I reconstructed, MachDuDas averaged approximately:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One production deployment every 6.8 days.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is roughly weekly.&lt;/p&gt;

&lt;p&gt;But the recent period looked different.&lt;/p&gt;

&lt;p&gt;Between September 14 and September 22, there were:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Seven production deployments in nine days.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So deployment frequency moved from roughly weekly toward several times per week.&lt;/p&gt;

&lt;p&gt;That is the kind of signal I care about more than raw LOC.&lt;/p&gt;

&lt;p&gt;If AI only creates larger branches that sit around longer, the productivity gain is partially trapped.&lt;/p&gt;

&lt;p&gt;If it helps produce smaller changes that reach production safely, the gain is much more real.&lt;/p&gt;

&lt;h2&gt;
  
  
  Change failure rate stayed in a reasonable range
&lt;/h2&gt;

&lt;p&gt;I also reconstructed production incidents and separated them into categories:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Failures clearly caused by deployments&lt;/li&gt;
&lt;li&gt;Likely deployment-related failures&lt;/li&gt;
&lt;li&gt;Unrelated infrastructure issues&lt;/li&gt;
&lt;li&gt;Staging failures&lt;/li&gt;
&lt;li&gt;Normal follow-up improvements&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That distinction matters.&lt;/p&gt;

&lt;p&gt;An nginx outage, for example, is not automatically a failed software change.&lt;/p&gt;

&lt;p&gt;Using the strictest interpretation, I found one clearly documented production regression caused by a deployment during the relevant period.&lt;/p&gt;

&lt;p&gt;That gives a change failure rate of approximately:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;3.7%.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There was another earlier incident that was very likely deployment-related. Including that one raises the estimate to:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7.4%.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;So the defensible range is approximately:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;4% to 7%.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Given the amount of software changing, that number is more meaningful to me than how many lines the agents wrote.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recovery and rework matter too
&lt;/h2&gt;

&lt;p&gt;The earlier likely regression was hotfixed in about:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;13 minutes.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The later confirmed deployment regression was remediated within approximately:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;15 hours.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The historical evidence is not precise enough to claim an exact median recovery time.&lt;/p&gt;

&lt;p&gt;But it is enough to say observed recovery from deployment-caused failures was within:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Less than one day.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;There were no observed executed rollbacks in the reconstructed period.&lt;/p&gt;

&lt;p&gt;I also looked for production deployments whose primary purpose was repairing a problem introduced by earlier deployment work.&lt;/p&gt;

&lt;p&gt;Depending on how conservatively incidents are classified, approximately:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;7% to 11% of deployments were rework.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That is an important guardrail.&lt;/p&gt;

&lt;p&gt;An AI system that writes 100,000 lines and forces humans to spend the next month repairing them is not productive.&lt;/p&gt;

&lt;p&gt;Here, the evidence shows high output alongside acceptable delivery quality.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bottleneck moved
&lt;/h2&gt;

&lt;p&gt;The most important conclusion is that the bottleneck moved as implementation became cheap. Fast code generation is already obvious.&lt;/p&gt;

&lt;p&gt;The more interesting change is that the bottleneck moved.&lt;/p&gt;

&lt;p&gt;Ten years ago, implementation itself was expensive.&lt;/p&gt;

&lt;p&gt;A feature required human time across many layers:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Backend code&lt;/li&gt;
&lt;li&gt;Frontend code&lt;/li&gt;
&lt;li&gt;Tests&lt;/li&gt;
&lt;li&gt;Migration logic&lt;/li&gt;
&lt;li&gt;Repetitive verification&lt;/li&gt;
&lt;li&gt;Documentation&lt;/li&gt;
&lt;li&gt;Debugging&lt;/li&gt;
&lt;li&gt;Operational scripts&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Every additional layer consumed scarce engineering hours.&lt;/p&gt;

&lt;p&gt;Today, many of those activities are much cheaper.&lt;/p&gt;

&lt;p&gt;I can ask an agent to investigate legacy behavior, implement a change, write unit tests, add browser tests, test migration idempotency, inspect edge cases, update documentation, and review its own implementation.&lt;/p&gt;

&lt;p&gt;Engineering still carries real costs. The scarce resource moves.&lt;/p&gt;

&lt;p&gt;The scarce resource is increasingly judgment.&lt;/p&gt;

&lt;p&gt;Someone still has to decide:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What should the system actually do?&lt;/li&gt;
&lt;li&gt;Is the agent solving the right problem?&lt;/li&gt;
&lt;li&gt;Did it invent an unnecessary abstraction?&lt;/li&gt;
&lt;li&gt;Is a behavior change intentional?&lt;/li&gt;
&lt;li&gt;Should this branch be merged?&lt;/li&gt;
&lt;li&gt;Should this deployment happen now?&lt;/li&gt;
&lt;li&gt;Is this test proving useful behavior, or just encoding the agent's assumptions?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those are still human decisions.&lt;/p&gt;

&lt;h2&gt;
  
  
  Batch size became a real problem
&lt;/h2&gt;

&lt;p&gt;One of the largest recent MachDuDas initiatives accumulated more than 60 commits on a feature branch.&lt;/p&gt;

&lt;p&gt;The implementation work was moving quickly.&lt;/p&gt;

&lt;p&gt;But the branch became large.&lt;/p&gt;

&lt;p&gt;That creates a strange failure mode.&lt;/p&gt;

&lt;p&gt;AI can generate changes faster than they can comfortably be reviewed, integrated, and released.&lt;/p&gt;

&lt;p&gt;In traditional development, teams often waited for implementation.&lt;/p&gt;

&lt;p&gt;In AI-heavy development, implementation can start waiting for acceptance.&lt;/p&gt;

&lt;p&gt;That is a different engineering-management problem.&lt;/p&gt;

&lt;p&gt;The practical response is to keep the work smaller:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Smaller stories&lt;/li&gt;
&lt;li&gt;Smaller branches&lt;/li&gt;
&lt;li&gt;Shorter-lived branches&lt;/li&gt;
&lt;li&gt;More frequent integration&lt;/li&gt;
&lt;li&gt;More frequent production releases&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The old advice to reduce batch size becomes more important when code generation gets cheap.&lt;/p&gt;

&lt;h2&gt;
  
  
  AI changes the economics of testing
&lt;/h2&gt;

&lt;p&gt;The test numbers surprised me.&lt;/p&gt;

&lt;p&gt;In one month, AI-assisted development added more than 70,000 lines of tests.&lt;/p&gt;

&lt;p&gt;I would not have commissioned that amount of manual test-writing effort from a small conventional team.&lt;/p&gt;

&lt;p&gt;It would have been economically irrational.&lt;/p&gt;

&lt;p&gt;But if the marginal cost of test creation drops, the tradeoff changes.&lt;/p&gt;

&lt;p&gt;The question becomes less:&lt;/p&gt;

&lt;p&gt;"Is this worth paying a human to test manually?"&lt;/p&gt;

&lt;p&gt;And more:&lt;/p&gt;

&lt;p&gt;"Can we prove this behavior?"&lt;/p&gt;

&lt;p&gt;If the answer is yes, an agent can often create that proof at relatively low incremental cost.&lt;/p&gt;

&lt;p&gt;This is another reason raw LOC comparisons are misleading.&lt;/p&gt;

&lt;p&gt;Thirty thousand lines of application code plus seventy thousand lines of tests is not the same thing as one hundred thousand lines of application complexity.&lt;/p&gt;

&lt;p&gt;Some of that volume is verification that previously would not have existed at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  What I would measure on another codebase
&lt;/h2&gt;

&lt;p&gt;If you are trying to evaluate AI-assisted development in your own team, start with delivery outcomes before "lines of code generated."&lt;/p&gt;

&lt;p&gt;I would start with these questions.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Compare against your own history
&lt;/h3&gt;

&lt;p&gt;Do not compare your team to generic productivity benchmarks if you have better data.&lt;/p&gt;

&lt;p&gt;Your own repository history is a stronger baseline.&lt;/p&gt;

&lt;p&gt;Same product. Same domain. Similar architectural constraints.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Separate runtime code from verification code
&lt;/h3&gt;

&lt;p&gt;Application code, tests, migrations, fixtures, and operational scripts should not all be treated as the same output.&lt;/p&gt;

&lt;p&gt;They all matter, but they mean different things.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Normalize by active human contributor-month
&lt;/h3&gt;

&lt;p&gt;If you want to estimate human capacity, normalize by the humans actively involved.&lt;/p&gt;

&lt;p&gt;Otherwise you are just comparing busy periods with quiet periods.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Track delivery alongside generation
&lt;/h3&gt;

&lt;p&gt;Measure whether the work reaches production.&lt;/p&gt;

&lt;p&gt;Useful metrics include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Commit-to-production lead time&lt;/li&gt;
&lt;li&gt;Deployment frequency&lt;/li&gt;
&lt;li&gt;Change failure rate&lt;/li&gt;
&lt;li&gt;Recovery time&lt;/li&gt;
&lt;li&gt;Rework caused by previous deployments&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Watch batch size
&lt;/h3&gt;

&lt;p&gt;AI can make large branches deceptively easy to create.&lt;/p&gt;

&lt;p&gt;Large branches remain hard to review and risky to ship.&lt;/p&gt;

&lt;p&gt;If lead time gets worse while code output improves, batch size is a likely suspect.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Treat tests as output and classify them separately from application complexity
&lt;/h3&gt;

&lt;p&gt;AI-generated tests can be very valuable.&lt;/p&gt;

&lt;p&gt;Keep test volume separate from runtime code volume.&lt;/p&gt;

&lt;p&gt;Large test additions may reflect improved verification without enlarging the product surface.&lt;/p&gt;

&lt;h2&gt;
  
  
  Limits of this comparison
&lt;/h2&gt;

&lt;p&gt;Generalizing this into a claim that one AI-assisted founder can replace every six-person engineering team would exceed the evidence.&lt;/p&gt;

&lt;p&gt;MachDuDas has characteristics that make AI particularly effective:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It is an existing product&lt;/li&gt;
&lt;li&gt;A lot of behavior is already encoded in the software&lt;/li&gt;
&lt;li&gt;The repository contains substantial historical context&lt;/li&gt;
&lt;li&gt;I know the product well and can make decisions quickly&lt;/li&gt;
&lt;li&gt;There is almost no organizational communication overhead&lt;/li&gt;
&lt;li&gt;Agents can work directly against the repository&lt;/li&gt;
&lt;li&gt;Many tasks involve construction, migration, testing, and verification&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A six-person startup building a new product is doing more than writing code.&lt;/p&gt;

&lt;p&gt;It is also doing discovery, customer research, design, strategy, internal communication, and countless informal decisions that do not appear in Git.&lt;/p&gt;

&lt;p&gt;Those responsibilities still require human judgment.&lt;/p&gt;

&lt;h2&gt;
  
  
  Where I landed
&lt;/h2&gt;

&lt;p&gt;For MachDuDas, the evidence currently supports this conclusion:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;One founder directing AI coding agents is producing roughly 2.5 to 3 times the application-code output per active human contributor that the same product historically achieved with conventional developers.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Once automated QA, testing, migration work, and release engineering are included, the overall engineering capacity appears comparable to roughly:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A 4 to 7 person conventional software team.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Delivery quality remained stable enough to make the additional throughput useful.&lt;/p&gt;

&lt;p&gt;Recent production delivery has reached:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Sub-day median commit-to-production lead time&lt;/li&gt;
&lt;li&gt;Several deployments per week&lt;/li&gt;
&lt;li&gt;Approximately 4% to 7% observed change failure rate&lt;/li&gt;
&lt;li&gt;Recovery from deployment-caused failures within a day&lt;/li&gt;
&lt;li&gt;Relatively limited deployment rework&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Those numbers will change as more data accumulates.&lt;/p&gt;

&lt;p&gt;But they tell a more useful story than LOC alone.&lt;/p&gt;

&lt;h2&gt;
  
  
  The practical implication for technical founders
&lt;/h2&gt;

&lt;p&gt;The biggest change is the amount of software business one technical founder can now maintain and substantially evolve. Typing speed barely matters to me.&lt;/p&gt;

&lt;p&gt;A technical founder can now direct a collection of AI agents that investigate, implement, test, and verify software across multiple layers of a system.&lt;/p&gt;

&lt;p&gt;The founder becomes less like an individual programmer and more like a very small engineering organization.&lt;/p&gt;

&lt;p&gt;But somebody still has to run that organization.&lt;/p&gt;

&lt;p&gt;Someone has to maintain the model of what the product is supposed to do.&lt;/p&gt;

&lt;p&gt;Someone has to notice when an agent is technically correct but solving the wrong problem.&lt;/p&gt;

&lt;p&gt;Someone has to decide what goes into production.&lt;/p&gt;

&lt;p&gt;Someone has to say no.&lt;/p&gt;

&lt;p&gt;For now, that is still the human job.&lt;/p&gt;

&lt;p&gt;And in my experience, that is where the real leverage now sits.&lt;/p&gt;

</description>
      <category>founders</category>
      <category>ai</category>
      <category>softwaredevelopment</category>
      <category>software</category>
    </item>
    <item>
      <title>Free and Open-Source alternatives to Bitly and Co.</title>
      <dc:creator>Samir Alibabic</dc:creator>
      <pubDate>Sun, 31 Mar 2024 12:59:17 +0000</pubDate>
      <link>https://dev.to/samiralibabic/free-and-open-source-alternatives-to-bitly-and-co-31gn</link>
      <guid>https://dev.to/samiralibabic/free-and-open-source-alternatives-to-bitly-and-co-31gn</guid>
      <description>&lt;p&gt;In my &lt;a href="https://samiralibabic.hashnode.dev/an-introduction-to-link-shortening"&gt;Introduction to Link Shortening&lt;/a&gt; I gave an overview of the most popular solutions for link shortening and management. This time I want to introduce you to some of the alternatives to popular services like Bitly, which are free, Open-Source and can be hosted on your own servers.&lt;/p&gt;

&lt;h2&gt;
  
  
  Polr
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--pVEcPLlY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711225630682/d6bdd372-e049-4304-bf7c-86f5303a4162.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--pVEcPLlY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711225630682/d6bdd372-e049-4304-bf7c-86f5303a4162.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" alt="img" width="800" height="476"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://polrproject.org/"&gt;Polr&lt;/a&gt; is a PHP-based, open-source link shortener, with an API access and basic analytics. While its user interface may have charmed users back in 2013 at the project's inception, it now falls short of contemporary design standards.&lt;/p&gt;

&lt;p&gt;On the analytics front, this link shortener furnishes insights into visits, referrers, and the geographical distribution of visitors. It has a demo version online, which you can test, before you decide to install it on your server.&lt;/p&gt;

&lt;p&gt;I decided to give it a whirl myself, but after poking around in the demo, I didn't even bother with the hassle of installing it on my own machine.&lt;/p&gt;

&lt;p&gt;However, it's worth noting that Polr isn't packaged within a container, necessitating manual setup. Nonetheless, for those willing to undertake the effort and requiring only basic analytics, the project is readily available on &lt;a href="https://github.com/cydrobolt/polr"&gt;GitHub&lt;/a&gt;, where it garners a commendable 4.9k stars.&lt;/p&gt;

&lt;h2&gt;
  
  
  YOURLS
&lt;/h2&gt;

&lt;p&gt;Originating in 2009, this link shortener stands as one of the oldest in the field. Developed in PHP, it boasts a robust ecosystem comprising over 200 plugins designed to expand its functionalities.&lt;/p&gt;

&lt;p&gt;Despite my attempts to deploy it within various containerized environments - via &lt;a href="https://github.com/YOURLS/images"&gt;Docker image&lt;/a&gt; on a &lt;a href="https://lima-vm.io/"&gt;Lima&lt;/a&gt; machine, both with and without &lt;code&gt;docker-compose&lt;/code&gt; and later within a Minikube environment using &lt;a href="https://github.com/YOURLS/charts"&gt;Helm&lt;/a&gt; - I encountered persistent setbacks. Whether due to my own missteps or shortcomings in the Docker image's accuracy or currency, I found myself unable to achieve a successful deployment.&lt;/p&gt;

&lt;p&gt;Compounding this challenge, as a macOS Sonoma user, I faced the additional hurdle of PHP support removal. To circumvent this limitation, I resorted to manual installation. Employing the familiar &lt;code&gt;brew install php&lt;/code&gt; command, which I rely on for most software installations, I obtained the necessary instructions to integrate PHP with Apache:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;To enable PHP in Apache add the following to httpd.conf and restart Apache:
    LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so

    &amp;lt;FilesMatch \.php$&amp;gt;
        SetHandler application/x-httpd-php
    &amp;lt;/FilesMatch&amp;gt;

Finally, check DirectoryIndex includes index.php
    DirectoryIndex index.php index.html
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;However, upon executing the instructions, macOS Gatekeeper intervened, flagging the module as unsigned. While I won't delve into the intricacies here, you can refer to a comprehensive guide provided in a &lt;a href="https://medium.com/@nadine.fisch/add-php-to-apache-on-macos-12-e3bb43469195"&gt;Medium article&lt;/a&gt; for detailed instructions. Feeling overwhelmed by the complexity of the process, I made the decision to pivot and explore alternative solutions.&lt;/p&gt;

&lt;p&gt;Nevertheless, the project continues to receive active maintenance from its creator, &lt;a href="https://twitter.com/ozh"&gt;Ozh Richard&lt;/a&gt;, and boasts a thriving community of contributors. Its source code is readily available on &lt;a href="https://github.com/YOURLS/YOURLS"&gt;GitHub&lt;/a&gt;, where it has garnered an impressive 10k stars, indicative of its widespread adoption and popularity within the developer community.&lt;/p&gt;

&lt;h2&gt;
  
  
  Kutt
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--T9_s1KDP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1699187695881/1f5bd1f9-270f-4b6b-afff-8861b1841d7c.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T9_s1KDP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1699187695881/1f5bd1f9-270f-4b6b-afff-8861b1841d7c.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" alt="Kutt screenshot" width="800" height="816"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="http://kutt.it/"&gt;Kutt&lt;/a&gt; represents a sleek, contemporary option, delivering a robust user experience alongside an array of appealing features. Among its highlights are customizable short URLs, comprehensive click tracking, and detailed analytics.&lt;/p&gt;

&lt;p&gt;Under the hood, Kutt's tech-stack includes Node.js with Express, Passport for authentication, React with Next.js for frontend rendering, Easy Peasy for state management, styled-components for CSS styling, and Recharts for chart visualization. Data storage is handled by PostgreSQL, complemented by Redis for caching, while deployment is streamlined through Docker.&lt;/p&gt;

&lt;p&gt;It boasts browser extensions, a handy CLI, and versatile clients and SDKs for almost any platform you can think of. Plus, it plays nice with ShareX, the ultimate screen capture and file-sharing tool.&lt;/p&gt;

&lt;p&gt;However, as of writing this, the hosted version at &lt;a href="http://kutt.it/"&gt;kutt.it&lt;/a&gt; seems to have taken a hiatus. Moreover, its development pace has slowed down, and its tech-stack isn't exactly keeping up with the times. Attempting a manual installation via npm was a headache, thanks to pesky dependency conflicts, leaving Docker as the only viable option.&lt;/p&gt;

&lt;p&gt;Even after firing it up in Docker, creating an account proved to be an exercise in futility, with the UI offering nothing more than a vague &lt;code&gt;An error occurred&lt;/code&gt; message. Call me lazy, but I wasn't keen on diving into container logs and hunting down root causes. Nevertheless, I'm sure with a bit more effort, one could get it up and running smoothly.&lt;/p&gt;

&lt;p&gt;It's open-source under the MIT license, living its best life on &lt;a href="https://github.com/thedevs-network/kutt"&gt;GitHub&lt;/a&gt; with a respectable 8k stars. And hey, word on the street is that the maintainer's already cooking up a version 3.0!&lt;/p&gt;

&lt;h2&gt;
  
  
  Shlink
&lt;/h2&gt;

&lt;p&gt;Shlink is a self-hosted URL shortener offering a &lt;a href="https://shlink.io/documentation/api-docs"&gt;REST API&lt;/a&gt; and a &lt;a href="https://shlink.io/documentation/command-line-interface/entry-point"&gt;CLI interface&lt;/a&gt; for interaction. It also includes a Progressive Web Application (PWA) for interacting with multiple Shlink instances.&lt;/p&gt;

&lt;p&gt;Similar to Kutt, &lt;a href="https://shlink.io/"&gt;Shlink&lt;/a&gt; can be run via Docker with an internal database. The only requirement is an API key for &lt;a href="https://dev.maxmind.com/geoip/geolite2-free-geolocation-data"&gt;GeoLite2&lt;/a&gt;, used for geolocation data.&lt;/p&gt;

&lt;p&gt;To test Shlink locally with ease, Docker users can simply execute the following command:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run \
    --name my_shlink \
    -p 8080:8080 \
    -e DEFAULT_DOMAIN=localhost \
    -e IS_HTTPS_ENABLED=false \
    -e GEOLITE_LICENSE_KEY=your_license_key \
    shlinkio/shlink:stable
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This command initiates the Shlink server, encompassing both a REST API and a CLI. Subsequently, you can utilise the CLI to generate your API key:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker exec -it my_shlink shlink api-key:generate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;When experimenting with the CLI, if you create a link using the command &lt;code&gt;docker exec -it my_shlink shlink short-url:create&lt;/code&gt;, the resulting short link may not include the default port &lt;code&gt;8080&lt;/code&gt;. Therefore, you have to add it manually for the link to work (e.g. &lt;code&gt;http://localhost:8080&lt;/code&gt;).&lt;/p&gt;

&lt;p&gt;Additionally, the PWA, commonly used for accessing Shlink, can also be installed and operated via Docker by executing:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;docker run \
    --name shlink-web-client \
    -p 8000:8080 \
    -e SHLINK_SERVER_URL=http://localhost:8080 \
    -e SHLINK_SERVER_API_KEY=your_generated_key \
    shlinkio/shlink-web-client
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Upon visiting &lt;code&gt;http://localhost:8000&lt;/code&gt; you will be greeted with a user-friendly Web App interface complete with analytics. What I find cool by this link shortener is the ability to manage multiple servers within a single interface. 😎&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--skqFxC9q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711707546647/e847f860-e246-43cb-8c81-e3015eea2d59.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--skqFxC9q--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711707546647/e847f860-e246-43cb-8c81-e3015eea2d59.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" alt="Shlink UI screenshot" width="800" height="408"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Besides the number of visits for each link, the provided analytics include operating systems, browsers, referrers, countries and cities. Data series can be shown for any period, from one day to a year or custom ranges.&lt;/p&gt;

&lt;p&gt;Other interesting features include QR code generation, redirection rules based on devices, languages or query parameters, editing short URL's after creation and comparing statistics for up to five short links. And all this is just on the first glance at the Web App, and there is &lt;a href="https://shlink.io/documentation/some-features/"&gt;more&lt;/a&gt;. Very powerful!&lt;/p&gt;

&lt;p&gt;All the kudos to the author and maintainer &lt;a href="https://github.com/acelaya"&gt;Alejandro Celaya&lt;/a&gt;, who has been building the project actively since 2016! 🤯&lt;/p&gt;

&lt;p&gt;It's definitely underrated with 2.7k stars on GitHub, considering everything this link shortener offers. For those interested, you can check out the repository here: &lt;a href="https://github.com/shlinkio/shlink"&gt;https://github.com/shlinkio/shlink&lt;/a&gt; ⭐️&lt;/p&gt;

&lt;h2&gt;
  
  
  Dub.co
&lt;/h2&gt;

&lt;p&gt;For those in search of a contemporary solution for link shortening and analytics, &lt;a href="https://dub.co/"&gt;Dub.co&lt;/a&gt; is worth considering. When you visit this hosted service, you'll immediately notice its modern and user-friendly design, which is typical of today's startup landscape.&lt;/p&gt;

&lt;p&gt;Dub.co boasts a modern tech-stack, including Next.js, TailwindCSS, Prisma, NextAuth.js, and BoxyHQ for authentication, alongside Turborepo as a robust build system. It follows a cloud-first approach, utilizing various managed services:&lt;/p&gt;

&lt;p&gt;Clickhouse database, managed by &lt;a href="https://www.tinybird.co/"&gt;Tinybird&lt;/a&gt; - used for time-series click data&lt;br&gt;
Redis database, managed by &lt;a href="https://upstash.com/"&gt;Upstash&lt;/a&gt; - for caching link metadata and serving redirects&lt;br&gt;
MySQL database, managed by &lt;a href="http://planetscale.com/"&gt;PlanetScale&lt;/a&gt; - for storing the actual user and link data&lt;br&gt;
Whether you choose to deploy it locally or integrate it into your existing infrastructure, you'll need to create accounts with the mentioned service providers. Furthermore, you can use &lt;a href="https://postmarkapp.com/"&gt;Postmark&lt;/a&gt; for sending emails and &lt;a href="https://unsplash.com/"&gt;Unsplash&lt;/a&gt; to customise your OpenGraph images.&lt;/p&gt;

&lt;p&gt;There is no Docker image, but installation is smooth nonetheless, thanks to a nice looking documentation powered by &lt;a href="https://mintlify.com/"&gt;Mintlify&lt;/a&gt;. The only issues I ran into, while setting it up locally, were missing &lt;code&gt;POSTMARK_API_KEY&lt;/code&gt; (optional according to the documentation) and &lt;code&gt;@dub/ui&lt;/code&gt; and &lt;code&gt;@dub/utils&lt;/code&gt; modules not building properly. But it was nothing an average technical user can't solve.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--smU4mm5h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711731880300/1dad0801-c588-4b7a-bcfe-abe379d6af4a.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--smU4mm5h--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711731880300/1dad0801-c588-4b7a-bcfe-abe379d6af4a.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" alt="Dub screenshot" width="800" height="614"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Analytics provide visits, referrers, locations by country or city, devices, browsers, and operating systems. Essentially, it covers everything you might need to effectively track your campaign's performance. What I found the most impressive with Dub.co is its extensive options for link creation: UTM parameters, custom social media cards, link cloaking, password protection, expiration date, iOS, Android and Geo-based targeting. It's all there! 🤯&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--TzgYv9Ny--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711732277092/2dae4042-34f7-446f-a185-9ae2d9c6cf35.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--TzgYv9Ny--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711732277092/2dae4042-34f7-446f-a185-9ae2d9c6cf35.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" alt="Dub create link screenshot" width="800" height="641"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/steventey"&gt;Steven Tey&lt;/a&gt; has done an outstanding job with Dub.co, and its success is evident from its recent launch on &lt;a href="https://www.producthunt.com/posts/dub"&gt;Product Hunt&lt;/a&gt;. Dub.co quickly rose to become 1# Product of the Day and 1# Product of the Week. With its continued momentum, it's well on its way to being a #1 Product of the Month. This significant recognition is sure to propel Dub.co to even greater success in the future.&lt;/p&gt;

&lt;p&gt;Dub.co is licensed under the AGPL-3.0 license and has garnered an impressive 15.7k stars on &lt;a href="https://github.com/dubinc/dub"&gt;GitHub&lt;/a&gt;. 👏&lt;/p&gt;

&lt;h2&gt;
  
  
  linktracker.info
&lt;/h2&gt;

&lt;p&gt;This article would not be complete without me mentioning my own take on link shortening and analytics: &lt;a href="http://linktracker.info/"&gt;LinkTracker&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--_xwooyLR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711878086926/a5100950-58f9-4fc5-a87b-b25183c17f36.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--_xwooyLR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711878086926/a5100950-58f9-4fc5-a87b-b25183c17f36.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" alt="LinkTracker screenshot" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It features a simple interface to create and organise short links. Links can be categorised and tagged. Analytics are similar to what we have seen with other link shorteners: visits, browsers, devices, referrers and countries.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--9xjXPVXN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711878275645/901c39ce-6a85-48e2-ba4a-bf9ed280e510.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--9xjXPVXN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://cdn.hashnode.com/res/hashnode/image/upload/v1711878275645/901c39ce-6a85-48e2-ba4a-bf9ed280e510.png%3Fauto%3Dcompress%2Cformat%26format%3Dwebp" alt="LinkTracker analytics" width="800" height="440"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;All shortened links are managed in a single table view, with statistics shown below. Currently, statistics are aggregated for all the links, except for visits, which are the most important statistic and therefore also shown for individual links.&lt;/p&gt;

&lt;p&gt;Tech-stack is Next.js, TailwindCSS and AntDesign. Data is stored in a PostgreSQL database managed by Supabase, with Prisma serving as the ORM.&lt;/p&gt;

&lt;p&gt;It's completely free to use and you can try it at &lt;a href="http://linktracker.info/CRZFOg"&gt;https://linktracker.info&lt;/a&gt;. 🙏&lt;/p&gt;

&lt;h2&gt;
  
  
  Unshorten - just in case
&lt;/h2&gt;

&lt;p&gt;As with any link shortening service, it's essential to consider the potential risks associated with spam and security vulnerabilities. Open-source solutions often offer greater transparency and security assurances.&lt;/p&gt;

&lt;p&gt;If you ever encounter a short link and have doubts about its legitimacy, you can utilise the free "unshorten" tool available at &lt;a href="http://unshorten.me/"&gt;unshorten.me&lt;/a&gt;. This tool helps you expand shortened links, providing insight into their destination and assisting in verifying their authenticity.&lt;/p&gt;

&lt;h2&gt;
  
  
  Awesome list
&lt;/h2&gt;

&lt;p&gt;If you find this topic intriguing and wish to delve deeper, I highly recommend exploring the "awesome" &lt;a href="https://github.com/738/awesome-url-shortener#self-hosting-opensource"&gt;list on GitHub&lt;/a&gt; dedicated to link shortening and management tools.&lt;/p&gt;

&lt;p&gt;Thank you for taking the time to read this far. I hope you found the information useful. Feel free to reach out if you have any further questions or feedback. ✌️&lt;/p&gt;

</description>
      <category>urlshortener</category>
      <category>digitalmarketing</category>
      <category>linkanalytics</category>
      <category>linkshortener</category>
    </item>
    <item>
      <title>How I Built a Link Management Tool MVP in 4 Weeks with the Help of AI</title>
      <dc:creator>Samir Alibabic</dc:creator>
      <pubDate>Tue, 26 Sep 2023 10:31:34 +0000</pubDate>
      <link>https://dev.to/samiralibabic/how-i-built-a-link-management-tool-mvp-in-4-weeks-with-the-help-of-ai-436a</link>
      <guid>https://dev.to/samiralibabic/how-i-built-a-link-management-tool-mvp-in-4-weeks-with-the-help-of-ai-436a</guid>
      <description>&lt;h2&gt;
  
  
  Approach to product development
&lt;/h2&gt;

&lt;p&gt;As an indie developer, you have the freedom to explore your creativity, but the challenge lies in selecting an idea that's not only &lt;strong&gt;viable&lt;/strong&gt; but also &lt;strong&gt;achievable&lt;/strong&gt; when working solo. Ideally, it should be something that aligns with your interests, to keep you motivated and focused.&lt;/p&gt;

&lt;p&gt;I've often found myself overwhelmed by the sheer amount of work it takes to bring a concept to life, from brainstorming ideas to coding and finally getting it into the hands of users. Not to mention the knowledge and skills you have to acquire to be able to implement all of it.&lt;/p&gt;

&lt;p&gt;Luckily, in 2023, AI is advanced enough to assist us and speed up the whole process. Let's explore together how it can help.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Brainstorming Ideas&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;I had a few years of experience working as a software developer, and my interests spanned across tech, finance, aviation, space, and gaming. The vastness of these interests left me pondering over the right niche.&lt;/p&gt;

&lt;p&gt;To tackle this, I turned to &lt;a href="https://chat.openai.com/"&gt;ChatGPT&lt;/a&gt; for assistance. The goal was to find a project that I could develop quickly, test in the real world, and iterate on as needed.&lt;/p&gt;

&lt;p&gt;The prompts were engineered in such a way as to take into account my background, personal interests, knowledge, and skills. The AI considered factors like market trends, user needs, and competition, which helped narrow down the possibilities.&lt;/p&gt;

&lt;p&gt;The first idea AI came up with, was an educative 👩‍🎓 financial 💸 simulation game, FinSim 🏦.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Money, money, money,&lt;br&gt;&lt;br&gt;
Must be funny&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I found the idea appealing, but at the same time, I was a little skeptical about whether I could pull this off. It was supposed to be educational, but I wasn't an expert and I didn't have time to become one. It was just too much, even with AI as an assistant. So I said:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Let’s focus on something minimal, which could potentially be used or needed by lots of people online, a web or mobile app, that can be created (at least MVP) in a &lt;strong&gt;few weeks&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Selecting a Viable Idea&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;And that's how &lt;a href="https://www.linktracker.info/"&gt;LinkTracker&lt;/a&gt; was born. It's a link shortener, management, and analytics tool, in the form of a web application designed to help users manage, optimize, and track the performance of the links they share online. This idea had several advantages:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Relevance:&lt;/strong&gt; Link management is a ubiquitous need, not limited to any specific industry or niche. Anyone who shares links online could benefit from it. &lt;strong&gt;(Mistake #1)&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Passive Income Potential:&lt;/strong&gt; While the initial development required effort, the tool had the potential to generate almost passive income through subscription plans or ad placements. &lt;strong&gt;(Mistake #2)&lt;/strong&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Interest Alignment:&lt;/strong&gt; The project aligned with my interests in tech and web development, making it a project I could stay passionate about.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Defining the MVP&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The focus was on delivering fast, following a &lt;a href="https://en.wikipedia.org/wiki/Lean_startup"&gt;Lean&lt;/a&gt; approach to validate ideas quickly. With the idea in place, the next step was to define the Minimum Viable Product (MVP). AI played a crucial role in this phase as well. It assisted in creating a structured roadmap for development and prioritizing features based on their importance and feasibility.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;AI-Driven Feature Definition&lt;/strong&gt;
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Link Shortening:&lt;/strong&gt; One of the core features of &lt;a href="https://www.linktracker.info/"&gt;LinkTracker&lt;/a&gt; is the ability to quickly shorten links and copy them to the clipboard.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Tag and Category Management:&lt;/strong&gt; AI suggested a feature for adding tags and categories to links. Users could either create new tags and categories on the fly or select from existing ones, simplifying link organization.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Automatic Title Generation:&lt;/strong&gt; To enhance user experience, AI suggested generating titles for links based on the linked webpage's title.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Timestamps:&lt;/strong&gt; The fields like "created by," "created at," and "modified at" were populated without manual intervention.&lt;/p&gt;&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;

💡
And that's how you come up with ideas for a specific niche or market, without having insider knowledge. AI, even in its primitive form, has it!

&lt;/blockquote&gt;

&lt;p&gt;This is a simple example, and after some research and googling, everybody can come up with some features. But, remember, this is a LLM neural network, which was fed vast amounts of data, on any topic, and it always gives the most relevant topics.&lt;/p&gt;

&lt;p&gt;I like to think of it like a tag cloud, where tags are whole, dynamically generated paragraphs of text, and you can tap into this knowledge cloud without doing the research yourself.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Selecting the Right Technologies&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Choosing the right technologies is crucial in any development project. I opted for a combination of technologies that suited the project's requirements and my familiarity with them.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Frontend:&lt;/strong&gt; Instead of starting from scratch, I decided to use a SaaS starter kit called &lt;a href="https://nextacular.co/"&gt;Nextacular&lt;/a&gt;, built on &lt;a href="https://nextjs.org/"&gt;Next.js&lt;/a&gt;. It provided a multi-tenant app structure with &lt;a href="https://www.prisma.io/"&gt;Prisma&lt;/a&gt;, &lt;a href="https://tailwindcss.com/"&gt;TailwindCSS&lt;/a&gt;, and &lt;a href="https://stripe.com/"&gt;Stripe&lt;/a&gt; integration out of the box. For UI components, I opted for &lt;a href="https://ant.design/"&gt;Ant Design&lt;/a&gt;, a design system that had most of the components I needed.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Backend:&lt;/strong&gt; To streamline backend development, I utilized Next.js's ability to create &lt;a href="https://nextjs.org/docs/pages/building-your-application/routing/api-routes"&gt;REST APIs&lt;/a&gt;. I also deployed the application on &lt;a href="https://vercel.com/"&gt;Vercel&lt;/a&gt;, ensuring an efficient developer experience. For the database, I went with &lt;a href="https://supabase.com/"&gt;Supabase&lt;/a&gt;, a Backend-as-a-Service solution built on &lt;a href="https://www.postgresql.org/"&gt;PostgreSQL&lt;/a&gt;. Prisma served as the ORM to interact with the database.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI Assistance:&lt;/strong&gt; Amazon &lt;a href="https://aws.amazon.com/de/codewhisperer/"&gt;CodeWhisperer&lt;/a&gt; was instrumental in writing code snippets, especially in areas where I wasn't entirely familiar with the technologies involved. ChatGPT played a pivotal role in proposing features for the MVP, defining the backlog, and setting sprint goals. The AI was adept at managing the project, while I guided it to better fit my needs and schedule.&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;

💡
To deliver fast, utilize open-source software, starter kits, and known technologies. For learning and exploring new technologies, use AI.

&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Weekly Progression&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;The development process was divided into weekly sprints. Here's a summary of the weekly progression:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Week 1: Infrastructure and Database Setup&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Set up a local development environment and version control&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Configure and adapt Nextacular for my use case&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;User registration and authentication via SendGrid (E-Mail)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Create a database schema to store link-related information&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Week 2: UI and Core Features&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Build the user interface for managing and organizing links&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Implement link-shortening functionality to generate shortened URLs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Deployment to Vercel and CI/CD setup&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Week 3: Link Performance Analytics&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Update database schema to capture and store performance data&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Enhance UI with analytical data: browsers, devices, referrers, and countries&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Week 4: Legal compliance, Product Launch and User Feedback&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Drafting and publishing legal documents&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Launching the MVP into a public beta&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Gathering user feedback and implementing improvements&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Costs
&lt;/h3&gt;

&lt;p&gt;When embarking on the journey of product development and idea validation, one critical element to consider is cost management. It's paramount to keep expenses to a minimum, especially before your product starts generating revenue. The pitfalls of ignoring this aspect are evident in the stories of numerous indie builders and startups that faced &lt;strong&gt;financial struggles&lt;/strong&gt;, and, in some cases, even &lt;strong&gt;accumulated debt&lt;/strong&gt; due to uncontrolled costs.&lt;/p&gt;

&lt;p&gt;Now, let's talk about &lt;a href="https://www.linktracker.info/"&gt;LinkTracker&lt;/a&gt;'s costs. How much does it cost to run this platform? Is it $10 per month, $150 per month, or perhaps a whopping $2500 per month? The answer may surprise you:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;$0 per month.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Yes, you read that correctly – zero dollars for hosting and maintaining a fully functional web application. The only recurring expenditure is a mere $20 per year for the domain. 😁&lt;/p&gt;

&lt;p&gt;You might be wondering how this is possible. The secret lies in the strategic choice of technologies. If you delve a bit deeper, you'll discover that all the services employed in the &lt;a href="https://www.linktracker.info/"&gt;LinkTracker&lt;/a&gt; ecosystem offer free initial tiers, which aligns perfectly with the needs and budget constraints of startups and indie developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;strong&gt;Conclusion&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;From idea generation to feature definition, technology selection, and weekly progression, AI played a pivotal role in making the development of &lt;a href="https://www.linktracker.info/"&gt;LinkTracker&lt;/a&gt; a reality in just a few weeks.&lt;/p&gt;

&lt;p&gt;However, having another tool in your arsenal does not make you immune to making mistakes. Besides coding mistakes while using new and unknown tech, here are the two mistakes or wrong assumptions I made when selecting a viable idea:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;relevance and&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;passive income potential&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;While it is true, that anybody who shares links online, can benefit from a link management tool, people rarely bother. It's only when it's their job, and it becomes tedious and cumbersome, that people turn to tools. For me, that meant, it was not for everybody and I had to find a focus group. That was &lt;strong&gt;mistake #1&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;

💡
Only because I find it useful, does not mean there is a market for it.

&lt;/blockquote&gt;

&lt;p&gt;Whenever you build something for the people, you can be sure they will come back with questions. That means, client services and support. 🙄 Assuming it will run on autopilot without any effort was my &lt;strong&gt;mistake #2&lt;/strong&gt;.&lt;/p&gt;

&lt;blockquote&gt;

💡
As software developers, mostly focused on our code, we forget to see the bigger picture in which software is just a single cog ⚙️ in a complex business machine 🚜.

&lt;/blockquote&gt;

&lt;p&gt;I embarked on the indie development path to fuel my growth as a software developer. In my view, every developer, regardless of their background, should work on side projects to expand their horizons.&lt;/p&gt;

&lt;p&gt;LinkTracker's creation was an invaluable learning experience, even without immediate financial gains (yet 😈). No regrets here.&lt;/p&gt;

&lt;p&gt;My future holds exciting prospects: crafting new ideas, enhancing product visibility, networking with industry leaders, and soaking up knowledge in business, marketing, sales, startups, and cutting-edge tech.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;AI has revolutionized development, making complex tasks more manageable. Whether you're an aspiring indie developer or someone with a great idea, consider AI's potential to supercharge your project.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>marketing</category>
      <category>ai</category>
      <category>chatgpt</category>
    </item>
  </channel>
</rss>
