<?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>Forem: Karl L. Hughes</title>
    <description>The latest articles on Forem by Karl L. Hughes (@karllhughes).</description>
    <link>https://forem.com/karllhughes</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F79634%2F98f80e02-5efd-4b9b-9588-120e1b268fdf.png</url>
      <title>Forem: Karl L. Hughes</title>
      <link>https://forem.com/karllhughes</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/karllhughes"/>
    <language>en</language>
    <item>
      <title>DNS Propagation Doesn't Have to Take 24 Hours</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Fri, 13 Feb 2026 11:26:11 +0000</pubDate>
      <link>https://forem.com/karllhughes/dns-propagation-doesnt-have-to-take-24-hours-476e</link>
      <guid>https://forem.com/karllhughes/dns-propagation-doesnt-have-to-take-24-hours-476e</guid>
      <description>&lt;p&gt;You've probably been there. You update an A record in your DNS dashboard, then refresh your browser three times in a row. Nothing. Still showing the old server.&lt;/p&gt;

&lt;p&gt;Then someone in a different timezone messages you saying they can see the new version. But you can't. You check again. Still nothing.&lt;/p&gt;

&lt;p&gt;Someone on your team says, "Don't worry, DNS takes 24-48 hours to propagate."&lt;/p&gt;

&lt;p&gt;I used to accept this waiting period as normal. It's not. DNS changes don't take 24 hours because the internet is slow. They take that long because someone left a default or high TTL value on the A record and never thought about changing it.&lt;/p&gt;

&lt;p&gt;"Propagation" isn't some mysterious internet ritual. In reality, it's just a cache that expires. And here's the thing: you control the expiry timer. Set your A record’s TTL to 300 seconds (name.com's standard minimum) before making changes, and you're looking at minutes, not days.&lt;/p&gt;

&lt;p&gt;In this post, I'll explain how DNS caching actually works, how to use TTL values strategically, and how to make infrastructure changes without any downtime.&lt;/p&gt;

&lt;h2&gt;
  
  
  What "Propagation" Really Means
&lt;/h2&gt;

&lt;p&gt;When you &lt;a href="https://www.name.com/support/articles/206127137-adding-dns-records-and-templates" rel="noopener noreferrer"&gt;update a DNS record at name.com&lt;/a&gt;, the change takes effect immediately on name.com's authoritative nameservers. There's no delay on their end.&lt;/p&gt;

&lt;p&gt;The lag you experience isn't happening on name.com's infrastructure. It's everywhere else.&lt;/p&gt;

&lt;p&gt;The internet doesn't work by constantly checking name.com's DNS servers for your latest DNS records. That would create millions of unnecessary queries every second. Instead, DNS uses a layered caching system.&lt;/p&gt;

&lt;p&gt;When someone requests your domain, their query goes through a recursive resolver first. This resolver checks its local cache before reaching out to authoritative servers. If the record is cached, the resolver just returns that cached value without ever contacting name.com.&lt;/p&gt;

&lt;p&gt;That's your bottleneck. "DNS propagation" is really just waiting for cached records to expire across thousands of recursive resolvers around the world.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Two Types of DNS Servers
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Authoritative nameservers&lt;/strong&gt; are where your actual DNS records live. When you manage DNS records in the &lt;a href="https://www.name.com/support/articles/205188648-using-name-com-s-default-nameservers" rel="noopener noreferrer"&gt;name.com dashboard&lt;/a&gt;, you're modifying data on name.com's authoritative servers (ns1.name.com through ns4.name.com). Changes here happen instantly. Update an A record and it's live on the authoritative server in seconds.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Recursive resolvers&lt;/strong&gt; are intermediary servers run by ISPs, network administrators, or public DNS providers like Google (8.8.8.8) and Cloudflare (1.1.1.1). When your browser needs to resolve a domain name, it asks a recursive resolver. That resolver either returns a cached answer or queries the authoritative server on your behalf. Then it caches the result for future requests.&lt;/p&gt;

&lt;p&gt;Your users aren't querying name.com's authoritative servers directly. They're hitting recursive resolvers that might have stale cache. The "propagation period" is just the time it takes for those cached entries to reach their expiration.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgnc2vxqiuqqnk6i393qt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgnc2vxqiuqqnk6i393qt.png" alt="How DNS Caching and TTL Affect Propagation" width="800" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  TTL: Your Control Mechanism
&lt;/h3&gt;

&lt;p&gt;TTL (Time To Live) is measured in seconds and gets attached to every &lt;a href="https://www.name.com/support/articles/205516858-understanding-dns-record-types" rel="noopener noreferrer"&gt;DNS record&lt;/a&gt;. It tells recursive resolvers how long they can trust the cached data before asking again.&lt;/p&gt;

&lt;p&gt;An &lt;a href="https://www.name.com/support/articles/115004893508-adding-an-a-record" rel="noopener noreferrer"&gt;A record&lt;/a&gt; with a TTL of 3600 means "you can cache this IP address for one hour."&lt;/p&gt;

&lt;p&gt;When you change that A record's IP, resolvers that previously cached it won't see the change until their cached copy expires. If your TTL was 86400 seconds (24 hours), some resolvers might not pick up the new IP for a full day.&lt;/p&gt;

&lt;p&gt;That's where the "DNS takes a day to propagate" myth comes from. It's not a limitation of DNS. It's just a consequence of how you've configured it.&lt;/p&gt;

&lt;p&gt;Lower the TTL to 300 seconds (5 minutes), and the maximum cache duration drops to 5 minutes. Most resolvers respect TTL values. They'll query the authoritative server again once the timer runs out. This is how you compress propagation time from hours to minutes.&lt;/p&gt;

&lt;p&gt;name.com enforces a 300-second minimum TTL on most record types to keep the global DNS infrastructure stable. You can't go lower than that, but 5 minutes is fast enough for most situations.&lt;/p&gt;

&lt;p&gt;The trade-off is query volume. Shorter TTLs mean more frequent queries to authoritative servers, which slightly increases load. For most sites, this difference doesn't really matter.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Problem Nobody Talks About: Negative Caching
&lt;/h2&gt;

&lt;p&gt;There's another type of caching that catches people off-guard during new site launches.&lt;/p&gt;

&lt;p&gt;If someone visits your domain &lt;em&gt;before&lt;/em&gt; you've configured DNS records, their resolver gets an NXDOMAIN response (domain doesn't exist). That negative response gets cached too.&lt;/p&gt;

&lt;p&gt;The cache duration for negative responses is controlled by the &lt;a href="https://www.ibm.com/docs/en/ns1-connect?topic=answers-types-dns-records#guide_to_dns_record_types__title__34" rel="noopener noreferrer"&gt;SOA record&lt;/a&gt;'s negative TTL field, which is often set to several hours. According to &lt;a href="https://www.rfc-editor.org/rfc/rfc2308" rel="noopener noreferrer"&gt;RFC 2308&lt;/a&gt;, the negative TTL is determined by the minimum of the SOA MINIMUM field and the SOA TTL. This can be much longer than your A record's TTL.&lt;/p&gt;

&lt;p&gt;Here's the scenario: You register a domain. Someone checks if it's live before you finish setting it up. They get NXDOMAIN. Their resolver caches that negative answer for hours.&lt;/p&gt;

&lt;p&gt;When you finally configure the DNS records, that person still can't access your site. Their resolver isn't checking again because it has a valid (though incorrect) cached negative response.&lt;/p&gt;

&lt;p&gt;I've seen this mess up coordinated launches. You announce a new site, people check immediately, get NXDOMAIN, and then report "the site doesn't work" even after you've configured everything correctly.&lt;/p&gt;

&lt;p&gt;The fix is simple: configure all DNS records before announcing anything publicly. Don't give resolvers a chance to cache a negative response in the first place.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Choose the Right TTL
&lt;/h2&gt;

&lt;p&gt;You shouldn't always use the lowest possible TTL. High TTLs reduce query load on authoritative servers, improve response speed (cached lookups are faster than fresh queries), and give you some resilience if your DNS provider has a temporary outage.&lt;/p&gt;

&lt;p&gt;Low TTLs give you agility but generate more traffic to authoritative servers.&lt;/p&gt;

&lt;p&gt;The right TTL depends on how stable your infrastructure is and how often you make changes:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Use 86400 seconds (24 hours) or higher when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Your infrastructure is stable and changes are rare&lt;/li&gt;
&lt;li&gt;You want maximum efficiency on DNS query costs&lt;/li&gt;
&lt;li&gt;You're running a static site that won't move servers&lt;/li&gt;
&lt;li&gt;You need DDoS protection (cached records reduce attack surface)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use 300-600 seconds (5-10 minutes) when:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You're planning a migration or deployment soon&lt;/li&gt;
&lt;li&gt;You need rapid failover for high-availability setups&lt;/li&gt;
&lt;li&gt;You're in a development environment with frequent changes&lt;/li&gt;
&lt;li&gt;You want the ability to quickly roll back if something breaks&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Use 3600 seconds (1 hour) for most production sites.&lt;/strong&gt; It's the sweet spot. Changes take effect within an hour, which is fine for most situations, and query volume stays reasonable.&lt;/p&gt;

&lt;p&gt;The pattern I use for controlled migrations: run with a high TTL during normal operations, drop to 300 seconds at least 48 hours before planned changes, do the migration, verify everything works, then raise the TTL back up.&lt;/p&gt;

&lt;p&gt;This keeps the query load low most of the time while giving you precise control when it matters.&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Migrate With Zero Downtime
&lt;/h2&gt;

&lt;p&gt;A true zero-downtime migration means both the old and new servers need to serve traffic at the same time during the transition. You can't control which resolver has cached which IP, so both IPs need to return valid responses.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 1: Preparation (48 Hours Before)
&lt;/h3&gt;

&lt;p&gt;Log into the &lt;a href="https://www.name.com/support/articles/206127137-adding-dns-records-and-templates" rel="noopener noreferrer"&gt;name.com DNS management interface&lt;/a&gt; and find the DNS record you're going to change. Note the current TTL value.&lt;/p&gt;

&lt;p&gt;If it's higher than 300 seconds, change it to 300 seconds now.&lt;/p&gt;

&lt;p&gt;Then wait. The wait time needs to be at least as long as the previous TTL value. If your A record had a TTL of 86400 seconds, you need to wait 24 hours. I usually wait 48 hours to be safe.&lt;/p&gt;

&lt;p&gt;This ensures that all resolvers that cached your record at the old, higher TTL will have their cache expire before you make the switch.&lt;/p&gt;

&lt;p&gt;You really can't skip this step. If you do, you're back to unpredictable propagation times measured in hours or days.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 2: Set Up Both Servers
&lt;/h3&gt;

&lt;p&gt;While you're waiting for old TTL caches to expire, get your new server ready. Deploy your application, configure your web server (nginx, Apache, Caddy, whatever you use), and install SSL certificates.&lt;/p&gt;

&lt;p&gt;Test the new server by hitting it directly via IP address or by temporarily modifying your local &lt;code&gt;/etc/hosts&lt;/code&gt; file to point your domain at the new IP.&lt;/p&gt;

&lt;p&gt;Here's the critical part: &lt;strong&gt;don't shut down the old server&lt;/strong&gt;. It needs to stay running.&lt;/p&gt;

&lt;p&gt;During the transition, users will hit either the old or new server depending on which IP their resolver has cached. Both need to work.&lt;/p&gt;

&lt;p&gt;For apps with databases, make sure both servers can access the same database or that you've synced the database state between them. For stateless applications, this is easier. Just make sure both servers have the same code and configuration.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 3: Make the DNS Change
&lt;/h3&gt;

&lt;p&gt;After 48 hours have passed and your new server is tested and ready, update the DNS record.&lt;/p&gt;

&lt;p&gt;In the name.com dashboard, change the &lt;a href="https://www.name.com/support/articles/205188538-pointing-your-domain-to-hosting-with-a-records" rel="noopener noreferrer"&gt;A record&lt;/a&gt; IP address from the old server to the new server. Double-check that the TTL is still 300 seconds. Save it.&lt;/p&gt;

&lt;p&gt;The change is live on name.com's authoritative servers immediately. Now you're in the transition window.&lt;/p&gt;

&lt;p&gt;For the next 5-10 minutes, some users will hit the old server (cached IP) and some will hit the new server (fresh DNS query). Both work, so nobody sees downtime.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 4: Verify Everything
&lt;/h3&gt;

&lt;p&gt;Don't trust your browser. Don't trust a single &lt;code&gt;ping&lt;/code&gt; command. You need to check propagation across multiple public DNS resolvers to get a real picture.&lt;/p&gt;

&lt;p&gt;Use the &lt;code&gt;dig&lt;/code&gt; command (or &lt;a href="https://www.nslookup.io/learning/how-to-specify-a-dns-server-in-nslookup/" rel="noopener noreferrer"&gt;nslookup&lt;/a&gt; on Windows) to query specific resolvers:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;# Query Google's public DNS&lt;/span&gt;
dig @8.8.8.8 yourdomain.com A

&lt;span class="c"&gt;# Query Cloudflare's public DNS  &lt;/span&gt;
dig @1.1.1.1 yourdomain.com A

&lt;span class="c"&gt;# Query Quad9&lt;/span&gt;
dig @9.9.9.9 yourdomain.com A
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Look at the "ANSWER SECTION" in each response. If all resolvers return the new IP address, you're done. If they're mixed (some returning the old IP, some returning the new), you're still in the transition window. Wait a few minutes and check again.&lt;/p&gt;

&lt;p&gt;You can also use web tools like &lt;a href="https://www.whatsmydns.net/" rel="noopener noreferrer"&gt;whatsmydns.net&lt;/a&gt; to check DNS resolution from multiple locations around the world at once. This gives you a visual confirmation that the change has spread globally.&lt;/p&gt;

&lt;p&gt;If something goes wrong and you need to roll back, just update the A record back to the old IP. With a 300-second TTL, the rollback will take effect within 5 minutes. That's your safety net.&lt;/p&gt;

&lt;h3&gt;
  
  
  Phase 5: Clean Up
&lt;/h3&gt;

&lt;p&gt;Once you've confirmed that propagation is complete and traffic has fully moved to the new server (check your old server's logs to make sure it's not getting any more requests), you can raise the TTL back to a normal value. This reduces ongoing query load.&lt;/p&gt;

&lt;p&gt;I usually wait 24 hours after migration to make sure everything is stable, then edit the DNS record and change the TTL from 300 seconds to 3600 seconds (1 hour) or 86400 seconds (24 hours).&lt;/p&gt;

&lt;p&gt;Only after the new server is stable and the TTL has been raised should you shut down the old server.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools for Verification
&lt;/h2&gt;

&lt;p&gt;The &lt;code&gt;dig&lt;/code&gt; command is the standard tool for DNS debugging. It comes installed by default on most Unix-like systems (Linux, macOS) and you can get it on Windows through BIND utilities.&lt;/p&gt;

&lt;p&gt;Basic syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig yourdomain.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This queries your system's default resolver. To query a specific resolver, use the &lt;code&gt;@&lt;/code&gt; syntax:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig @8.8.8.8 yourdomain.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;To see the full path including all the intermediate nameservers, use the trace option:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;dig +trace yourdomain.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The trace option shows each step: root nameservers, TLD nameservers, authoritative nameservers. This helps you figure out where in the DNS chain something is breaking.&lt;/p&gt;

&lt;p&gt;For quick checks during a migration, I like to make a simple shell script that queries multiple resolvers and compares the results:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="c"&gt;#!/bin/bash&lt;/span&gt;
&lt;span class="nv"&gt;DOMAIN&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;
&lt;span class="nv"&gt;RESOLVERS&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s2"&gt;"8.8.8.8 8.8.4.4 1.1.1.1 1.0.0.1 9.9.9.9"&lt;/span&gt;

&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"Checking DNS propagation for &lt;/span&gt;&lt;span class="nv"&gt;$DOMAIN&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"========================================"&lt;/span&gt;

&lt;span class="k"&gt;for &lt;/span&gt;resolver &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nv"&gt;$RESOLVERS&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt; &lt;span class="k"&gt;do
    &lt;/span&gt;&lt;span class="nv"&gt;result&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="si"&gt;$(&lt;/span&gt;dig +short @&lt;span class="nv"&gt;$resolver&lt;/span&gt; &lt;span class="nv"&gt;$DOMAIN&lt;/span&gt; A&lt;span class="si"&gt;)&lt;/span&gt;
    &lt;span class="nb"&gt;echo&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="nv"&gt;$resolver&lt;/span&gt;&lt;span class="s2"&gt;: &lt;/span&gt;&lt;span class="nv"&gt;$result&lt;/span&gt;&lt;span class="s2"&gt;"&lt;/span&gt;
&lt;span class="k"&gt;done&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Save this file as &lt;code&gt;check_dns_propagation.sh&lt;/code&gt;, give it “execute” permissions (&lt;code&gt;chmod +x check_dns_propagation.sh&lt;/code&gt;) and then run it like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;./check_dns_propagation.sh yourdomain.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run this every few minutes after making the DNS change. When all resolvers return the same IP, you're done.&lt;/p&gt;

&lt;p&gt;On Windows, you can do something similar with the &lt;code&gt;nslookup&lt;/code&gt; command. Just add the resolver as a second parameter:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;nslookup yourdomain.com 8.8.8.8
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The output looks a bit different than &lt;code&gt;dig&lt;/code&gt; but you can still just look for the new IP address you're expecting to see in your A record.&lt;/p&gt;

&lt;h2&gt;
  
  
  More Advanced Scenarios
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Using CNAME Records
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.name.com/support/articles/115004895548-adding-a-cname-record" rel="noopener noreferrer"&gt;CNAME records&lt;/a&gt; point one domain name to another. They're useful when you want multiple domain names to resolve to the same place, and you want to update them all by changing a single A record.&lt;/p&gt;

&lt;p&gt;But CNAME records have limits. &lt;a href="https://www.rfc-editor.org/rfc/rfc1034" rel="noopener noreferrer"&gt;RFC 1034&lt;/a&gt; doesn't allow CNAMEs at the apex domain (example.com). You can only use them for subdomains (&lt;a href="http://www.example.com" rel="noopener noreferrer"&gt;www.example.com&lt;/a&gt;, blog.example.com, etc.). For apex domains, you need A records or &lt;a href="https://www.name.com/support/articles/115010493967-adding-an-aname-alias-record" rel="noopener noreferrer"&gt;ANAME records&lt;/a&gt; if your provider supports them.&lt;/p&gt;

&lt;p&gt;When you use CNAMEs, pay attention to TTL values on both the CNAME record and the target A record. A resolver caches both. Even if your CNAME has a 300-second TTL, if the target A record has an 86400-second TTL, you won't see changes for 24 hours.&lt;/p&gt;

&lt;h3&gt;
  
  
  MX Records for Email
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://www.name.com/support/articles/205188498-setting-up-email-with-mx-records" rel="noopener noreferrer"&gt;MX records&lt;/a&gt; tell email servers where to deliver mail for your domain. When you migrate email services, the same TTL rules apply. Lower the MX record TTL to 300 seconds before migration, make the change, wait for propagation, then raise it back up.&lt;/p&gt;

&lt;p&gt;Email has a built-in retry mechanism that helps here. If email delivery fails, the sending server will try again later. This gives you some forgiveness during email migrations, but you still want to keep the window of inconsistent MX records as short as possible.&lt;/p&gt;

&lt;h3&gt;
  
  
  Using the API for Automation
&lt;/h3&gt;

&lt;p&gt;For infrastructure-as-code workflows or automated failover systems, name.com has an &lt;a href="https://docs.name.com/" rel="noopener noreferrer"&gt;API for DNS management&lt;/a&gt;. You can &lt;a href="https://docs.name.com/docs/api-reference/dns/create-record" rel="noopener noreferrer"&gt;create&lt;/a&gt;, &lt;a href="https://docs.name.com/docs/api-reference/dns/update-record" rel="noopener noreferrer"&gt;update&lt;/a&gt;, and &lt;a href="https://docs.name.com/docs/api-reference/dns/delete-record" rel="noopener noreferrer"&gt;delete&lt;/a&gt; records programmatically.&lt;/p&gt;

&lt;p&gt;This lets you do things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Run automated health checks that update A records when a server goes down&lt;/li&gt;
&lt;li&gt;Write blue-green deployment scripts that switch DNS between environments&lt;/li&gt;
&lt;li&gt;Set up dynamic DNS for services running on infrastructure with changing IPs&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The &lt;a href="https://docs.name.com/docs/api-overview" rel="noopener noreferrer"&gt;name.com API documentation&lt;/a&gt; covers authentication, rate limits, and has example requests. Most DNS operations complete within seconds, which makes API-driven updates practical for production automation.&lt;/p&gt;

&lt;h2&gt;
  
  
  Final Thoughts
&lt;/h2&gt;

&lt;p&gt;DNS propagation is really just cache expiring using a timer you control.&lt;/p&gt;

&lt;p&gt;The "24-48 hour wait" is a leftover from default TTL settings that nobody bothered to change. Lower your TTL to 300 seconds before making changes, do the switch while keeping both old and new infrastructure running, verify propagation across multiple resolvers, then raise the TTL back up once things are stable.&lt;/p&gt;

&lt;p&gt;name.com gives you what you need: authoritative nameservers with 300-second TTL minimums, a straightforward interface for managing records, and API access for automation. The rest comes down to how you execute.&lt;/p&gt;

&lt;p&gt;Plan your changes, adjust TTLs ahead of time, keep dual-serving capability during transitions, verify completion, then clean up. This works for any DNS record type, any size infrastructure, and any complexity of deployment.&lt;/p&gt;

&lt;p&gt;The underlying mechanism is always the same: control the cache timer, and you control the migration timeline.&lt;/p&gt;

&lt;p&gt;I'd love to hear about your DNS migration experiences. Have you run into the "24-48 hour propagation" problem? What's the longest you've waited for DNS changes to take effect? Let me know in the comments.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Measuring AI's Real Impact on Your Engineering Team</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Wed, 03 Dec 2025 17:52:42 +0000</pubDate>
      <link>https://forem.com/karllhughes/measuring-ais-real-impact-on-your-engineering-team-39fb</link>
      <guid>https://forem.com/karllhughes/measuring-ais-real-impact-on-your-engineering-team-39fb</guid>
      <description>&lt;p&gt;A few months back, the tech world got hit with a wave of panic-inducing headlines. CEOs and tech leaders were on stages everywhere claiming that massive percentages of their code was now AI-generated. If you weren't on board, you were basically toast.&lt;/p&gt;

&lt;p&gt;This kicked off what I can only describe as a spending frenzy. Companies started signing six and seven-figure contracts for AI coding tools, desperate not to fall behind. The question everyone was asking was simple: "How do we get our entire team using AI?"&lt;/p&gt;

&lt;p&gt;Now? The conversation's changing. The companies that jumped in early are starting to ask a much harder question: "Is this actually worth it?"&lt;/p&gt;

&lt;p&gt;We've moved past the hype cycle into the messy reality of execution. Instead of "Are we using AI?" teams are asking "Are we using it well?" And here's the problem: the metrics we've relied on for years to measure engineering productivity? They're completely inadequate for this new world.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Your Current Metrics Are Lying to You
&lt;/h2&gt;

&lt;p&gt;Trying to measure AI's impact with traditional engineering metrics is like trying to figure out how fuel-efficient your Tesla is by checking its oil consumption. The engine's changed completely, so the gauges you're looking at are basically useless.&lt;/p&gt;

&lt;h3&gt;
  
  
  Cycle Times That Mislead
&lt;/h3&gt;

&lt;p&gt;Your cycle time might drop by 50%, and you'll celebrate. But here's what's really happening: AI shortened your coding phase dramatically, but the code it generated is so convoluted that your review phase doubled in length. You haven't actually gained anything. You've just moved the bottleneck somewhere else in your pipeline.&lt;/p&gt;

&lt;p&gt;Traditional tools can't see this shift, so you end up celebrating a vanity metric while your team drowns in review friction.&lt;/p&gt;

&lt;h3&gt;
  
  
  DORA Metrics That Can't Diagnose
&lt;/h3&gt;

&lt;p&gt;Don't get me wrong, &lt;a href="https://dora.dev/" rel="noopener noreferrer"&gt;DORA metrics&lt;/a&gt; are great for measuring overall pipeline health. But they're too high-level to tell you anything specific about AI's impact. Your Change Failure Rate goes up, and DORA just shrugs. It can't tell you if that's because of poorly-written AI prompts, bad code quality from your AI tool, or something completely unrelated to AI at all.&lt;/p&gt;

&lt;p&gt;It's a smoke alarm that can't tell you where the fire actually is.&lt;/p&gt;

&lt;h3&gt;
  
  
  Lines of Code (Still Terrible)
&lt;/h3&gt;

&lt;p&gt;Lines of code has always been a terrible metric, but AI makes it completely absurd. An AI tool can spit out thousands of lines in seconds. Measuring productivity this way is worse than useless because it actively rewards the wrong behavior.&lt;/p&gt;

&lt;h2&gt;
  
  
  A Better Framework for Measuring AI ROI
&lt;/h2&gt;

&lt;p&gt;An engineering organization is fundamentally a system: you put things in (headcount, tools, cloud spend) and you get things out (a working product). A real framework for measuring AI ROI has to connect these inputs to outputs in a meaningful way.&lt;/p&gt;

&lt;p&gt;Here's how to think about this in stages, from basic to sophisticated. I've broken it down into four pillars that every team needs to address.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pillar 1: Measure Real Engineering Velocity
&lt;/h3&gt;

&lt;p&gt;This is where everyone starts, because the core promise of AI is speed. Your job is to quantify that speed objectively.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Start Simple:&lt;/strong&gt; Track Basic Output
&lt;/h4&gt;

&lt;p&gt;First, just measure throughput. Look at pull requests merged per week or issues resolved. This gives you a baseline of what your team is actually shipping.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Get More Sophisticated:&lt;/strong&gt; Understand How Work Gets Done
&lt;/h4&gt;

&lt;p&gt;Next, you need to understand the mechanics of that work. Start tracking your &lt;a href="https://www.span.app/blog/introducing-span-detect-1" rel="noopener noreferrer"&gt;AI Code Ratio&lt;/a&gt;, which is just the percentage of your merged code that came from AI. At the same time, analyze your team's calendars to see if AI is actually freeing up engineers for more focused work, or if they're still spending all their time in meetings.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;The Gold Standard:&lt;/strong&gt; Segment by AI Usage
&lt;/h4&gt;

&lt;p&gt;The ultimate goal here is to connect AI usage directly to outcomes. Segment your cycle time metrics by how much AI was used in each pull request. This lets you answer the most important question: "Are PRs with lots of AI-generated code actually moving through our system faster than human-written code?"&lt;/p&gt;

&lt;h3&gt;
  
  
  Pillar 2: Measure Quality and Maintainability
&lt;/h3&gt;

&lt;p&gt;Speed without quality is just technical debt with a stopwatch. This pillar measures the hidden costs you're accumulating.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Start Simple:&lt;/strong&gt; Track Your Change Failure Rate
&lt;/h4&gt;

&lt;p&gt;Begin with your Change Failure Rate. It's a lagging indicator, but it gives you a good sense of how many deployments are breaking things in production.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Get More Sophisticated:&lt;/strong&gt; Look at Rework and Complexity
&lt;/h4&gt;

&lt;p&gt;A more proactive approach is tracking your Rework Rate, which is the percentage of code that gets rewritten shortly after being merged. Are your AI-heavy PRs more brittle than human-written code? At the same time, start measuring &lt;a href="https://en.wikipedia.org/wiki/Cyclomatic_complexity" rel="noopener noreferrer"&gt;code complexity&lt;/a&gt;. Is the AI generating clean, maintainable code, or is it creating unreadable messes that will haunt you for years?&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;The Gold Standard:&lt;/strong&gt; Track Defects by AI Dosage
&lt;/h4&gt;

&lt;p&gt;The real test of quality is measuring your Defect Escape Rate for AI-generated code versus human-written code. This requires patience, you'll usually need about 90 days post-deployment to see meaningful patterns, but it gives you the definitive answer on whether AI is improving or degrading your customer experience.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pillar 3: Measure Organizational Impact
&lt;/h3&gt;

&lt;p&gt;AI's impact goes way beyond your codebase. It changes your team dynamics and your culture.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Start Simple:&lt;/strong&gt; Track Who's Using the Tools
&lt;/h4&gt;

&lt;p&gt;First, just measure adoption. Who's actually using your AI tools? Track weekly active usage across your organization to see which teams are leaning in and which ones are holding back.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Get More Sophisticated:&lt;/strong&gt; Measure Onboarding Speed
&lt;/h4&gt;

&lt;p&gt;One of AI's big promises is that it helps people learn faster. Start measuring Time to 10th PR for new engineers. Is AI actually helping them become productive members of the team sooner?&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;The Gold Standard:&lt;/strong&gt; Assess the Talent Pipeline Risk
&lt;/h4&gt;

&lt;p&gt;Here's something most teams miss: AI is automating a lot of the simple, repetitive work that used to be the training ground for junior engineers. This creates a real long-term risk. Are you accidentally eliminating the path from junior to senior engineer? This is harder to quantify, but it's critical for any serious ROI discussion.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pillar 4: Measure Total Cost
&lt;/h3&gt;

&lt;p&gt;Once you understand velocity, quality, and organizational impact, you can finally connect everything to cost.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Start Simple:&lt;/strong&gt; Compare License Costs to Headcount
&lt;/h4&gt;

&lt;p&gt;The most basic analysis is just comparing your annual spend on AI tools to what you'd pay for an additional engineer.&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;Get More Sophisticated:&lt;/strong&gt; Track Token Usage
&lt;/h4&gt;

&lt;p&gt;Next, start tracking token consumption. Which teams or engineers are power users? Where are you burning through credits the fastest?&lt;/p&gt;

&lt;h4&gt;
  
  
  &lt;strong&gt;The Gold Standard:&lt;/strong&gt; Automate R&amp;amp;D Capitalization
&lt;/h4&gt;

&lt;p&gt;The most advanced approach is using AI to automatically classify your engineering work into categories like "New Feature," "Maintenance," or "Infrastructure." This lets you generate automated &lt;a href="https://www.investopedia.com/terms/c/capitalizedcost.asp" rel="noopener noreferrer"&gt;R&amp;amp;D cost capitalization reports&lt;/a&gt; for finance, turning your engineering data into a strategic business asset.&lt;/p&gt;

&lt;h2&gt;
  
  
  Building the Right Culture Around Metrics
&lt;/h2&gt;

&lt;p&gt;A framework doesn't matter if your team doesn't trust it. Engineering metrics can be incredibly valuable, but if you implement them poorly, you'll just create fear and mistrust.&lt;/p&gt;

&lt;h3&gt;
  
  
  Be Transparent About What You're Measuring
&lt;/h3&gt;

&lt;p&gt;The "why" matters more than the "what." Tell your team openly what you're measuring and why. Frame it as a tool for finding and fixing systemic problems, not for micromanaging individuals.&lt;/p&gt;

&lt;h3&gt;
  
  
  Focus on Systems, Not People
&lt;/h3&gt;

&lt;p&gt;Use metrics to understand the health of your development process, not to create a performance leaderboard. The question should be "Is our system working?" not "Who's the fastest coder?"&lt;/p&gt;

&lt;h3&gt;
  
  
  Start Conversations, Don't End Them
&lt;/h3&gt;

&lt;p&gt;Metrics should kick off discussions, not close them. If review times are spiking for a team, don't just demand they move faster. Ask what's getting in their way. Is the process too complex? Is the code too hard to understand?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Surprising U-Shaped Curve
&lt;/h2&gt;

&lt;p&gt;When you actually implement this framework, you'll find some counterintuitive patterns. We've seen one trend consistently across nearly every team we work with: the impact of "hybrid" AI usage.&lt;/p&gt;

&lt;p&gt;You might assume that PRs with 100% AI-generated code are the riskiest, but the data shows something different. PRs with a mixed bag of 25-50% AI-generated code consistently cause the most rework and review friction.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5tav0030nb2npdy7hyb0.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F5tav0030nb2npdy7hyb0.png" alt="PR Lifecycle" width="800" height="611"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This actually makes sense when you think about it. When a developer uses AI as pure autocomplete, mixing human logic and AI logic throughout a PR, it creates cognitive whiplash for the reviewer. They're constantly switching between evaluating two different "minds," and that's exhausting. A PR that's clearly all-human or all-AI is often much easier to review.&lt;/p&gt;

&lt;p&gt;One team I worked with was dealing with a massive code review bottleneck. By analyzing their &lt;a href="https://www.span.app/blog/introducing-span-detect-1" rel="noopener noreferrer"&gt;AI Code Ratio&lt;/a&gt; on each PR, they found that a small group of engineers was creating most of these high-friction hybrid PRs. It wasn't a performance issue, it was a training issue. After coaching the team on better prompt engineering to generate more complete PRs, they cut their average review time by nearly 30%.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fad13kghse40zflya2lm1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fad13kghse40zflya2lm1.png" alt="How much are we adopting AI?" width="800" height="375"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Economic Reality Coming Your Way
&lt;/h2&gt;

&lt;p&gt;This level of measurement is becoming urgent because the economics of AI are about to change dramatically. Right now, most AI tools aren't profitable. They're being subsidized by venture capital to drive adoption, just like &lt;a href="https://www.nasdaq.com/articles/how-aws-came-to-be" rel="noopener noreferrer"&gt;AWS did in the early days&lt;/a&gt; of cloud computing.&lt;/p&gt;

&lt;p&gt;Remember what happened next? An entire &lt;a href="https://www.finops.org/" rel="noopener noreferrer"&gt;FinOps industry&lt;/a&gt; emerged to help companies optimize their cloud spend. The same thing is coming for AI. As these tools get more expensive, you're going to face hard trade-offs. The question will be: "Do I spend my next $100,000 on more AI licenses, or do I hire another engineer?"&lt;/p&gt;

&lt;p&gt;Without objective data on ROI, you're just guessing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Questions We Still Can't Answer
&lt;/h2&gt;

&lt;p&gt;We're still early in this story. While we can now measure velocity, quality, and cost, a new set of long-term questions is emerging that nobody has solved yet.&lt;/p&gt;

&lt;p&gt;For example, people care about code readability today, but will they in three years? If an AI can interface directly with code, does human readability even matter? In a sense, English is becoming the new programming language. We care about the English prompt, we don't care about the compiled assembly code. This is a fundamental shift in abstraction, and we don't yet know what it means long-term.&lt;/p&gt;

&lt;p&gt;What I do know is that leaders are going to need new signals for velocity, quality, and maintainability in this AI-native world. The best place to start is by building a framework to measure what's happening right now. Move past the hype, implement a real approach to measuring ROI, and you'll be able to navigate this transformation with actual data instead of just following the crowd.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;Ready to move beyond guesswork and start measuring AI's real impact on your engineering team? Here are concrete actions you can take:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get Ground Truth on AI Usage:&lt;/strong&gt; Start by understanding what percentage of your codebase is actually AI-generated. &lt;a href="https://www.span.app/detector" rel="noopener noreferrer"&gt;Span's AI Code Detector&lt;/a&gt; provides 95% accurate detection of AI vs. human-authored code, giving you the foundation for all other measurements. This is your baseline, the ground truth you need before making any strategic decisions about AI tooling.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Build a Complete Measurement Framework:&lt;/strong&gt; Rather than cobbling together disparate tools and spreadsheets, consider a unified &lt;a href="https://www.span.app/" rel="noopener noreferrer"&gt;developer intelligence platform&lt;/a&gt; that connects AI detection to velocity metrics, quality indicators, and team dynamics. The right platform should automatically track your AI Code Ratio, segment outcomes by AI usage, and surface patterns like the U-shaped curve described above.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Understand What Metrics Can and Can't Tell You:&lt;/strong&gt; Before diving deeper into measurement, &lt;a href="https://www.span.app/blog/why-surveys-fall-short" rel="noopener noreferrer"&gt;learn why perception-based approaches like surveys fall short&lt;/a&gt; when measuring AI impact. Understanding the limitations of different measurement approaches will help you avoid common pitfalls and build a more robust framework from the start.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;See a Demo of Production-Ready AI Measurement:&lt;/strong&gt; If you're ready to implement a comprehensive AI measurement strategy without building it from scratch, &lt;a href="https://www.span.app/get-demo/" rel="noopener noreferrer"&gt;schedule a demo&lt;/a&gt; to see how leading engineering teams are measuring and optimizing their AI coding initiatives.&lt;/p&gt;

</description>
      <category>ai</category>
      <category>devops</category>
    </item>
    <item>
      <title>Best Developer Productivity Tools for Engineering Leaders: A 2025 Guide</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Mon, 17 Nov 2025 15:11:05 +0000</pubDate>
      <link>https://forem.com/karllhughes/best-developer-productivity-tools-for-engineering-leaders-a-2025-guide-3e59</link>
      <guid>https://forem.com/karllhughes/best-developer-productivity-tools-for-engineering-leaders-a-2025-guide-3e59</guid>
      <description>&lt;p&gt;The market for developer productivity tools has become increasingly crowded and confusing, with platforms measuring wildly different &lt;a href="https://help.span.app/en/" rel="noopener noreferrer"&gt;metrics&lt;/a&gt;, from DORA metrics to developer happiness surveys. Each vendor promises to be the silver bullet for engineering efficiency, but the reality is far more nuanced.&lt;/p&gt;

&lt;p&gt;As engineering teams scale, leaders face a critical challenge: losing direct visibility into what’s actually happening on the ground. Without the ability to pop into every standup or review every pull request, engineering leaders need objective, comprehensive data to identify real bottlenecks, measure the impact of new technologies like AI, and make confident decisions about their teams and processes.&lt;/p&gt;

&lt;p&gt;This guide evaluates the leading developer productivity platforms against four critical criteria that modern engineering leaders should prioritize when selecting a tool for their organization. These platforms were chosen based on their market presence, feature maturity, and ability to address the complex needs of scaling engineering teams. Each tool offers a different approach to the challenge of measuring and improving developer productivity.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Four Critical Criteria for Modern Engineering Leaders
&lt;/h2&gt;

&lt;p&gt;Before diving into specific tools, it’s important to understand the evaluation framework. These four criteria represent the most pressing needs for engineering leaders navigating today’s rapidly evolving technology landscape:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-Native Capabilities:&lt;/strong&gt; Does the platform leverage AI to deliver automated insights and reduce manual work?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comprehensiveness of Insights:&lt;/strong&gt; Does it provide a complete view covering delivery speed, code review processes, developer experience, and critically, &lt;a href="https://www.span.app/introducing-span-detect-1" rel="noopener noreferrer"&gt;AI adoption and impact metrics&lt;/a&gt;?&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of Use and Time to Value:&lt;/strong&gt; How quickly can teams see meaningful, actionable data with minimal setup? The best tools deliver insights in weeks, not months and don’t require a lot of manual data manipulation to deliver value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise-Ready Controls:&lt;/strong&gt; Does it provide the granular roles and permissions needed to scale securely across different organizational levels?&lt;/p&gt;

&lt;h2&gt;
  
  
  The Leading Developer Productivity Tools
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Span
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn0h7q8t2yb9mtmg1s2yf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fn0h7q8t2yb9mtmg1s2yf.png" alt="Span" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Span represents the new generation of engineering intelligence platforms, built from the ground up to address the challenges of modern, AI-augmented development teams.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-Native Capabilities:&lt;/strong&gt; Built with LLMs at its core, Span uses AI to reason over unstructured data, providing automated summaries and intelligent work classification without requiring perfect data hygiene. The platform can understand context from commits, PRs, and tickets to automatically categorize work and surface insights. This AI-first approach means teams get valuable intelligence immediately, without months of setup or process changes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comprehensiveness of Insights:&lt;/strong&gt; Span provides a truly holistic view across delivery metrics, PR cycles, meeting load, and uniquely, AI adoption and impact metrics. The platform includes advanced detection for AI-generated code with its &lt;a href="https://www.span.app/detector" rel="noopener noreferrer"&gt;AI code detector&lt;/a&gt;, allowing it to correlate AI tool usage with productivity outcomes. This comprehensive coverage extends from individual developer insights to executive-level strategic views, making it valuable across all organizational levels.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of Use and Time to Value:&lt;/strong&gt; Leveraging AI to avoid process overhead, Span delivers out-of-the-box reporting and insights within weeks rather than months. The platform adapts to existing workflows rather than forcing teams to change their processes. Automated categorization and intelligent defaults mean teams see valuable insights from day one, with the ability to refine and customize as they learn what matters most to their organization.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise-Ready Controls:&lt;/strong&gt; Span offers robust, granular roles and permissions designed for secure adoption from individual contributors to executives. The platform provides different views and access levels based on role, ensuring appropriate transparency. As a relatively newer player in the market, Span is gaining significant traction among startups and growth-stage companies. It lists many "hot" tech companies like Ramp and Vanta as customers. While it does serve large enterprises, it often takes more time for younger platforms to win over the largest organizations with thousands of engineers and highly specific internal requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. LinearB
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpaqar52aukydlbmp0twt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpaqar52aukydlbmp0twt.png" alt="LinearB" width="800" height="471"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;LinearB positions itself as a platform focused on engineering benchmarks and predictable delivery, with strong appeal to engineering leaders who prioritize data-driven decision making.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-Native Capabilities:&lt;/strong&gt; LinearB uses GitStream workflow automation to streamline development processes, such as applying custom rules to pull requests, assigning reviewers, or enforcing quality gates directly within Git. While powerful for process automation, its intelligence relies on user-defined YAML configurations rather than adaptive learning or predictive analytics. As a result, while it effectively automates routine tasks, its analytical capabilities remain relatively basic compared to newer AI-driven engineering analytics tools that leverage machine learning for deeper insights and proactive recommendations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comprehensiveness of Insights:&lt;/strong&gt; LinearB excels in DORA metrics and delivery benchmarking, providing detailed comparisons against industry standards. The platform offers strong visibility into cycle time, deployment frequency, and team performance metrics. However, its focus on traditional metrics means less coverage of emerging areas like AI tool adoption or more nuanced developer experience factors.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of Use and Time to Value:&lt;/strong&gt; While LinearB provides extensive benchmarking data, the granularity can overwhelm teams new to metrics programs. Some advanced reporting features require engagement with their sales representatives, which can slow down adoption. Teams often report needing several weeks to configure the platform properly and additional time to train team members on interpreting the dense data visualizations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise-Ready Controls:&lt;/strong&gt; The platform is designed primarily for team-level engineering leaders—such as VPs of Engineering, team leads, or delivery managers—rather than for broad, enterprise-wide deployment across multiple departments or business units. While it does include basic role-based access control (RBAC) features, these are relatively limited in scope. Users can typically assign roles such as admin, manager, or contributor, but the permission structure doesn’t allow for fine-grained distinctions within those roles. For example, it lacks support for custom role creation, field-level permissions, or hierarchical access where directors might oversee multiple teams without viewing sensitive project data from unrelated groups. This makes it suitable for small to mid-sized teams that share unified visibility but less ideal for larger organizations that require more granular controls over data access, reporting, and visibility across multiple layers of stakeholders.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Jellyfish
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7r8urdsv6qtxrve2t7v.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff7r8urdsv6qtxrve2t7v.png" alt="Jellyfish" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Jellyfish targets CTOs and VPs of Engineering at large enterprises, focusing on aligning engineering work with business objectives through resource allocation visibility.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-Native Capabilities:&lt;/strong&gt; Jellyfish employs an inference engine to reduce the burden of Jira hygiene, automatically categorizing work based on patterns. However, the platform isn’t focused on using AI for deeper work classification or providing AI-generated insights. The inference engine helps with basic categorization but doesn’t leverage modern LLMs for understanding work context or generating recommendations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comprehensiveness of Insights:&lt;/strong&gt; The platform shines in allocating engineering investment, providing executives with clear data for DevFinOps use cases and capital and operational expense (CapEx/OpEx) reporting. It excels at answering the question, “How much did we spend on new product features versus maintenance?” However, this financial focus means less comprehensive coverage of granular code quality or AI adoption metrics. Jellyfish provides excellent visibility into where teams spend their time and how that maps to strategic initiatives. However, this focus on allocation means less comprehensive coverage of other critical areas like code quality, developer experience, or emerging metrics around AI tool usage.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of Use and Time to Value:&lt;/strong&gt; Jellyfish requires rigorous process hygiene to function effectively, particularly around Jira ticket management and categorization. This requirement leads to a longer time-to-value, often taking months rather than weeks to see meaningful insights. Organizations need to invest significant change management effort to ensure teams maintain the data quality needed for accurate reporting.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise-Ready Controls:&lt;/strong&gt; The platform primarily serves executive-level leaders, with limited functionality for individual contributors or team-level managers. This top-down approach can create information asymmetry within organizations, where executives have visibility that isn’t shared with the teams doing the work. This can lead to a sense of being monitored, fostering mistrust among developers regarding the misuse of metrics.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. DX
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feou44cheionrb27zxj44.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feou44cheionrb27zxj44.png" alt="DX" width="800" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;DX takes a research-driven approach to the market, combining quantitative metrics with qualitative survey data to provide a complete picture of developer productivity and experience.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-Native Capabilities:&lt;/strong&gt; DX offers limited AI capabilities, primarily focused on automated summaries and basic classification of development effort. While the platform can generate some insights automatically, it doesn’t leverage AI extensively for pattern recognition or predictive analytics. The AI features feel more like additions rather than core to the platform’s value proposition.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comprehensiveness of Insights:&lt;/strong&gt; DX’s unique strength is its focus on the SPACE framework, combining system data (e.g., build times, PR latency) with customizable developer surveys. This allows leaders to correlate quantitative bottlenecks with qualitative feedback, providing valuable context on issues like burnout or tooling friction. This dual approach offers valuable context that pure metrics platforms miss, though it requires more effort to synthesize insights from multiple data sources.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of Use and Time to Value:&lt;/strong&gt; The platform’s strength in customization becomes a weakness for time to value. DX requires heavy setup and manual configuration to tailor it to an organization’s specific needs. Teams need to design surveys, configure metrics, and establish baselines before seeing valuable insights. The high level of customization means significant upfront investment before realizing value.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise-Ready Controls:&lt;/strong&gt; While DX offers customizable reporting, the focus is less on granular role-based access controls. The platform provides flexibility in what to measure and report, but doesn’t offer the sophisticated permission structures needed for large organizations with complex hierarchies and varying transparency requirements.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Swarmia
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxvkkxrncsjsiwxg5kzxy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxvkkxrncsjsiwxg5kzxy.png" alt="Swarmia" width="800" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Swarmia targets full engineering organizations, from individual developers to CTOs, with a focus on improving developer productivity through actionable insights and automation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-Native Capabilities:&lt;/strong&gt; AI features are not a core part of Swarmia’s offering, which focuses more on workflow automation and notification systems. The platform excels at surfacing relevant information through Slack but doesn’t use AI to generate insights or understand work patterns. The automation is rule-based rather than intelligent, limiting its ability to adapt to unique team contexts.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comprehensiveness of Insights:&lt;/strong&gt; Swarmia is designed to be a developer-first tool, focusing on improving team-level working agreements and habits directly within Slack. It provides real-time feedback on metrics like PR size and review times to help teams self-correct, though it offers less of a top-down, strategic view for executive-level investment tracking. However, it lacks depth in areas like AI tool adoption, investment allocation, or more sophisticated engineering intelligence metrics.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of Use and Time to Value:&lt;/strong&gt; Designed for quick adoption within teams, Swarmia shines in its Slack integration and intuitive interface. Teams can start receiving valuable notifications and insights within days of setup. The platform prioritizes actionable alerts over comprehensive dashboards, making it easy for teams to understand and act on the information provided.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise-Ready Controls:&lt;/strong&gt; Swarmia lacks the robust roles and permissions structure needed for safe, scalable deployment in large organizations. While it works well for smaller teams with flat hierarchies, enterprises requiring different visibility levels for ICs, managers, and executives may find the platform limiting. The lack of granular controls can be a dealbreaker for security-conscious organizations.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Pluralsight Flow
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmvvgdmrsxzwdr3mmv4e3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmvvgdmrsxzwdr3mmv4e3.png" alt="Pluralsight Flow" width="800" height="506"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Pluralsight Flow (formerly GitPrime) represents the traditional approach to developer productivity metrics, offering a safe, conventional choice for large organizations.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;AI-Native Capabilities:&lt;/strong&gt; Flow emphasizes rule-based and report-driven visibility rather than AI-native insights. The platform provides extensive dashboards and reports but doesn’t leverage AI for pattern recognition, automated classification, or predictive analytics. This traditional approach means more manual analysis work for engineering leaders trying to extract actionable insights from the data.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Comprehensiveness of Insights:&lt;/strong&gt; Flow focuses on “classic” code-level metrics that predate the DORA framework, such as Code Churn, Impact, and Efficiency. While these can offer a deep view into the codebase itself, the platform offers less coverage of modern concerns like AI adoption or correlating work to broader business initiatives. While it integrates with standard tools like GitHub, Bitbucket, Jira, and Azure DevOps, it lacks coverage of modern concerns like AI adoption, investment allocation, or nuanced developer experience metrics. The platform feels comprehensive for yesterday’s challenges but incomplete for today’s.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Ease of Use and Time to Value:&lt;/strong&gt; Users frequently report that Flow’s dashboards can be noisy and overwhelming, making it time-consuming to locate relevant information. The abundance of reports and metrics without intelligent prioritization means teams spend significant time learning to navigate and interpret the platform. Despite being a mature product, the user experience hasn’t evolved to match modern expectations for clarity and actionability.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Enterprise-Ready Controls:&lt;/strong&gt; As a conventional choice backed by Pluralsight’s enterprise credibility, Flow offers standard enterprise features including SSO and basic role-based access. The availability of consulting services through Pluralsight can help with implementation, though this often indicates the platform’s complexity. While safe for procurement, it may not satisfy teams looking for modern, flexible permission structures.&lt;/p&gt;

&lt;h2&gt;
  
  
  Making the Right Choice for Your Organization
&lt;/h2&gt;

&lt;p&gt;Choosing the right developer productivity platform is not about finding a single “best” tool, but about aligning a platform’s strengths with your organization’s most critical challenges. As this guide has shown, the leading tools have made different trade-offs: some prioritize financial reporting, others focus on developer-first workflows, and a new generation is being built for the complexities of the AI era.&lt;/p&gt;

&lt;p&gt;For organizations ready to embrace the future of engineering intelligence, platforms built with AI at their core offer significant advantages in terms of ease of adoption, depth of insights, and ability to measure what truly matters in modern software development. The ability to understand AI’s impact on your engineering organization is no longer optional, it’s essential for making informed decisions about tool investments, team structure, and development practices.&lt;/p&gt;

&lt;p&gt;Choosing a developer productivity platform requires a clear understanding of your primary goals. If your main objective is to align engineering costs with high-level business strategy, a platform like Jellyfish offers powerful tools for that purpose. If you are focused on improving developer-first habits within Slack, Swarmia excels in that specific area.&lt;/p&gt;

&lt;p&gt;However, the landscape is rapidly evolving, and for many leaders, the most critical challenge is navigating the AI transformation. This requires a new class of tool. For organizations that need to understand the holistic impact of AI on their teams, balancing speed with quality, and who require a platform that delivers insights without forcing process changes, Span is designed for that purpose. It provides the ground truth needed to separate hype from reality in an increasingly AI-driven world.&lt;/p&gt;

&lt;p&gt;The key is selecting a platform that not only meets your current needs but can evolve with your organization as development practices continue to transform. The right tool should reduce complexity rather than add to it, provide actionable insights rather than just data, and ultimately help your engineering organization achieve its full potential.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;After evaluating and selecting a developer productivity platform, engineering leaders should consider these strategic actions to maximize their investment:&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Measure Your AI Coding Impact:&lt;/strong&gt; With AI coding assistants becoming standard tools in engineering organizations, understanding their true impact is critical. Test your code with Span’s AI Code Detector to establish a baseline for AI adoption across your teams and correlate it with productivity outcomes.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Explore Advanced AI Detection:&lt;/strong&gt; To dive deeper into how AI-generated code is shaping your engineering output, learn about span-detect-1, the industry’s first model to identify AI-assisted versus human-written code with over 95% accuracy. This technology enables you to track adoption, monitor quality, and optimize AI tool investments.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Get Expert Guidance:&lt;/strong&gt; Visit Span’s help center to access documentation and best practices for implementing engineering metrics programs that balance quantitative data with qualitative insights.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Connect With the Team:&lt;/strong&gt; If you’re ready to transform how your engineering organization measures and improves productivity, reach out to Span directly to discuss your specific needs and explore how their AI-native platform can deliver immediate value for your team.&lt;/p&gt;

</description>
      <category>engineeringmanagement</category>
      <category>productivity</category>
      <category>ai</category>
    </item>
    <item>
      <title>The Best Technical Content Marketing Agencies in 2025</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Fri, 14 Nov 2025 10:29:53 +0000</pubDate>
      <link>https://forem.com/karllhughes/the-best-technical-content-marketing-agencies-in-2025-1ek2</link>
      <guid>https://forem.com/karllhughes/the-best-technical-content-marketing-agencies-in-2025-1ek2</guid>
      <description>&lt;p&gt;Here's the problem: most content agencies have no idea how to write for developers.&lt;/p&gt;

&lt;p&gt;I've been running Draft.dev for five years now, and I can't tell you how many times I've heard this story: a company tries to start a technical initiative, hires a "content marketing agency," and ends up with generic fluff that makes their engineering audience roll their eyes.&lt;/p&gt;

&lt;p&gt;Technical content marketing is different. You need writers who actually understand the technology they're writing about. You need agencies that know developers don't respond to the same marketing tactics that work on other audiences. And you need teams that can produce content without getting the technical details embarrassingly wrong.&lt;/p&gt;

&lt;p&gt;So I put together this roundup of agencies that actually get it. I've included what they're good at, what they charge (when they're willing to tell you), and real examples of their work so you can figure out which one might be worth talking to.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Technical Content Agencies Are Different
&lt;/h2&gt;

&lt;p&gt;Most content shops can't handle technical content. They're great at writing about marketing or HR or ecommerce, but put them in front of a blog post about Kubernetes or database architecture and they're lost.&lt;/p&gt;

&lt;p&gt;Technical content agencies specialize in the hard stuff: developer tools, SaaS platforms, cloud infrastructure, and other B2B products that require actual engineering knowledge to write about. The good ones hire writers with engineering backgrounds who won't butcher the technical concepts.&lt;/p&gt;

&lt;p&gt;Here's who does what best:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Full-Cycle Developer Content Marketing:&lt;/strong&gt; Draft.dev (300+ subject matter experts)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;General-Purpose Marketing:&lt;/strong&gt; NinjaPromo (omnichannel marketing subscriptions)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;AI-Powered Content:&lt;/strong&gt; RevenueZen (interview-led content generation)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Web3/Crypto:&lt;/strong&gt; Coinbound (serves 30% of top 100 crypto companies)&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Budget-Friendly:&lt;/strong&gt; LYFE Marketing (social media management)&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  How to Pick a Technical Content Agency
&lt;/h2&gt;

&lt;p&gt;Look, choosing an agency isn't rocket science, but there are a few things you should check before you sign anything.&lt;/p&gt;

&lt;p&gt;First, make sure they actually have technical expertise. Ask to see case studies from companies in your space. Check if their writers have real engineering backgrounds or if they're just marketing people who learned to use technical jargon.&lt;/p&gt;

&lt;p&gt;Second, understand what you're actually getting. Most agencies now offer way more than just blog posts. You might get video tutorials, social media content, executive ghostwriting, or AI search optimization. Figure out what you need before you start shopping around.&lt;/p&gt;

&lt;p&gt;Third, understand the pricing. Budget anywhere from a few hundred bucks for occasional content to $20,000+ per month if you're going all-in on a full content engine.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Best Technical Content Marketing Agencies
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. Draft.dev: Best for Full-Cycle Developer Content Marketing
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2020 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Chicago, Illinois &lt;br&gt;
&lt;strong&gt;What makes us different:&lt;/strong&gt; In-house engineers who write, review, and strategize&lt;/p&gt;

&lt;p&gt;Alright, I'm biased here since this is my company, but I'll tell you what we actually do.&lt;/p&gt;

&lt;p&gt;We build content engines for developer tools companies. That means blog posts, tutorials, comparison pages, landing pages, onboarding docs, technical guides, thought leadership, lead magnets, and whatever else you need to reach developers. We adapt the format and tone based on where your readers are in the funnel and what they're trying to accomplish.&lt;/p&gt;

&lt;p&gt;We have 300+ vetted software engineers and technical journalists who actually know what they're talking about. When we write about React or Kubernetes or database optimization, we're not guessing. Our writers have built production systems with these technologies.&lt;/p&gt;

&lt;p&gt;We just made the 2025 Inc. Regionals list of fastest-growing companies in the Midwest. You can check out our &lt;a href="https://draft.dev/learn" rel="noopener noreferrer"&gt;free resources&lt;/a&gt; to see how we think about developer marketing.&lt;/p&gt;

&lt;h4&gt;
  
  
  What We Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Content-driven lead generation&lt;/li&gt;
&lt;li&gt;  SEO strategy and topic clusters&lt;/li&gt;
&lt;li&gt;  LLM and generative engine optimization&lt;/li&gt;
&lt;li&gt;  Technical ebooks&lt;/li&gt;
&lt;li&gt;  Social media content&lt;/li&gt;
&lt;li&gt;  Written and video tutorials&lt;/li&gt;
&lt;li&gt;  Paid newsletter promotion&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What We Charge
&lt;/h4&gt;

&lt;p&gt;Retainers start at $7,000 per month. Most clients start with a three-month pilot and then move to an ongoing retainer.&lt;/p&gt;

&lt;p&gt;You can browse hundreds of &lt;a href="https://draft.dev/technical-content-examples" rel="noopener noreferrer"&gt;technical content examples we've done on our website&lt;/a&gt;. &lt;a href="https://draft.dev/call" rel="noopener noreferrer"&gt;Book a call&lt;/a&gt; to learn more or &lt;a href="https://draft.dev/newsletter" rel="noopener noreferrer"&gt;subscribe to our newsletter&lt;/a&gt; to stay in touch.&lt;/p&gt;

&lt;h4&gt;
  
  
  Results We've Gotten
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://draft.dev/learn/sinch-mailgun-case-study" rel="noopener noreferrer"&gt;Sinch Mailgun got 20-45% CTR on their developer content&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://draft.dev/learn/earthly-case-study" rel="noopener noreferrer"&gt;Earthly increased monthly blog visitors by 346%&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://draft.dev/learn/loft-labs-case-study" rel="noopener noreferrer"&gt;Vcluster scaled their Kubernetes blog by 4x&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://draft.dev/learn/status-hero-case-study" rel="noopener noreferrer"&gt;Status Hero grew blog traffic by 211% and increased trial conversions&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  2. Dev Spotlight: Best for Low-Volume Thought Leadership
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2018 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Indianapolis, IN &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; Built for enterprise thought leadership&lt;/p&gt;

&lt;p&gt;Dev Spotlight goes after bigger companies that need high-quality thought leadership content but don't need a ton of volume. They've worked with names you'd recognize like Cisco, Twilio, and Circle.&lt;/p&gt;

&lt;p&gt;What I like about them is they're not trying to scale by using AI or cheap offshore writers. They work with a small group of actual subject matter experts. They also promise you won't get stuck in revision hell, which is refreshing.&lt;/p&gt;

&lt;p&gt;The downside is they don't publish pricing, so you'll have to reach out to figure out if they're in your budget.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  Whitepapers&lt;/li&gt;
&lt;li&gt;  Technical blogs&lt;/li&gt;
&lt;li&gt;  Tutorials&lt;/li&gt;
&lt;li&gt;  Landing pages&lt;/li&gt;
&lt;li&gt;  Case studies&lt;/li&gt;
&lt;li&gt;  Customer stories&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Not published. You'll have to &lt;a href="https://www.devspotlight.com/contact" rel="noopener noreferrer"&gt;ask them&lt;/a&gt;.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;p&gt;They don't publish case studies, but they do show samples:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.devspotlight.com/samples/react-chat-app" rel="noopener noreferrer"&gt;How to Build a React Chat App&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.devspotlight.com/samples/scale-mongodb" rel="noopener noreferrer"&gt;How to Scale MongoDB&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.devspotlight.com/samples/zero-trust" rel="noopener noreferrer"&gt;Fundamentals of a Zero Trust Implementation&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. EveryDeveloper: Best for Developer Experience
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Based in:&lt;/strong&gt; Portland, OR&lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; Run by someone who actually built developer programs&lt;/p&gt;

&lt;p&gt;Adam Duvander runs EveryDeveloper. He used to do developer experience at Zapier and Sendgrid, so he knows what he's talking about when it comes to making developers happy.&lt;/p&gt;

&lt;p&gt;Adam's big thing is developer experience, which is basically the art of not pissing off your technical users. He'll audit your site and give you a DX Index score, then tell you how to fix the problems. He also wrote a book called &lt;a href="https://everydeveloper.com/developer-marketing-book/" rel="noopener noreferrer"&gt;Developer Marketing Does Not Exist&lt;/a&gt; that covers his 13 Elements of Developer Experience.&lt;/p&gt;

&lt;p&gt;If you're struggling to figure out why developers aren't adopting your product, Adam's probably worth talking to.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Content strategy and production&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Human writers and editors&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developer experience consulting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Documentation&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Not published. &lt;a href="https://everydeveloper.com/contact/" rel="noopener noreferrer"&gt;Grab time on their calendar&lt;/a&gt; if you want a quote.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Results
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://everydeveloper.com/case-studies/stoplight" rel="noopener noreferrer"&gt;Stoplight got 30x more traffic with their help&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  4. 310 Creative: Best for Account-Based Marketing
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2003&lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Santa Monica, CA&lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; They assign dedicated strategists&lt;/p&gt;

&lt;p&gt;310 Creative has been around for over 20 years, which is ancient by content marketing standards. Their specialty is account-based marketing, which means they assign you a dedicated strategist who helps build a custom lead generation plan.&lt;/p&gt;

&lt;p&gt;They do both inbound (SEO, content) and outbound (paid ads, social media outreach, direct messaging). They work with industries beyond tech, but they have a solid list of technical clients and good reviews.&lt;/p&gt;

&lt;p&gt;Pricing is transparent, which I appreciate. They start at $4,000/month and go up to $28,000/month for enterprise ABM.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Inbound marketing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SEO&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paid media&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Conversion optimization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Account-based marketing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Outbound lead generation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Website development&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Sales enablement&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;$4,000 to $28,000 per month depending on the plan. Check their &lt;a href="https://310creative.com/pricing" rel="noopener noreferrer"&gt;pricing page&lt;/a&gt; for details.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://310creative.com/case-studies/getresponse" rel="noopener noreferrer"&gt;Get Response&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://310creative.com/case-studies/people-guru" rel="noopener noreferrer"&gt;People Guru&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://310creative.com/case-studies/interplay-learning" rel="noopener noreferrer"&gt;Interplay Learning&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  5. Hoopy: Best for DevRel Strategy
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2014 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; London, England &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; Strategy sessions with DevRel experts&lt;/p&gt;

&lt;p&gt;Matthew Revell runs Hoopy. He used to do developer advocacy at Couchbase and Basho, and he's the guy behind &lt;a href="https://devrelcon.dev/" rel="noopener noreferrer"&gt;DevRelCon&lt;/a&gt;, which has become the go-to conference series for developer relations folks.&lt;/p&gt;

&lt;p&gt;Besides the usual content stuff (blogs, whitepapers, case studies), Hoopy offers DevRel strategy sessions. This is useful if you don't want to spend months figuring out your strategy from scratch. They also do research to help you understand what your audience actually thinks about your product.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Audits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Training&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Research&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Audio and video production&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technical content&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;DevRel strategy&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Not published. &lt;a href="https://hoopy.io/contact" rel="noopener noreferrer"&gt;Contact them&lt;/a&gt; for pricing.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;p&gt;No public case studies. You'll have to &lt;a href="https://hoopy.io/contact" rel="noopener noreferrer"&gt;talk to them&lt;/a&gt; to learn more.&lt;/p&gt;

&lt;h3&gt;
  
  
  6. Wizard on Demand: Best for Deep Tech
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2018 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Tallinn, Harjumaa &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; You work directly with the founder&lt;/p&gt;

&lt;p&gt;Oleksii Klochai built Wizard on Demand for heavily technical companies. According to their site, they can cut your content marketing time by 80% and improve results by 8x. I don't know how they measure that, but those are bold claims.&lt;/p&gt;

&lt;p&gt;They're a small team that does SEO content, paid ads, and general brand building. They also offer writing coaching if you want to get better at creating content yourself.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Technical content marketing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Illustration and design&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Information architecture consulting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SEO for technical companies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Paid media&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Writing coaching for technical leaders&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Not published. &lt;a href="https://wizardondemand.com/contact" rel="noopener noreferrer"&gt;Book a meeting&lt;/a&gt; to get a quote.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Results
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://wizardondemand.com/case-studies" rel="noopener noreferrer"&gt;800% organic traffic growth and thousands of GitHub stars&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  7. LYFE Marketing: Best for Social Media
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2011 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Atlanta, GA &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; Focus on social media management&lt;/p&gt;

&lt;p&gt;LYFE Marketing does social media for B2B and ecommerce brands. If you need someone to manage your presence on Facebook, Instagram, Twitter, LinkedIn, or Pinterest, they can handle it.&lt;/p&gt;

&lt;p&gt;Their thing is building a consistent presence without you having to put out fires all day. They do targeting, analytics, and ad optimization so you don't have to think about it.&lt;/p&gt;

&lt;p&gt;This is a good option if you need to polish your brand on social media but your team is too small to handle it internally. Their pricing works for companies of all sizes, so you don't need to wait until you're huge to afford them.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Social media advertising and management&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Short video management and ads&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Search engine advertising&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Email marketing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Display advertising&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Google advertising&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Between $600 and $1,000 per month on average for social media management. Other services vary. &lt;a href="https://www.lyfemarketing.com/contact/" rel="noopener noreferrer"&gt;Contact them&lt;/a&gt; for specifics.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.lyfemarketing.com/case-studies/wallhogs/" rel="noopener noreferrer"&gt;Wallhogs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.lyfemarketing.com/case-studies/streamshift/" rel="noopener noreferrer"&gt;StreamShift&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.lyfemarketing.com/case-studies/machinery-network/" rel="noopener noreferrer"&gt;Machinery Network&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  8. Catchy: Best for Full-Cycle Dev Marketing
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2010 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Seattle, WA &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; End-to-end services&lt;/p&gt;

&lt;p&gt;Catchy is a full-service shop that builds technical marketing programs for enterprise clients in the US and Europe. They do everything from writing and video to social media and demand generation.&lt;/p&gt;

&lt;p&gt;Just know that they're not a content-only agency. They're more of a one-stop shop for all your technical marketing needs. That can be good if you want everything handled by one team, but it might be overkill if you just need blog posts.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Go-to-market strategy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Demand generation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Content and creative&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Developer experience&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;ROI tracking&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Not published. &lt;a href="https://www.catchy.com/contact" rel="noopener noreferrer"&gt;Contact them&lt;/a&gt; for a quote.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.catchy.com/case-studies/meta" rel="noopener noreferrer"&gt;Meta&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.catchy.com/case-studies/casper" rel="noopener noreferrer"&gt;Casper&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.catchy.com/case-studies/google-play" rel="noopener noreferrer"&gt;Google Play&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  9. ércule: Best for Boutique Services
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2017 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Portland, OR &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; They built an app to track content performance&lt;/p&gt;

&lt;p&gt;ércule focuses on organic growth for business-to-developer companies. They do content strategy, SEO, analytics, and technical writing.&lt;/p&gt;

&lt;p&gt;What's interesting is they also built an app that helps you track content performance. You connect your Google Analytics and Search Console, and their app reformats everything to help you spot opportunities. You can also chat with their team about what to do next.&lt;/p&gt;

&lt;p&gt;The team includes ex-operators from GitHub, MongoDB, AWS, and Atlassian, so they know what they're doing. Just be aware they stay intentionally small, so they don't take on many clients at once.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Analytics and automation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Content strategy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Content CRO&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;LLM optimization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Product marketing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technical SEO and writing&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Agency services: Not published, &lt;a href="https://ercule.co/contact" rel="noopener noreferrer"&gt;contact them&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Their app:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Free:&lt;/strong&gt; Basic analytics, one library up to 25K pages, 20 topic searches/month&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Pro:&lt;/strong&gt; $59/month for unlimited libraries and searches&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;p&gt;No case studies published. &lt;a href="https://ercule.co/contact" rel="noopener noreferrer"&gt;Talk to sales&lt;/a&gt; for more info.&lt;/p&gt;

&lt;h3&gt;
  
  
  10. Siege Media: Best for Generative Engine Optimization
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2012 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Austin, TX &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; They focus on AI search results&lt;/p&gt;

&lt;p&gt;Siege Media specializes in GEO, which stands for generative engine optimization. The goal is getting your brand featured in ChatGPT, Claude, and other AI tools that people use for search now.&lt;/p&gt;

&lt;p&gt;But they do more than just GEO. They offer product SEO, localization, PR, link building, and other organic growth services. They've been on the Inc. 5000 list six years running, so they're clearly doing something right.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Content marketing and strategy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Product SEO&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Product GEO&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Content localization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Link building&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Digital PR&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Web and graphic design&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Not published, but Clutch says average projects run $50K to $200K. &lt;a href="https://www.siegemedia.com/contact" rel="noopener noreferrer"&gt;Contact them&lt;/a&gt; to find out.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Results
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.siegemedia.com/case-studies/mentimeter" rel="noopener noreferrer"&gt;Mentimeter started ranking in LLMs&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.siegemedia.com/case-studies/zapier" rel="noopener noreferrer"&gt;Zapier got 10+ million more organic visits&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://www.siegemedia.com/case-studies/zendesk" rel="noopener noreferrer"&gt;Zendesk's traffic value jumped by $880K&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  11. HigherUp Digital: Best for Website Optimization
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2016 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; München, Bavaria (Germany) &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; Three-stage process for results&lt;/p&gt;

&lt;p&gt;HigherUp Digital does B2B tech marketing in three stages: consulting, website optimization, and organic marketing. Everything is customized based on your company size, traffic, product, and goals.&lt;/p&gt;

&lt;p&gt;No matter what package you choose, you'll get strategy creation, competitor analysis, paid advertising consults, website setup, and sales optimization.&lt;/p&gt;

&lt;p&gt;This is a good fit if you're a European brand looking to expand locally or if you're launching a startup and need help with early branding and positioning. They offer a free strategy session, so there's no pressure to commit upfront.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Website optimization&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Strategy and consulting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Organic marketing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;LinkedIn marketing&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Not published. &lt;a href="https://higherupdigital.com/contact" rel="noopener noreferrer"&gt;Contact them&lt;/a&gt; for pricing.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://higherupdigital.com/case-studies/insight-funders" rel="noopener noreferrer"&gt;Insight Funders: GTM Strategy for AI Fintech&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://higherupdigital.com/case-studies/sustainable-software" rel="noopener noreferrer"&gt;Building an Energy-First Brand&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://higherupdigital.com/case-studies/hiscox" rel="noopener noreferrer"&gt;Hiscox: Driving B2B Tech Growth&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  12. Campfire Labs: Best for Thought Leadership
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2018 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Boulder, CO &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; Executive ghostwriting&lt;/p&gt;

&lt;p&gt;Campfire Labs helps B2B brands build authority through thought leadership and long-form content. They create stories that actually resonate with technical buyers and executives instead of the generic stuff most companies publish.&lt;/p&gt;

&lt;p&gt;If you're trying to get your C-suite published or launch reports that position you as a category leader, they can help. For example, they helped Bonusly turn executive ghostwriting into a competitive advantage that drove deals and traffic.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Content strategy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Design&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Social content&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Case studies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Thought leadership&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reports&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Newsletters&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Short-form video&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Not published. &lt;a href="https://campfirelabs.io/contact" rel="noopener noreferrer"&gt;Contact them&lt;/a&gt; for a quote.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://campfirelabs.io/case-studies/clearbit" rel="noopener noreferrer"&gt;Clearbit's first microsite netted $30K MRR&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://campfirelabs.io/case-studies/vena" rel="noopener noreferrer"&gt;How Vena closes deals with competitor comparisons&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://campfirelabs.io/case-studies/bonusly" rel="noopener noreferrer"&gt;Bonusly's executive ghostwriting advantage&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  13. ReVerb: Best for ICO and STO Marketing
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2018 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Rochester, Minnesota &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; Crypto launch expertise&lt;/p&gt;

&lt;p&gt;ReVerb is a marketing agency for blockchain and Web3 startups. Their main focus is helping launch ICOs and STOs with technical writing, SEO, and investor marketing.&lt;/p&gt;

&lt;p&gt;They've been in crypto for almost a decade, so they understand compliance and what actually works in this space. They also maintain a list of trusted partners for services they don't offer themselves.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;ICO and STO marketing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PR and distribution&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Social media marketing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;AI copy editing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;SEO and link building&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PPC management&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Branding and reviews&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Not published. &lt;a href="https://reverb.marketing/contact" rel="noopener noreferrer"&gt;Contact them&lt;/a&gt; for pricing.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://reverb.marketing/case-studies/traffic-boost" rel="noopener noreferrer"&gt;304.9% organic traffic boost for a no-code dev platform&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://reverb.marketing/case-studies/saas-traffic" rel="noopener noreferrer"&gt;Increasing organic traffic by 311,466.67% for SaaS&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  14. Coinbound: Best for Web3
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2018 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; New York, NY &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; They represent 30% of top 100 crypto companies&lt;/p&gt;

&lt;p&gt;Coinbound specializes in helping Web3 companies go viral. They've worked with 800+ clients and currently represent 30% of the top 100 market cap crypto companies.&lt;/p&gt;

&lt;p&gt;They offer crypto-specific services that are hard to find elsewhere, like access to crypto influencers and tokenomics experts. They also provide advisory services and fractional CMOs if you need strategic help.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Exchange listing services&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Tokenomics&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Advisory and consulting&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Crypto influencer marketing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Fractional CMOs&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Community management&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Social media&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Branding and lead gen&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PR&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;PPC and paid ads&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;They have an &lt;a href="https://coinbound.io/quote" rel="noopener noreferrer"&gt;online calculator&lt;/a&gt; that gives you a custom quote in under 60 seconds.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://coinbound.io/case-studies/gala" rel="noopener noreferrer"&gt;Multiple sold-out NFT collections for GALA&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://coinbound.io/case-studies/stablecoin" rel="noopener noreferrer"&gt;Rebranding Europe's first regulated stablecoin&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://coinbound.io/case-studies/ai-web3" rel="noopener noreferrer"&gt;Creating an AI brand with Web3 roots&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  15. Responsify: Best for Brand Identity
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2013 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Brooklyn, NY &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; HealthTech, CleanTech, and EdTech focus&lt;/p&gt;

&lt;p&gt;Responsify helps B2B companies define and scale their brand identity. They combine inbound marketing, UX design, and visual storytelling to create (or fix) your brand.&lt;/p&gt;

&lt;p&gt;Their content strategy starts with alignment, then moves to branding, responsive design, and SEO writing. The goal is making sure every touchpoint maintains your voice and positioning.&lt;/p&gt;

&lt;p&gt;While they say they target "B2B businesses," most of their clients are in technical or SaaS spaces. Check out their case studies to see the kinds of companies they work with.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Brand identity design&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;UX design&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Business and customer alignment&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Responsive email design&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Responsive website design&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Content writing and inbound marketing&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Plans are listed but pricing isn't. &lt;a href="https://responsify.com/contact" rel="noopener noreferrer"&gt;Contact them&lt;/a&gt; for specifics.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://responsify.com/case-studies/b2b-sales" rel="noopener noreferrer"&gt;B2B company scaled top-line sales 40%&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://responsify.com/case-studies/saas-leads" rel="noopener noreferrer"&gt;SaaS company doubled qualified leads&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://responsify.com/case-studies/healthtech" rel="noopener noreferrer"&gt;HealthTech got 1,295 leads and 185 customers&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  16. Growth Plays: Best for GTM Strategies
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2017 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Los Angeles, California &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; AI-driven go-to-market&lt;/p&gt;

&lt;p&gt;Growth Plays is a B2B agency that focuses on go-to-market strategies, including getting your brand listed in LLMs.&lt;/p&gt;

&lt;p&gt;This is a good fit if you need a more AI-driven approach to launching products. They're not specifically for IT or SaaS, but they can help you build unified go-to-market strategies with AI-powered content workflows.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Content strategy&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Content creation&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Attribution&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Analytics&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Not published. &lt;a href="https://growthplays.com/contact" rel="noopener noreferrer"&gt;Schedule a meeting&lt;/a&gt; for a quote.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;p&gt;No published case studies. &lt;a href="https://growthplays.com/contact" rel="noopener noreferrer"&gt;Book a consultation&lt;/a&gt; to learn more.&lt;/p&gt;

&lt;h3&gt;
  
  
  17. Edify Content: Best for Landing Pages
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2020 &lt;br&gt;
&lt;strong&gt;Based in:&lt;/strong&gt; Mesa, Arizona &lt;br&gt;
&lt;strong&gt;What makes them different:&lt;/strong&gt; Lead flow and list management&lt;/p&gt;

&lt;p&gt;Edify Content focuses on attracting executive leads. They write SEO content, case studies, and landing pages designed to reach high-level technical decision makers.&lt;/p&gt;

&lt;p&gt;You can also use them for lead flow and list management, though you might need to upgrade your plan. They'll set up email sequences and run LinkedIn or Google ads to build a full inbound and outbound strategy.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;SEO blogging&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Case studies&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Thought leadership&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Landing pages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Running ads&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Email sequences&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Lead flow and list management&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;They use a credit system. The Starter package is $6,500/month with 16 credits:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Short blog posts: 2-3 credits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Long blog posts: 3-6 credits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Social posts (5): 2 credits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Email sequences: 4-8 credits&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Landing pages: 4 credits&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Performance marketing for HubSpot users starts at $12,000/month and includes ads, one-pagers, landing pages, lead flow, email campaigns, and social media.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://edifycontent.com/case-studies/20k-to-40k" rel="noopener noreferrer"&gt;From 20K to 40K in one year&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://edifycontent.com/case-studies/executive-leads" rel="noopener noreferrer"&gt;Executive leads for $65 vs. $300 industry average&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://edifycontent.com/case-studies/organic-clicks" rel="noopener noreferrer"&gt;1,000+ organic search clicks per month&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  18. Infrasity: Best for B2B SaaS Startups
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Founded:&lt;/strong&gt; 2023 &lt;strong&gt;Based in:&lt;/strong&gt; Delhi, New Delhi &lt;strong&gt;What makes them different:&lt;/strong&gt; Built for early-stage startups&lt;/p&gt;

&lt;p&gt;Infrasity does tech marketing for DevTools and B2B SaaS startups. They create, audit, and optimize SEO-friendly technical content.&lt;/p&gt;

&lt;p&gt;Beyond blogs, they'll write use case libraries, onboarding docs, and SDK examples. If you want video, they'll make technical walkthroughs created by engineers for engineers.&lt;/p&gt;

&lt;h4&gt;
  
  
  What They Do
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;Video production&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Technical writing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Landing pages&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Performance tracking&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Reddit marketing&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Webflow for DevTool teams&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;Use case libraries, docs, SDK examples&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  What They Charge
&lt;/h4&gt;

&lt;p&gt;Two plans:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Starter:&lt;/strong&gt; Four guides/month, one SDK guide, SEO ideation, persona mapping, founder POV support, 7-10 day turnaround, up to 2 revisions&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Scale:&lt;/strong&gt; 6-8 pieces/month, two videos/month, landing pages, dedicated strategist, performance tracking, more content types&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;No public pricing. &lt;a href="https://infrasity.com/contact" rel="noopener noreferrer"&gt;Start with the Starter Plan&lt;/a&gt; and get a 30-day proof of concept.&lt;/p&gt;

&lt;h4&gt;
  
  
  Their Work
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://infrasity.com/case-studies/8x-growth" rel="noopener noreferrer"&gt;8x growth with developer-focused content&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://infrasity.com/case-studies/middleware" rel="noopener noreferrer"&gt;Middleware partnership success&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://infrasity.com/case-studies/terrateam" rel="noopener noreferrer"&gt;Terrateam got 300% more traffic&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Finding the Right Agency for You
&lt;/h2&gt;

&lt;p&gt;Look, there's no universal "best" agency. It depends on what you need, who your audience is, and what you can afford.&lt;/p&gt;

&lt;p&gt;Some of these agencies are great if you're an early-stage startup that needs to get content going quickly. Others are better if you're an enterprise company that needs thought leadership and strategic positioning. A few specialize in crypto or Web3, which most general agencies can't handle.&lt;/p&gt;

&lt;p&gt;The important thing is finding an agency that actually understands your technical audience and can produce content that doesn't make them cringe. Use this list as a starting point, then reach out to a few that seem like good fits.&lt;/p&gt;

&lt;p&gt;If you want to learn more about technical content marketing, check out these other guides:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://draft.dev/learn/technical-writing-blogs" rel="noopener noreferrer"&gt;Best Technical Writing Blogs 2025&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://draft.dev/learn/technical-blogs" rel="noopener noreferrer"&gt;Best Technical Blogs for Developers&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://draft.dev/learn/documentation-best-practices" rel="noopener noreferrer"&gt;Documentation Best Practices&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://draft.dev/learn/content-creation-agencies" rel="noopener noreferrer"&gt;Best Content Creation Agencies&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a href="https://draft.dev/learn/b2b-content-marketing-agencies" rel="noopener noreferrer"&gt;Best B2B Content Marketing Agencies&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>devmarketing</category>
      <category>contentmarketing</category>
      <category>technicalwriting</category>
    </item>
    <item>
      <title>Becoming a Senior Software Engineer</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Tue, 09 Nov 2021 18:52:55 +0000</pubDate>
      <link>https://forem.com/karllhughes/becoming-a-senior-software-engineer-3kn7</link>
      <guid>https://forem.com/karllhughes/becoming-a-senior-software-engineer-3kn7</guid>
      <description>&lt;p&gt;​I used to &lt;a href="https://www.karllhughes.com/posts/graduate-code-bootcamp" rel="noopener noreferrer"&gt;speak regularly at many of the Chicago-area coding bootcamps&lt;/a&gt; and one of the common questions that students posed to me was, “How can I become a ‘senior software engineer’?”&lt;/p&gt;

&lt;p&gt;I’ve seen versions of this question countless times on forums and Reddit threads as well, and I suspect it’s because many readers think their careers will just get easier if they have had “senior engineer” in their title.&lt;/p&gt;

&lt;p&gt;On the other hand, companies give out this title somewhat arbitrarily.&lt;/p&gt;

&lt;p&gt;A few years ago, I caught up with a former student who had just graduated from a bootcamp 3 years ago and had just received his first “senior software engineer” position. While I’m sure he was a standout employee, three years seems like an extremely short road to a title like that.&lt;/p&gt;

&lt;p&gt;The truth is that there’s no accepted definition or benchmark that universally makes you a senior engineer-it might take you 3 years at some companies and 15 at others-but I do have some thoughts on this question.&lt;/p&gt;

&lt;p&gt;In this piece, I’ll explore the four paths I’ve seen most engineers take to become senior engineers. Along the way, I’ll share some of the skills and benchmarks you might need to hit to get there yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 1: Job-Hopping
&lt;/h2&gt;

&lt;p&gt;By far, the most common way engineers get a senior engineer title the fastest is by &lt;a href="https://www.forbes.com/sites/jacquelynsmith/2013/03/08/the-pros-and-cons-of-job-hopping/?sh=2c3e18e247be" rel="noopener noreferrer"&gt;job-hopping&lt;/a&gt;. Whether you do this by perfecting the art of &lt;a href="https://medium.com/@teamblind/about-leetcode-and-the-recruiting-process-in-silicon-valley-d91eab67106" rel="noopener noreferrer"&gt;leetcode&lt;/a&gt; or &lt;a href="https://www.karllhughes.com/posts/the-key-to-networking-keeping-in-touch" rel="noopener noreferrer"&gt;networking your way in&lt;/a&gt;, the sad truth of our industry is that by jumping ship every two to three years, you will maximize your salary and job titles the quickest.&lt;/p&gt;

&lt;p&gt;Early in your career, this hopping around is also good for perspective. You’ll get to see a lot of different code bases, management styles, and team compositions while moving up the ladder every couple of years. Some recruiters (mostly the ones with your employers’ interest in mind) will tell you to be careful that you don’t develop a reputation, but in the first 5-6 years of your career, these short stints are normal.&lt;/p&gt;

&lt;p&gt;With some experience and a variety of cultures under your belt, you can start to slow these hops down at some point. I tend to see the most senior engineering leaders staying for 5-10 years, which gives them enough time to run several big projects, get a promotion or two, and decide if they want to stay put or move on again.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuinr3xeoodkrv6fjtowm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fuinr3xeoodkrv6fjtowm.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 2: Grind it Out
&lt;/h2&gt;

&lt;p&gt;Job-hopping isn’t for everyone and truthfully, if you find a really great boss and fair employer, you don’t need to move just because you’ve been there for a couple years. Many companies have career ladders that will give you a direct path to become a senior engineer without needing to look outside.&lt;/p&gt;

&lt;p&gt;Unfortunately, companies tend to take advantage of long-time employees who don’t push for promotions, so you might get stuck in a situation where you’re doing bigger jobs than your title (or paycheck) would imply. If this happens to you, talk to your boss. Figure out what the roadmap is like to get you to your next role and if the company really wants to keep you, they’ll make a path clear.&lt;/p&gt;

&lt;p&gt;There are plenty of examples of engineers who spend 5-10 years in a single company to earn a senior engineer title. That said, this path is usually a bit slower.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71ac79c1e3yn4ecbs9ha.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71ac79c1e3yn4ecbs9ha.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 3: Startups or Self-Employment
&lt;/h2&gt;

&lt;p&gt;I’ve met many senior engineers who gave themselves a promotion by being self-employed first. Whether as a &lt;a href="https://www.karllhughes.com/posts/startup-consulting" rel="noopener noreferrer"&gt;consultant&lt;/a&gt;, agency owner, early employee, or startup founder, you can become a senior engineer by taking your own journey into entrepreneurship.&lt;/p&gt;

&lt;p&gt;I’ll admit, this isn’t extremely common, but in the entrepreneurial circles I run with, close to half my friends have joined or co-founded a startup at some point in their career, so I know this path exists.&lt;/p&gt;

&lt;p&gt;Joining a startup can be a great boost to your engineering career, but &lt;a href="https://www.karllhughes.com/posts/myths-working-engineer-startup" rel="noopener noreferrer"&gt;you also have to consider the downsides&lt;/a&gt;. It’s not likely to make you wealthy quickly and the broad experience you get might not transfer to the narrow job specs that large employers want. Still, I found being a startup engineer a great way to quickly progress and many of my coworkers did too.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feqqqb93h7kvbhkh53hpe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feqqqb93h7kvbhkh53hpe.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Path 4: Education
&lt;/h2&gt;

&lt;p&gt;A graduate degree in computer science, computer engineering, or something similar could help get you closer to a senior engineering position, but it comes at a cost.&lt;/p&gt;

&lt;p&gt;This seems like the least common path these days, likely because of the cost of college (both in raw numbers and opportunity cost) and the speed at which the industry moves. Graduate computer science degrees might prepare you to be the best at a very narrow part of the field, but if that niche falls out of favor, you might find yourself in an awkward position career-wise.&lt;/p&gt;

&lt;p&gt;A coding bootcamp, on the other hand, will not help you get closer to a senior software engineering role. Coding bootcamps are now seen as a sign of a junior engineer, so if you’re self-taught and looking to level up, skip the bootcamp. It’s not going to make your resume look any better.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcsxj3eoqpdqiroiuzdrm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fcsxj3eoqpdqiroiuzdrm.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The Skills You Need to Become a Senior Engineer
&lt;/h2&gt;

&lt;p&gt;Regardless of the path you take, there are some skills I’ve found all senior software engineers possess. It’s hard to say where the correlation/causation line is, but I suspect that most companies look for some degree of all these things when considering senior engineering promotions.&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Communication
&lt;/h3&gt;

&lt;p&gt;As a senior engineer, you’ll be expected to communicate more with early-career engineers, managers, and stakeholders than you did in previous roles. Because you’ll have more knowledge about the system and technology than many of your peers, you’ll be able to speak to the important considerations that decision-makers need to weigh.&lt;/p&gt;

&lt;p&gt;Likely, this will require some combination of writing and speaking skills.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Multiple Programming Languages/Frameworks
&lt;/h3&gt;

&lt;p&gt;I don’t know if senior software engineers tend to know more languages or if this is really a requisite skill, but I do think that knowing multiple programming languages gives you a broader base of experience and a more dynamic skillset. I’ve learned a lot by trying new languages and taking the patterns they use back to my codebase.&lt;/p&gt;

&lt;p&gt;The good news is that learning new programming languages gets easier after your first two. I found that after learning PHP and JavaScript, Python and Ruby were relatively easy to understand.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Debugging Skills
&lt;/h3&gt;

&lt;p&gt;Senior engineers tend to be the go-to debuggers.&lt;/p&gt;

&lt;p&gt;While they can be important for building new features, they’re also usually the developers with the best debugging skills and most complete understanding of the entire system. This allows senior engineers to add value by helping other engineers get “unstuck.”&lt;/p&gt;

&lt;p&gt;If you want to get good at debugging, read more code, learn to use observability tools, and don’t shy away from fixing bugs. This is an essential skill for senior engineers to have.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Time Management
&lt;/h3&gt;

&lt;p&gt;Most people are terrible at long-term estimates, but senior engineers tend to at least be better at understanding their short-term capacity. They also tend to expect the unexpected better than early-career engineers.&lt;/p&gt;

&lt;p&gt;I’ve met some senior engineers who weren’t great with time management, but it often held them back at a certain point. Because they’re senior, they have more visibility and are a larger line item in the team’s budget. This means more eyes watching their performance and productivity.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Understanding Tradeoffs
&lt;/h3&gt;

&lt;p&gt;A lot of engineers early in their careers are too dogmatic. They believe things like:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  “microservices are always a good choice”&lt;/li&gt;
&lt;li&gt;  “100% test coverage is essential”&lt;/li&gt;
&lt;li&gt;  “MongoDB scales better than PostgreSQL”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;A senior engineer will almost always understand that every tech decision is about tradeoffs. There are very few answers that are always right, but senior engineers will know when to pick one path over another.&lt;/p&gt;

&lt;p&gt;Learn to make both sides of important arguments and pay attention to the business needs instead of just the technical needs of each project.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create Your Own Path
&lt;/h2&gt;

&lt;p&gt;Regardless of your background, the paths I’ve seen, or the skills above, there are a lot of ways to earn a senior software engineer title. Take your own path, but find mentors, &lt;a href="https://www.karllhughes.com/posts/software-engineering-books" rel="noopener noreferrer"&gt;read books&lt;/a&gt;, and be proactive in your career. No matter how great your boss is, it’s ultimately your responsibility to keep your career moving forward.&lt;/p&gt;

&lt;p&gt;Finally, &lt;a href="https://twitter.com/KarlLHughes" rel="noopener noreferrer"&gt;let me know if you have questions&lt;/a&gt;. I’m always happy to share my experience if it can help.&lt;/p&gt;

</description>
      <category>career</category>
      <category>beginners</category>
    </item>
    <item>
      <title>API Development: The Complete Guide for Building APIs Without Code</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Wed, 13 Oct 2021 16:00:47 +0000</pubDate>
      <link>https://forem.com/karllhughes/api-development-the-complete-guide-for-building-apis-without-code-2bde</link>
      <guid>https://forem.com/karllhughes/api-development-the-complete-guide-for-building-apis-without-code-2bde</guid>
      <description>&lt;h1&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F0nz8wi3ugmyugrni0o5b.png" width="800" height="450"&gt;
&lt;/h1&gt;

&lt;p&gt;&lt;strong&gt;The term “API” gets thrown around a lot these days, but what does it mean? What can you use an API for? Do you have to have a developer on your team to build or use an API? In this guide, we’ll explore all those questions and more, including a spotlight on the tools you can use as a &lt;a href="https://www.karllhughes.com/posts/non-technical-founder-hiring-cto" rel="noopener noreferrer"&gt;non-technical founder&lt;/a&gt; to build your own APIs.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You don’t have to understand what an API is at this point, but if you do, feel free to skip the first section and move right into “&lt;a href="https://www.karllhughes.com/#why-build-an-api" rel="noopener noreferrer"&gt;Why Build an API?&lt;/a&gt;”. If you already know why you need one, then skip down to “&lt;a href="https://www.karllhughes.com/#things-to-consider-when-building-an-api" rel="noopener noreferrer"&gt;Things to Consider When Building an API&lt;/a&gt;”, and if you are seasoned at building APIs but just want to know how you can build them without a developer, jump all the way down to “&lt;a href="https://www.karllhughes.com/#tools-for-building-apis-without-code" rel="noopener noreferrer"&gt;Tools for Building APIs Without Code&lt;/a&gt;”.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is an API?
&lt;/h2&gt;

&lt;p&gt;API stands for “Application Programming Interface.” Before I lose you with a bunch of technical jargon, let me put it in simple terms: &lt;strong&gt;an API is a way for computer programs to talk to each other&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;APIs are used in almost all software, websites, mobile apps, or computer games. Some companies even make money using only their APIs, but before I get to that, let’s take a look at an example of an API you’re probably familiar with:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpeersfe1g0fz32xf8pbk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpeersfe1g0fz32xf8pbk.png" width="800" height="312"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ever seen a screen like this? This is a Facebook login button, and it uses Facebook’s API to allow users to verify their identity. It essentially lets you skip entering your username and password by using your Facebook account as proof that you are who you say you are. Developers who use Facebook’s API can save themselves time by not having to build their own username and password login system, instead piggybacking off of Facebook’s.&lt;/p&gt;

&lt;p&gt;Another way that APIs can be used is to show data stored in another platform on your website. Have you ever seen a comment form on a site that looks like this?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdvdmt2i2nyk5sm1p2py.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwdvdmt2i2nyk5sm1p2py.png" width="800" height="256"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;When comments are powered by Disqus it means that the website uses the &lt;a href="https://disqus.com/" rel="noopener noreferrer"&gt;Disqus API&lt;/a&gt; to store their comments so they don’t have to manage them, remove spam, or write lots of code themselves. APIs can save developers a lot of time.&lt;/p&gt;

&lt;p&gt;Here’s another great example of using an API to get data from a third-party source:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fswc9vu8sxdkwnr5xr69e.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fswc9vu8sxdkwnr5xr69e.png" width="800" height="433"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://financeboards.com/" rel="noopener noreferrer"&gt;FinanceBoards&lt;/a&gt; uses stock market data provided by several different sources to create charts, graphs, reports, and more for investors. If you want to build any kind of stock market tracking application, you’ll need to get data like this, and &lt;a href="https://rapidapi.com/blog/best-stock-api/" rel="noopener noreferrer"&gt;stock data APIs&lt;/a&gt; make it relatively easy to do so.&lt;/p&gt;

&lt;p&gt;There’s almost no end to the kinds of things you can build using APIs, and there are hundreds of free APIs you can use in your projects &lt;a href="https://github.com/toddmotto/public-apis" rel="noopener noreferrer"&gt;check out this list on Github&lt;/a&gt;, but that’s a topic for another time. For the remainder of this guide, we’ll focus on building APIs.&lt;/p&gt;

&lt;p&gt;Sponsor&lt;/p&gt;

&lt;p&gt;&lt;a href="https://draft.dev/?src=karllhughes" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fakg0eaju1q45v5dxv4ef.png" width="300" height="300"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://draft.dev/?src=karllhughes" rel="noopener noreferrer"&gt;Want Great Content Like This for Your Site?&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;At &lt;a href="https://draft.dev/?src=karllhughes" rel="noopener noreferrer"&gt;Draft.dev&lt;/a&gt;, we create technical content for startups looking to reach software engineers. Stop begging your engineers to write blog posts and build a high-quality, reliable content engine today.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://draft.dev/?src=karllhughes" rel="noopener noreferrer"&gt;Learn More →&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Build an API?
&lt;/h2&gt;

&lt;p&gt;APIs are very powerful because they allow developers to take someone else’s work and build their own app or product from it, but why do API creators do it? It may seem that giving away your company’s data or features in an API could help your competitors, but when done right, an API can allow your company to grow into new areas that you never thought possible.&lt;/p&gt;

&lt;p&gt;Let’s take a look at some companies that have used their APIs to grow and eventually dominate their fields.&lt;/p&gt;

&lt;h3&gt;
  
  
  Quora: Using an API for Internal Use Only
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwy06oez2ohthg3r3m0a.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzwy06oez2ohthg3r3m0a.png" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;First of all, APIs do not have to be publicly available at all. In fact, most companies that have an API only use them internally to allow different parts of their website to talk to each other. &lt;a href="https://www.quora.com/" rel="noopener noreferrer"&gt;Quora&lt;/a&gt; is a great example of this, as they have an API, but do not offer external developers a way to gain access to it. Instead, they use this API to keep the data in their mobile and web apps in sync.&lt;/p&gt;

&lt;p&gt;The advantage to an internal API is that you can use the same database, business rules, and shared code behind the scenes to power your mobile app, desktop app, and website without having to worry about competitors stealing your content or developers misusing your data. So even if you never plan to give your data to partners, you may want to consider building an API simply to allow developers to build different apps with the same data. APIs are a great way to do more work with fewer developers.&lt;/p&gt;

&lt;h3&gt;
  
  
  Twitter: Allowing Users to Build their Ecosystem
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flje7cfjbgosx1wgomhw3.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flje7cfjbgosx1wgomhw3.png" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; started out with a huge focus on their API. Developers could get almost any data from Twitter they wanted - trends, hashtags, user stats - and they built some really cool stuff with it. This massive amount of open data and the tools people built actually attracted more users to Twitter. Companies could easily hook into the Twitter API to let users share their content on Twitter without leaving their site, and Twitter in turn got even more content on the platform.&lt;/p&gt;

&lt;p&gt;Twitter might have been able to build some of these applications on their own, but there’s no way they would have been able to do everything that API users have imagined. Eventually - once Twitter dominated the microblogging universe - they &lt;a href="https://www.theverge.com/2012/8/23/3263481/twitter-api-third-party-developers" rel="noopener noreferrer"&gt;tightened up their API&lt;/a&gt; and made partners pay for specific kinds of access. While this made early adopters mad, Twitter was able to profit from the growth of their API without sacrificing the long-term profits they now get out of it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Diigo: An Extra Incentive for Paid Users
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F31ka4of18bdf3kwssu28.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F31ka4of18bdf3kwssu28.png" width="800" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.diigo.com/" rel="noopener noreferrer"&gt;Diigo&lt;/a&gt; is a bookmarking and annotation tool with a generous free tier, convenient Chrome extension, and mobile sharing apps. Because some users wanted to use Diigo for more advanced purposes and build their own applications using the bookmarks they saved in Diigo, Diigo decided to offer a public API, but with a catch. It’s only available to paid users.&lt;/p&gt;

&lt;p&gt;While providing the API probably isn’t much more work than servicing their UI (in fact, it might be less work as &lt;a href="https://www.karllhughes.com/posts/startup-website" rel="noopener noreferrer"&gt;websites are notoriously hard to get right&lt;/a&gt;), Diigo decided that the users who wanted API access were most likely willing to pay a few bucks per month to make their lives easier using the API. It certainly hooked me in and took the product from cool to a critical part of my weekly workflow.&lt;/p&gt;

&lt;p&gt;If your business has successfully found a tech-savvy audience that is begging for API access, you might want to consider offering one especially if you can profit from it.&lt;/p&gt;

&lt;h3&gt;
  
  
  Mailchimp: Allowing Integrations that Encourage Greater Usage
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fri6hfppy7bgxjo1mkk12.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fri6hfppy7bgxjo1mkk12.png" width="800" height="371"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://mailchimp.com/" rel="noopener noreferrer"&gt;Mailchimp&lt;/a&gt; is one of the most popular email marketing tools out there, and it’s my personal favorite. It’s really easy to use, they have a generous free tier for small mailing lists, and they seem to always be the first when offering new features that are great for email senders. They also have a &lt;a href="https://mailchimp.com/developer/" rel="noopener noreferrer"&gt;well-documented API&lt;/a&gt; that encourages even more interesting use cases.&lt;/p&gt;

&lt;p&gt;Without their API, you can create a campaign from a template, add users to a list manually, and look at standard reports. But, using the Mailchimp API, you can build custom templates from your own website’s data, import thousands of existing users from a database, or showcase your raw email campaign data in novel ways. There’s no limit to what you can do, but all these new use cases also mean more revenue for Mailchimp as you still have to pay them to send your emails through their service. If you’re building a software-as-a-service platform that charges based on usage, an API could be a great way to increase engagement.&lt;/p&gt;

&lt;h3&gt;
  
  
  Aylien: API as a Service
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fan7gl1r4kta6ib3vfurt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fan7gl1r4kta6ib3vfurt.png" width="800" height="429"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;While many APIs are a bonus or supplemental feature, some companies are built as API-first services. &lt;a href="https://aylien.com/" rel="noopener noreferrer"&gt;Aylien&lt;/a&gt; is a text analysis and natural language processing service that doesn’t offer a user interface at all - they just sell access to their API.&lt;/p&gt;

&lt;p&gt;This means that developers hoping to analyze or categorize data can simply send their text to Aylien, then listen for a response with all the analysis they need. There’s no custom code involved at all, and using Aylien with existing data should take no more than a few minutes. They charge customers for this time savings though - once you go over their free tier, there’s a fee for using it.&lt;/p&gt;

&lt;p&gt;Aylien might someday offer a user interface, but by starting out as an API-first company, they’ve aligned themselves with developers and put the focus on their technical tooling rather than UI.&lt;/p&gt;

&lt;h2&gt;
  
  
  Does Every Business Need an API?
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“Every company in the world already has valuable data and functionality housed within its systems. Capitalizing on this value, however, means liberating it from silos and making it interoperable and reusable in different contexts—including by combining it with valuable assets from partners and other third parties.” - &lt;a href="https://pages.apigee.com/rs/351-WXY-166/images/Apigee_StateOfAPIS_eBook_2020.pdf" rel="noopener noreferrer"&gt;Apigee State of the API Economy, 2021&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Many businesses have had great success building APIs that customers or other third parties can use, but you do not &lt;em&gt;have&lt;/em&gt; to have an API, even if you are building a software-based business. In fact, the complexity of offering an API in addition to a user interface may be &lt;a href="https://www.karllhughes.com/posts/creating-a-tech-startup-without-a-developer" rel="noopener noreferrer"&gt;too much for a small startup&lt;/a&gt;, but it’s still good to understand when and why an API is appropriate.&lt;/p&gt;

&lt;p&gt;Here is a list of reasons you may or may not want to build an API. While not exhaustive, this should give you a starting point when deciding whether or not an API is right for your use case.&lt;/p&gt;

&lt;h3&gt;
  
  
  You Should Probably Build an API If:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  You want to build a mobile app or desktop app someday&lt;/li&gt;
&lt;li&gt;  You want to use modern front-end frameworks like &lt;a href="https://reactjs.org/" rel="noopener noreferrer"&gt;React&lt;/a&gt; or &lt;a href="https://angular.io/" rel="noopener noreferrer"&gt;Angular&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  You have a data-heavy website that you need to run quickly and load data without a complete refresh&lt;/li&gt;
&lt;li&gt;  You want to access the same data in many different places or ways (eg: an internal dashboard and a customer-facing web app)&lt;/li&gt;
&lt;li&gt;  You want to allow customers or partners limited or complete access to your data&lt;/li&gt;
&lt;li&gt;  You want to upsell your customers on direct API access&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  You Should Probably &lt;em&gt;Not&lt;/em&gt; Build an API If:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;  You just need a landing page or blog as a website&lt;/li&gt;
&lt;li&gt;  Your application is temporary and not intended to grow or change much&lt;/li&gt;
&lt;li&gt;  You never intend on expanding to other platforms (eg: mobile, desktop)&lt;/li&gt;
&lt;li&gt;  You don’t understand the technical implications of building one&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;One thing that doesn’t have to stand in your way of building an API is not having (or being) an experienced software developer. &lt;strong&gt;In fact, you might be able to build a serviceable API without any custom development work, but you should understand some of the implications of giving users API access to your data.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4iproq5gr868fusku3bz.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F4iproq5gr868fusku3bz.png" width="800" height="541"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Things to Consider When Building an API
&lt;/h2&gt;

&lt;p&gt;When you build a website with sensitive or proprietary data, you probably want users to log in before they can access it. The same holds true for APIs - you shouldn’t make yours open to the public unless you want anyone in the world to have access. Even if you want the data to be easy to get, you may want to issue API keys just so you can keep track of who’s using it and potentially lock out anyone who abuses your API. Security is one consideration, but there are many other things you should think about when building an API:&lt;/p&gt;

&lt;h3&gt;
  
  
  Authentication
&lt;/h3&gt;

&lt;p&gt;Who do you want to give access to your API? Paying customers? Internal employees? Anyone on the internet? If you want to institute any limits on how or how much your API is used, you’ll need some form of authentication. Common options include Basic Auth, API Keys, OAuth tokens, and JSON Web Tokens. I won’t get into the difference here, but there’s a &lt;a href="https://zapier.com/engineering/apikey-oauth-jwt/" rel="noopener noreferrer"&gt;great article by Zapier explaining the difference here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Documentation
&lt;/h3&gt;

&lt;p&gt;Developers who want to use your API will need some way to know how they can use it. API Documentation should describe the requests that are allowed, the format and type of data inputs allowed, and the responses returned by the API. These documents can follow certain standard formats (like the &lt;a href="https://swagger.io/solutions/api-documentation/" rel="noopener noreferrer"&gt;Swagger specification&lt;/a&gt;), or they can be different between every API. We’ll talk more about requests and responses in the next section of this guide.&lt;/p&gt;

&lt;h3&gt;
  
  
  Role and Route-Based Permissions
&lt;/h3&gt;

&lt;p&gt;Sometimes you will need your authentication rules to be quite complicated. For example, maybe internal developers can access certain parts of your API that public users or customers cannot. Developers can build in role or route-based permissions systems that prevent unauthorized use in specific parts of your API.&lt;/p&gt;

&lt;h3&gt;
  
  
  Rate Limiting
&lt;/h3&gt;

&lt;p&gt;When you offer access to your API to the public, it’s usually a good idea to prevent people from using it too much or too quickly. Rate limiting can prevent users from abusing your API, scraping all your data, or simply crashing your app because they’re making so many requests.&lt;/p&gt;

&lt;h3&gt;
  
  
  Logging/Analytics
&lt;/h3&gt;

&lt;p&gt;When your API returns an error to a user, you might want to know about it. Logging can be added to capture every request and response or just the ones that failed. Logging or analytics can also help you track how much your API is being used, especially when you’re dealing with lots of third-party users.&lt;/p&gt;

&lt;h3&gt;
  
  
  Side Effects
&lt;/h3&gt;

&lt;p&gt;What if you want to trigger alerts, link multiple API requests together, or kick off background tasks with your API? These events are referred to as “side effects” meaning that they might not be contained in the primary request and response, but are still important actions when designing your API. Usually, this level of customization has to be custom-coded, but there are ways to manage side effects without writing code.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scalability
&lt;/h3&gt;

&lt;p&gt;“Scalability” is a term that developers use to refer to the ability of your API to grow or shrink depending on the needs of your team or customers. For example, a scalable API can handle 100 users today and 10,000 users tomorrow without throwing lots of errors. Ideally, a good, scalable API will cost less when it’s not in use, but that level of scalability is tough to reach without a developer.&lt;/p&gt;

&lt;h3&gt;
  
  
  Speed
&lt;/h3&gt;

&lt;p&gt;500 milliseconds (1/2 a second) may not sound like much time, but for computers, this is an eternity. While there’s no single answer to the question, “&lt;a href="https://dev.to/karllhughes/building-a-response-timer-to-benchmark-api-performance-3k6k"&gt;How fast should your API be?&lt;/a&gt;” many successful APIs respond within 100 milliseconds. This can depend greatly on who your users are and what they’re using your API for. Real-time stock market price APIs need to be much faster than most consumer web applications.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxab0jql11168mq479klp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fxab0jql11168mq479klp.png" width="800" height="436"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How an API Works
&lt;/h2&gt;

&lt;p&gt;Now that you know what an API is and why it might be a good fit for your business and some technical considerations, let’s make it a little more tangible.&lt;/p&gt;

&lt;p&gt;APIs are a way for computers to share data or functionality, but computers need some kind of interface to talk to each other. While there are many options out there, we’ll focus on &lt;a href="https://en.wikipedia.org/wiki/Web_API" rel="noopener noreferrer"&gt;HTTP APIs (also known as Web APIs)&lt;/a&gt; as they are the most common option in web and mobile app development.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Building Blocks of an API
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;First, an API needs a data source.&lt;/strong&gt; In most cases, this will be a database like &lt;a href="https://www.mysql.com/" rel="noopener noreferrer"&gt;MySQL&lt;/a&gt;, &lt;a href="https://www.mongodb.com/" rel="noopener noreferrer"&gt;MongoDB&lt;/a&gt;, or &lt;a href="https://redis.io/" rel="noopener noreferrer"&gt;Redis&lt;/a&gt; (don’t worry if you don’t know what those are, they’re basically just ways that programmers store data), but it could also be something simpler like a text file or spreadsheet. The API’s data source can usually be updated through the API itself, but it might be updated independently if you want your API to be “read-only”.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Next, an API needs a format for making requests.&lt;/strong&gt; When a user wants to use an API, they make a “request”. This request usually includes a verb (eg: “Get”, “Post”, “Put”, or “Delete”), a path (this looks like a URL), and a payload (eg: form or JSON data). Good APIs offer rules for making these requests in their documentation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Finally, an API needs to return a response.&lt;/strong&gt; Once the API processes the request and gets or saves data to the data source, it should return a “response”. This response usually includes a status code (eg: “404 - Not Found”, “200 - Okay”, or “500 - Server Error”) and a payload (usually text or JSON data). This response format should also be specified in the documentation of the API so that developers know what to expect when they make a successful request.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhxgzq3nnxcggzl3rm42o.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhxgzq3nnxcggzl3rm42o.png" width="771" height="425"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An API can optionally do many other things (see the list of considerations above), but these three things are the most fundamental for any API. To make these concepts even more concrete, let’s access a couple real APIs and see what they look like. Don’t worry, you don’t have to know how to code to follow along.&lt;/p&gt;

&lt;h3&gt;
  
  
  Accessing an API from Your Web Browser
&lt;/h3&gt;

&lt;p&gt;HTTP APIs actually use the same method of communication that your web browser uses when it accesses websites. This means you can access some APIs by simply typing a URL into your browser.&lt;/p&gt;

&lt;p&gt;For example, &lt;a href="https://world.openfoodfacts.org/data" rel="noopener noreferrer"&gt;Open Food Facts&lt;/a&gt; has a free API for getting information about foods and ingredients. You can go to &lt;a href="https://world.openfoodfacts.org/api/v0/product/737628064502.json" rel="noopener noreferrer"&gt;this link&lt;/a&gt; in your web browser to see the API response for all the data they have on “Stir Fry Rice Noodles”.&lt;/p&gt;

&lt;p&gt;When you go to that URL, you’ll see a mess of data like this:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{"status":1,"product":{"ingredients_text_with_allergens":"RICE NOODLES (RICE, WATER), SEASONING PACKET (PEANUT, SUGAR, SALT, CORN STARCH, SPICES [CHILI, CINNAMON, PEPPER, CUMIN, CLOVE], HYDRDLYZED SOY PROTEIN, GREEN ONIONS, CITRIC ACID, PEANUT OIL, SESAME OIL, NATURAL FLAVOR).","generic_name_en_debug_tags":[],"nutrition_data_per_debug_tags":[],"additives_prev":" [ rice-noodles -&amp;gt; en:rice-noodles  ]  [ noodles -&amp;gt; en:noodles  ]  [ rice -&amp;gt; en:rice  ]  [ water -&amp;gt; en:water  ]  [ seasoning-packet -&amp;gt; en:seasoning-packet  ]  [ packet -&amp;gt; en:packet  ]  [ peanut -&amp;gt; en:peanut  ]  [ sugar -&amp;gt; en:sugar  ]  [ salt -&amp;gt; en:salt  ]  [ corn-starch -&amp;gt; en:corn-starch  ]  [ starch -&amp;gt; en:starch  ]  [ spices -&amp;gt; en:spices  ]  [ chili -&amp;gt; en:chili  ]  [ cinnamon -&amp;gt; en:cinnamon  ]  [ pepper -&amp;gt; en:pepper  ]  [ cumin -&amp;gt; en:cumin  ]  [ clove -&amp;gt; en:clove  ]  [ hydrdlyzed-soy-protein -&amp;gt; en:hydrdlyzed-soy-protein  ]  [ soy-protein -&amp;gt; en:soy-protein  ]  [ protein -&amp;gt; en:protein  ]  [ green-onions -&amp;gt; en:green-onions  ]  [ onions -&amp;gt; en:onions  ]  [ citric-acid -&amp;gt; en:e330  -&amp;gt; exists  -- ok  ]  [ peanut-oil -&amp;gt; en:peanut-oil  ]  [ oil -&amp;gt; en:oil  ]  [ sesame-oil -&amp;gt; en:sesame-oil  ]  [ oil -&amp;gt; en:oil  ]  [ natural-flavor -&amp;gt; en:natural-flavor  ]  [ flavor -&amp;gt; en:flavor  ] ","nutrition_data":"on","ingredients_from_palm_oil_n":0,"editors":["","thierrym","manu1400","andre","upcbot"],"allergens_hierarchy":[],"brands":"Thai Kitchen,Simply Asia","link":"",...}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;Obviously, this is impossible for humans to make sense of, but it’s actually formatted in “JSON”, a very common and easy-to-parse format for computers. To see the data in a more readable way, you can format it using a &lt;a href="https://jsonformatter.org/" rel="noopener noreferrer"&gt;JSON formatter&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Go to &lt;a href="https://jsonformatter.org/" rel="noopener noreferrer"&gt;jsonformatter.org&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  Copy/paste all the messy-looking text from the openfoodfacts API response above into the left-hand side of the JSON formatter.&lt;/li&gt;
&lt;li&gt;  Click “Format/Beautify”&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgkx0b507oaouqvvcabf4.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgkx0b507oaouqvvcabf4.png" width="800" height="466"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Now the data is a little easier to look at. Congratulations, you just made your first real API request!&lt;/p&gt;

&lt;h3&gt;
  
  
  Accessing an API from Postman
&lt;/h3&gt;

&lt;p&gt;The example above was simple because the API didn’t require any authentication and we were just making a “Get” request to see all the data about a single product. If the API you’re accessing or building is more complex, you’ll likely need to use an API tool like &lt;a href="https://www.karllhughes.com/posts/postman-api-access" rel="noopener noreferrer"&gt;Postman&lt;/a&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  To set up Postman, &lt;a href="https://www.getpostman.com/apps" rel="noopener noreferrer"&gt;download it for your operating system here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;  We’ll be using the &lt;a href="https://holidayapi.com/" rel="noopener noreferrer"&gt;Holiday API&lt;/a&gt;, so go to &lt;a href="https://holidayapi.com/" rel="noopener noreferrer"&gt;holidayapi.com&lt;/a&gt; and sign up for a free API key.&lt;/li&gt;
&lt;li&gt;  Enter the URL &lt;code&gt;https://holidayapi.com/v1/holidays&lt;/code&gt; into the Postman address bar&lt;/li&gt;
&lt;li&gt;  Click “Params” and enter your &lt;code&gt;key&lt;/code&gt;, &lt;code&gt;country&lt;/code&gt;, and &lt;code&gt;year&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;  Click “Send” to make the API request to Holiday API.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3o3qjhmsvye0xui5guzv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3o3qjhmsvye0xui5guzv.png" width="800" height="179"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Just like the response from Open Food Facts, the Holiday API returns a JSON data structure:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{    "status": 200,    "holidays": {        "2017-01-01": [            {                "name": "Last Day of Kwanzaa",                "date": "2017-01-01",                "observed": "2017-01-01",                "public": false            },            {                "name": "New Year's Day",                "date": "2017-01-01",                "observed": "2017-01-02",                "public": true            }        ],        ...   }}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;In addition to making complex API requests easier, Postman also makes responses easier to read by formatting them. This means you don’t have to use a tool like JSON Formatter to make API data readable.&lt;/p&gt;

&lt;h3&gt;
  
  
  Accessing an API from Code
&lt;/h3&gt;

&lt;p&gt;While using your web browser or Postman is great for testing and exploring an API, you (or your customers) will eventually want to connect to your API using code. There are many ways to do this, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://curl.haxx.se/docs/manpage.html" rel="noopener noreferrer"&gt;CURL&lt;/a&gt; from the command line&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://developer.mozilla.org/en-US/docs/Web/Guide/AJAX/Getting_Started" rel="noopener noreferrer"&gt;AJAX&lt;/a&gt; or &lt;a href="https://developer.mozilla.org/en-US/docs/Web/API/Fetch_API" rel="noopener noreferrer"&gt;Fetch API&lt;/a&gt; in Javascript&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://ruby-doc.org/stdlib-2.5.1/libdoc/net/http/rdoc/index.html" rel="noopener noreferrer"&gt;Net::HTTP&lt;/a&gt; in Ruby&lt;/li&gt;
&lt;li&gt;  &lt;a href="http://unirest.io/java.html" rel="noopener noreferrer"&gt;Unirest&lt;/a&gt; in Java&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Pretty much every programming language or framework has an HTTP library that you can use to make API requests, but I won’t cover them in detail here as this guide is all about no-code solutions. Just know that developers who want to use your API will likely need a tool like this.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tools for Building APIs Without Code
&lt;/h2&gt;

&lt;p&gt;Now that you know what an API is, why you might need one, and how to access an API, you’re ready to get your hands dirty and actually build one. All of the solutions below (with the exception of the last two) require no code, but many of them can be enhanced or improved with some custom development work.&lt;/p&gt;

&lt;p&gt;I find this model of &lt;a href="https://www.karllhughes.com/posts/creating-a-tech-startup-without-a-developer" rel="noopener noreferrer"&gt;starting with a no-code prototype and then enhancing it with code&lt;/a&gt; from a developer to be ideal as it allows you to test your API before you &lt;a href="https://www.karllhughes.com/posts/hiring-process" rel="noopener noreferrer"&gt;hire a software engineer&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://sheetsu.com/" rel="noopener noreferrer"&gt;Sheetsu&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt; Sheetsu might be the easiest way to get started building an API because you probably already have some data in a spreadsheet that will make up the backbone of your application. Sheetsu takes any Google Sheet and turns it into a queryable, flexible API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Super simple to get started. This is truly a zero-code solution&lt;/li&gt;
&lt;li&gt;  Authentication via an API key&lt;/li&gt;
&lt;li&gt;  Route-based permissions&lt;/li&gt;
&lt;li&gt;  Automatically generated docs&lt;/li&gt;
&lt;li&gt;  Input forms to allow users to add content&lt;/li&gt;
&lt;li&gt;  Can use with Zapier to trigger events in other services, send emails, etc.&lt;/li&gt;
&lt;li&gt;  Includes “instructions” you can email to developers to help them start using your API&lt;/li&gt;
&lt;li&gt;  “Handlebars” option allows you to create a frontend template from your data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Does not allow you to enhance your API with custom code&lt;/li&gt;
&lt;li&gt;  No user roles for advanced permissions&lt;/li&gt;
&lt;li&gt;  Linking data in multiple tables isn’t really possible&lt;/li&gt;
&lt;li&gt;  Query options are somewhat limited (just a simple search by field)&lt;/li&gt;
&lt;li&gt;  Doesn’t appear to allow rate limiting&lt;/li&gt;
&lt;li&gt;  While there is a free plan, it’s extremely limited, and you’re likely going to have to move to the $49/month plan pretty quickly&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://airtable.com/invite/r/4EaSmQNr" rel="noopener noreferrer"&gt;Airtable&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt; I’ve started using Airtable for almost everything that I used to pack into spreadsheets. The big advantage to &lt;a href="https://www.karllhughes.com/posts/using-airtable-as-an-api" rel="noopener noreferrer"&gt;using Airtable for your API&lt;/a&gt; is that they have an excellent visual user interface and integrations with many other tools built-in. Plus, you can use Zapier to trigger custom actions when new items show up in Airtable.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Super simple to get started, another zero-code solution&lt;/li&gt;
&lt;li&gt;  Authentication via a single API key&lt;/li&gt;
&lt;li&gt;  Permissions using sharing settings in UI&lt;/li&gt;
&lt;li&gt;  Input forms to allow users to add content&lt;/li&gt;
&lt;li&gt;  Can use Zapier to trigger events in other services, send emails, etc.&lt;/li&gt;
&lt;li&gt;  Database-style linking between records&lt;/li&gt;
&lt;li&gt;  Query by complex functions for advanced filtering and searching of records&lt;/li&gt;
&lt;li&gt;  User roles allow limited role-based permissions&lt;/li&gt;
&lt;li&gt;  Excellent automatic documentation generated for each table&lt;/li&gt;
&lt;li&gt;  API is automatic. Every Airtable you make already has API access&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Officially only allows up to 5 API requests per second, which might be fine for light use, but could be limiting as you scale up&lt;/li&gt;
&lt;li&gt;  Authenticating users requires them to have an Airtable account and generate their own API key&lt;/li&gt;
&lt;li&gt;  Not as customizable as some options&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://wrapapi.com/" rel="noopener noreferrer"&gt;WrapAPI&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt; In theory, WrapAPI is a powerful and extremely useful tool for scraping data or making your own static website or spreadsheet into a queryable, dynamic API. In practice, it’s a bit more complicated. I have played around with WrapAPI quite a bit, and while I’m highly technical, I found that it only works correctly for some websites. Relatively simple HTML-only sites tend to work best while complex “client-side” apps tend to get lost.&lt;/p&gt;

&lt;p&gt;Still, it’s worth trying this tool out if you already have your data on a web page (maybe an HTML table) and you want to expose it via an API as well.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Great if the data you have already exists on the web and it’s displayed on a simple webpage&lt;/li&gt;
&lt;li&gt;  Would also be useful for monitoring web pages that don’t offer “official” APIs&lt;/li&gt;
&lt;li&gt;  API-key based authentication&lt;/li&gt;
&lt;li&gt;  Generous free tier (30k requests/month)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Can’t save data through the API, they are read-only&lt;/li&gt;
&lt;li&gt;  No logging, or extensions, and customizability is limited&lt;/li&gt;
&lt;li&gt;  A little more difficult to get set up unless you know how &lt;a href="https://www.w3schools.com/cssref/css_selectors.asp" rel="noopener noreferrer"&gt;HTML and CSS selectors work&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://restdb.io/" rel="noopener noreferrer"&gt;Restdb.io&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt; What I like about RestDB.io is that it starts simple, but is very powerful if you are a developer. Unfortunately, it’s not quite as easy to add things like authentication or validation as it is in some platforms, but if you have some Javascript chops, you might be able to write that on your own.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Can create “lookup” relationships between records&lt;/li&gt;
&lt;li&gt;  Can bring your own database to customize even further&lt;/li&gt;
&lt;li&gt;  Pricing is very good and each tier scales really high&lt;/li&gt;
&lt;li&gt;  Lots of features can be added via “Codehooks”:

&lt;ul&gt;
&lt;li&gt;  Authentication&lt;/li&gt;
&lt;li&gt;  Logging&lt;/li&gt;
&lt;li&gt;  Emails&lt;/li&gt;
&lt;li&gt;  Role or route-based permissions&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  If you want to get beyond basic use-cases, you’ll need a developer to help&lt;/li&gt;
&lt;li&gt;  The auto-generated docs are too simplistic&lt;/li&gt;
&lt;li&gt;  Vendor lock-in is a likely problem once you scale. While you can export your data, it would be pretty arduous to rebuild lots of custom Codehooks&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://bubble.io/" rel="noopener noreferrer"&gt;Bubble&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt; Bubble is probably &lt;a href="https://www.karllhughes.com/posts/bubble-web-app" rel="noopener noreferrer"&gt;the best web application builder&lt;/a&gt; I’ve seen for those who don’t code, and because it also includes an option to expose your data or workflows over an API, it’s worth noting here. You can hook into your application’s permission settings to manage access to resources or keep certain resources hidden completely. If you’re already using Bubble for your website, then using them to generate your API is an easy decision.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Permissions and authentication managed the same way as it is in the application builder&lt;/li&gt;
&lt;li&gt;  Documentation generation with Swagger&lt;/li&gt;
&lt;li&gt;  Logging through Bubble’s admin interface&lt;/li&gt;
&lt;li&gt;  Creating data models is pretty simple and you can import CSV files with your data&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Learning Bubble is a big undertaking, and if you go with them, you’re likely all in&lt;/li&gt;
&lt;li&gt;  Not quite as customizable as building your own API with code, but it’s pretty close&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.algolia.com/" rel="noopener noreferrer"&gt;Algolia&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt; For searching data, Algolia is simply magical. Most other solutions here aren’t concerned with performance because often, building an MVP doesn’t warrant it, but if you’re in need of speed and you have a lot of data, Algolia is a great solution. It can take some technical setup depending on how you want to use it, but &lt;a href="https://discourse.algolia.com/t/algolia-for-zapier-beta/2949/7" rel="noopener noreferrer"&gt;there’s a Zapier connector in the works&lt;/a&gt;, and you can upload records via CSV or JSON. Even if you can’t write code, you can probably get Algolia working for you.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Super-good at searching, setting up search rules, and speed&lt;/li&gt;
&lt;li&gt;  Slightly more difficult than editing a spreadsheet, but not much&lt;/li&gt;
&lt;li&gt;  Can be used as a replacement for Solr or Elasticsearch (if you don’t know what those are, don’t worry about it)&lt;/li&gt;
&lt;li&gt;  Logging is available&lt;/li&gt;
&lt;li&gt;  Scales up as high as you want&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Limited flexibility and customization&lt;/li&gt;
&lt;li&gt;  No documentation generation&lt;/li&gt;
&lt;li&gt;  Can get expensive at higher use levels&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://strapi.io/" rel="noopener noreferrer"&gt;Strapi&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt; Strapi is an open-source content management system that lets you self-host an API on your own server in minutes. Even if you’re not an experienced developer, you can probably follow the &lt;a href="https://strapi.io/documentation/developer-docs/latest/getting-started/quick-start.html" rel="noopener noreferrer"&gt;setup instructions&lt;/a&gt; to get started. The biggest limitation today is that you’ll need to run and maintain a server to host your Strapi backend. But, as an &lt;a href="https://www.karllhughes.com/posts/open-source-companies" rel="noopener noreferrer"&gt;open-source company&lt;/a&gt;, I imagine Strapi will add a hosted version that makes it even easier for non-technical users to get started with.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Very flexible and fast&lt;/li&gt;
&lt;li&gt;  Includes a GraphQL interface, which is a better option for some use cases&lt;/li&gt;
&lt;li&gt;  Can build complex relationships between data models&lt;/li&gt;
&lt;li&gt;  Permissions and authentication rules can be set granularly&lt;/li&gt;
&lt;li&gt;  Scales up as much as your server can handle&lt;/li&gt;
&lt;li&gt;  Free (but you do pay for your server)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Not completely “no-code” because you have to setup and run it on your own server&lt;/li&gt;
&lt;li&gt;  More complicated to set up and configure than some options&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://github.com/mevdschee/php-crud-api" rel="noopener noreferrer"&gt;PHP CRUD API&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;strong&gt;Description:&lt;/strong&gt; If you’re semi-technical or you can hire a developer to do some initial setup, PHP-CRUD-API might be a great option. Once you hook it up to an existing MySQL, Postgres, or SQL Server database, it automatically generates an API that is documented and highly customizable. The downside to this approach is that you’ll have to pay to host and set up the application. The upside is that it should scale with you long after your MVP.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pros:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Much more flexible as you can view and modify the whole app’s source code&lt;/li&gt;
&lt;li&gt;  Once set up, you just have to modify your database schema to modify the API&lt;/li&gt;
&lt;li&gt;  Scales as much as the server you put it on&lt;/li&gt;
&lt;li&gt;  Automatic &lt;a href="https://swagger.io/docs/" rel="noopener noreferrer"&gt;Swagger&lt;/a&gt; documentation generation&lt;/li&gt;
&lt;li&gt;  Works great if you already have an existing database&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Cons:&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Not really a “no-code” solution as you’ll likely have to have a developer set it up for you&lt;/li&gt;
&lt;li&gt;  While the application is free, you will have to pay for hosting it (probably $5-$25/month)&lt;/li&gt;
&lt;li&gt;  No authentication, logging, triggers, etc. included out of the box, but they can be added with some custom coding&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Building an API without code is getting easier every year. When I first wrote this guide in 2017, the options were limited, but with the widespread growth of &lt;a href="https://www.karllhughes.com/posts/cloud-services" rel="noopener noreferrer"&gt;cloud services&lt;/a&gt; and &lt;a href="https://stackoverflow.blog/2021/06/09/using-low-code-tools-to-iterate-products-faster/" rel="noopener noreferrer"&gt;low-code tools&lt;/a&gt;, I’ve been able to add many new options to this guide.&lt;/p&gt;

&lt;p&gt;I intend to keep updating this guide periodically. If you have your own suggestions for building APIs without code, &lt;a href="https://twitter.com/karllhughes" rel="noopener noreferrer"&gt;find me on Twitter&lt;/a&gt; to let me hear about them.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Startup Tools I Can't Live Without</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Thu, 07 Oct 2021 19:07:38 +0000</pubDate>
      <link>https://forem.com/karllhughes/the-startup-tools-i-can-t-live-without-mmi</link>
      <guid>https://forem.com/karllhughes/the-startup-tools-i-can-t-live-without-mmi</guid>
      <description>&lt;h1&gt;
  
  
  &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyj0aavhwi0h9aydzs488.png" width="800" height="450"&gt;
&lt;/h1&gt;

&lt;p&gt;I’ve always liked trying new software tools, but the more experienced I get, the more solid my business operating system has gotten. As I refine the toolset I use for running my startup, I like to keep a running list of the tools that I use and recommend.&lt;/p&gt;

&lt;p&gt;While I’m always open to trying new things, I don’t add tools here unless I personally use them and endorse them.&lt;/p&gt;

&lt;p&gt;Entries are broken down into categories and include a bit about how I use them. If you’re interested in a longer explanation, &lt;a href="https://www.karllhughes.com/cdn-cgi/l/email-protection#177c7f62707f7264397a7257707a767e7b3974787a" rel="noopener noreferrer"&gt;email me&lt;/a&gt; and I’ll send you more details.&lt;/p&gt;

&lt;h2&gt;
  
  
  Organization
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://airtable.com/invite/r/4EaSmQNr" rel="noopener noreferrer"&gt;Airtable&lt;/a&gt; - I use Airtable as a content calendar, personal CRM, applicant tracking system, and much more. It’s essentially a spreadsheet-like interface for structured data.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://trello.com/" rel="noopener noreferrer"&gt;Trello&lt;/a&gt; - Trello is &lt;a href="https://www.youtube.com/watch?v=F3qLERNbZy0" rel="noopener noreferrer"&gt;my go-to project management&lt;/a&gt; and life organization tool. I use it for my daily and weekly to-do lists and managing team projects.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.notion.so/" rel="noopener noreferrer"&gt;Notion&lt;/a&gt; - I use Notion for my side projects. It’s a bit more flexible than Trello, but (until recently) didn’t offer an API, so it’s not as powerful as Airtable.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://zapier.com/" rel="noopener noreferrer"&gt;Zapier&lt;/a&gt; - I automate everything I can with Zapier. I’ve also tried and liked &lt;a href="https://n8n.io/blog/why-i-chose-n8n-over-zapier-in-2020/" rel="noopener noreferrer"&gt;n8n&lt;/a&gt;, but until they’ve built all the connectors that Zapier has, I’m still more heavily locked into Zapier.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://calendly.com/" rel="noopener noreferrer"&gt;Calendly&lt;/a&gt; - I never knew I needed Calendly until I started a business. It cuts down on so many back-and-forths around scheduling.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://refergsuite.app.goo.gl/ACiV" rel="noopener noreferrer"&gt;GSuite&lt;/a&gt; - Maybe this one is too obvious, but half my life is in the Google Suite. We use it for documentation, delivering content to clients, diagrams, team emails, and much more.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://toggl.com/" rel="noopener noreferrer"&gt;Toggl&lt;/a&gt; - I’ve tried several tools for time tracking, but Toggl is my favorite. The weekly reports help me see which areas of my business I’m spending time on and help me direct my priorities for the week ahead.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.diigo.com/" rel="noopener noreferrer"&gt;Diigo&lt;/a&gt; - I use Diigo as a bookmark organization system and a way to pipe interesting articles into my email newsletter.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Payroll and Freelancers
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://pilot.co/" rel="noopener noreferrer"&gt;Pilot.co&lt;/a&gt; - We have contractors in 27 countries, and Pilot was the best payroll solution I could find for our use case. They’ve been very helpful about understanding international taxes and laws too.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.shareasale.com/r.cfm?b=1006810&amp;amp;u=1653894&amp;amp;m=71912" rel="noopener noreferrer"&gt;Gusto&lt;/a&gt; - For full-time employees, Gusto is the best option available today. It’s affordable and lets you easily layer on other benefits.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.upwork.com/" rel="noopener noreferrer"&gt;Upwork&lt;/a&gt; - I’ve hired developers, writers, and designers on Upwork. While you have to wade through a lot of junk to find the few good people there, they make it really simple to hire freelancers.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.fiverr.com/" rel="noopener noreferrer"&gt;Fiverr&lt;/a&gt; - For very short-term projects, I use Fiverr. Things like logo design, bug fixes, and presentation design are all easily outsourced to Fiverr members.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Writing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://refergsuite.app.goo.gl/ACiV" rel="noopener noreferrer"&gt;Google Docs&lt;/a&gt; - After trying a few methods, I found the editing and commenting features in Google Docs in addition to the Grammarly integration to make it the easiest tool for writing. If only it supported Markdown…&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://jekyllrb.com/" rel="noopener noreferrer"&gt;Jekyll&lt;/a&gt; - While not the most modern static site generator available, Jekyll works well. Most of the blogs I operate run on Jekyll at this point.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.grammarly.com/" rel="noopener noreferrer"&gt;Grammarly&lt;/a&gt; - I love that Grammarly takes care of most of the little details when you’re writing. It’s saved me from a lot of comma splices over the years.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://typefully.app/" rel="noopener noreferrer"&gt;Typefully&lt;/a&gt; - Twitter really loves threads, so I’ve been doing more of them lately. Typefully is the best tool I’ve found for writing them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Video
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="http://zoom.com/" rel="noopener noreferrer"&gt;Zoom&lt;/a&gt; - While I’m heavily using GSuite for most of its services, I think Zoom is better for video calls. Despite a clunky calendar integration, it tends to establish a more reliable connection.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.loom.com/" rel="noopener noreferrer"&gt;Loom&lt;/a&gt; - Our team at &lt;a href="https://draft.dev/" rel="noopener noreferrer"&gt;Draft.dev&lt;/a&gt; is remote and mostly asynchronous. Loom is a great tool for sharing quick instructions with the team or helping people get unstuck without needing to hop on a call.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Programming
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.jetbrains.com/" rel="noopener noreferrer"&gt;Jet Brains IDE&lt;/a&gt; - Jet Brains’ suite is the first IDE I’ve had that cost money, and it’s the best one I’ve found overall.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://m.do.co/c/888fefc32a01" rel="noopener noreferrer"&gt;DigitalOcean&lt;/a&gt; - Simpler than the big three (Azure, AWS, GCP), I like DigitalOcean’s philosophy of minimal hosting options. The templates they offer are a nice middle ground for getting started quickly.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://vercel.com/" rel="noopener noreferrer"&gt;Vercel&lt;/a&gt; - On the other end of the spectrum, I often use Vercel to host small, frontend-heavy projects. Very quick to get started with if you’re working in Node/JavaScript.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://github.com/" rel="noopener noreferrer"&gt;Github&lt;/a&gt; - Not only a code-sharing platform, Github is my go-to static site host and CI/CD platform as well.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Sales and Marketing
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://carrd.co/" rel="noopener noreferrer"&gt;Carrd&lt;/a&gt; - Carrd is the best one-page landing page builder I’ve found. For testing a new project idea or email newsletter, Carrd is the best.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://webflow.com/" rel="noopener noreferrer"&gt;Webflow&lt;/a&gt; - Once you need more than a single page, Webflow is pretty solid. It’s significantly more complicated than Carrd, but more powerful as well.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.pipedrive.com/" rel="noopener noreferrer"&gt;Pipedrive&lt;/a&gt; - I don’t love it, but it’s the best CRM I’ve found for my relatively minimal needs.&lt;/li&gt;
&lt;li&gt;  &lt;a href="http://eepurl.com/cMDrn5" rel="noopener noreferrer"&gt;Mailchimp&lt;/a&gt; - Mailchimp is probably the best all-purpose email management tool available. I keep most of my email lists here, but it’s pretty easy to port them to another provider if you want.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.curated.co/" rel="noopener noreferrer"&gt;Curated&lt;/a&gt; - For my weekly email newsletter, I’m currently using Curated. It’s a little more complicated than I’d like, but it’s a lot better for sending “list of link” style emails than Mailchimp.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://ahrefs.com/" rel="noopener noreferrer"&gt;ahrefs&lt;/a&gt; - My go-to SEO tool, ahrefs also provides some really solid educational material on their blog and YouTube channel.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Payments
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://stripe.com/" rel="noopener noreferrer"&gt;Stripe&lt;/a&gt; - Stripe has revolutionized the world of online payments. While it can still be messy and confusing at times, it’s an order of magnitude better than the old solutions I remember early in my career.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://www.moonclerk.com/?via=karl" rel="noopener noreferrer"&gt;Moonclerk&lt;/a&gt; - Moonclerk adds recurring billing to Stripe for just a few dollars per month. It’s not that customizable, but it’s really simple to use.&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://invoice-generator.com/" rel="noopener noreferrer"&gt;Invoice Generator&lt;/a&gt; - One of Moonclerk’s missing features is proper invoicing. So, I use Invoice Generator to create and send them manually for clients who need them.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Misc
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://www.canva.com/" rel="noopener noreferrer"&gt;Canva&lt;/a&gt; - I’m definitely not a designer, so I like how simple Canva is for creating images, logos, book covers, and more.&lt;/li&gt;
&lt;li&gt;  &lt;a href="http://wohven.refr.cc/karlhughes" rel="noopener noreferrer"&gt;Wohven&lt;/a&gt; - Wohven takes care of my t-shirts by sending me a new one every month as mine fade.&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Managing Direct Reports at a Startup</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Wed, 29 Sep 2021 15:08:43 +0000</pubDate>
      <link>https://forem.com/karllhughes/managing-direct-reports-at-a-startup-3jpl</link>
      <guid>https://forem.com/karllhughes/managing-direct-reports-at-a-startup-3jpl</guid>
      <description>&lt;p&gt;===&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm3zt4c9bs22ozyoqavk8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm3zt4c9bs22ozyoqavk8.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I remember the first time I was put in charge of a team at a startup. I had been in leadership roles in college, but that was nothing compared to managing software engineers who were 5 to 15 years more experienced than myself.&lt;/p&gt;

&lt;p&gt;It was scary and it stretched my comfort zone, but ultimately, learning to manage direct reports effectively was one of the most valuable skills I picked up early in my career.&lt;/p&gt;

&lt;h2&gt;
  
  
  What are Direct Reports?
&lt;/h2&gt;

&lt;p&gt;Direct reports refer to employees that report directly to someone above them in an organization’s hierarchy. This person can be a team leader, supervisor, or manager.&lt;/p&gt;

&lt;p&gt;In a startup, most organizational structures are simple, and might just consist of a founder with a few division heads or managers each responsible for a few direct reports.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzop7xdsaknrxgl75wnxa.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fzop7xdsaknrxgl75wnxa.png" width="795" height="492"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As a startup manager or team lead, you are responsible for assigning work to direct reports, monitoring their performance, reviewing deliverables, providing feedback, and offering support whenever necessary. It’s your job to give your team direction and keep them motivated to meet deadlines and exceed expectations.&lt;/p&gt;

&lt;p&gt;The hardest part of making the transition from team member to manager for me was changing the nature of my relationship with my peers. I was no longer on equal ground with them, but it’s not like I felt comfortable with having authority over them either.&lt;/p&gt;

&lt;p&gt;Far too often, new startup managers struggle with this transition from peer to superior. Many have to deal with high expectations from the get-go and receive little to no formal leadership training. On top of that, management teams at startups tend to &lt;a href="https://www.karllhughes.com/posts/working-hours" rel="noopener noreferrer"&gt;work longer hours,&lt;/a&gt; which can quickly lead to stress and burnout.&lt;/p&gt;

&lt;p&gt;In this guide, I want to share some of the most common challenges I faced as a new startup manager. I’ll pass along a few tips that I hope will help you become a more effective leader to your direct reports as well.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Interested in learning more about management? Here are &lt;a href="https://www.karllhughes.com/posts/management-books" rel="noopener noreferrer"&gt;my favorite books for managers&lt;/a&gt; so you can fill up your reading list.&lt;/em&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  How to Manage Direct Reports
&lt;/h2&gt;

&lt;p&gt;Effective leadership is important because it improves your team’s productivity and morale. It goes without saying that every workplace needs to invest in educating its leaders on the qualities and practices of effective leadership. However, this is rarely a reality, especially for startups with limited resources.&lt;/p&gt;

&lt;p&gt;I’ve been managing teams for a few years now, and there are a few things I always aim to do as I hire, onboard, and adjust to my new direct reports:&lt;/p&gt;

&lt;h3&gt;
  
  
  1. Get to Know Your Team
&lt;/h3&gt;

&lt;p&gt;Establishing open and honest communication in your team can lead to many advantages, such as &lt;a href="https://www.tsa.edu.au/blog/the-importance-of-open-communication-in-the-workplace/" rel="noopener noreferrer"&gt;an increase in productivity, job satisfaction, and teamwork.&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you’re new to the company, schedule one-on-one meetings with your direct reports. You can get to know them better and build rapport. Even if you’ve worked with your peers before, one-on-one sessions are very useful because they will reinforce your relationships with fellow team members. You can understand their expectations from you as their new leader. You can also figure out which communication styles fit your direct reports.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.cultureamp.com/blog/great-one-on-one-meeting-questions" rel="noopener noreferrer"&gt;Ask inquisitive questions&lt;/a&gt; that can help you gauge employee experience. Prompt them to share what motivates them at work, what they’ve been struggling with lately, what they’ve learned recently, how they feel about the company and its direction, or how they’ve been generally doing.&lt;/p&gt;

&lt;p&gt;Facilitating open conversations can let the team know that you care and that you’re listening. However, don’t overdo it. Avoid offering advice unless they ask you to, especially when it comes to personal problems that might be affecting their performance.&lt;/p&gt;

&lt;p&gt;Be consistent with these one-on-one meetings. No matter how brief, you should carve out time in your schedule to talk to each direct report. This would let your team know that they are valued and appreciated.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Give Feedback
&lt;/h3&gt;

&lt;p&gt;Giving your team constructive criticism can help them improve their overall performance and minimize errors in the future.&lt;/p&gt;

&lt;p&gt;Aside from holding one-on-one meetings to get to know your team better, you can use these sessions to evaluate their performance and provide feedback. I like doing structured feedback sessions every quarter &lt;a href="https://www.karllhughes.com/posts/developing-talent" rel="noopener noreferrer"&gt;using a rubric to gauge each employee’s performance&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;By doing regular performance evaluations, you can identify knowledge and skills gaps in your team. If, say, multiple new hires are struggling to finish projects on time, there might be a problem with the systems or expectations you have in place. You can respond quickly by providing additional resources and training to fill in those gaps.&lt;/p&gt;

&lt;h3&gt;
  
  
  3. Focus on Your Team’s Growth
&lt;/h3&gt;

&lt;p&gt;Professional development is often overlooked, but it is a very crucial component of every successful business. As a manager, you should play an active part in your team’s professional development. Ask them: *What are your long-term goals? Do you feel like you’re making progress on your goals here? *&lt;/p&gt;

&lt;p&gt;The more rapport you have with your team, the more likely they will be to share their goals with you. Many of the employees you talk to not be able to answer simply because they’ve yet to be asked about these things. In such cases, don’t force them to answer. Give them time to reflect. Instead, revisit the discussion in future one-on-one meetings.&lt;/p&gt;

&lt;p&gt;Talking to your direct reports enables you to get a better understanding of their personal and professional goals. You can create a development plan around these goals and provide proper guidance. In doing so, you can nurture the future leaders of your company.&lt;/p&gt;

&lt;p&gt;Take note that a development plan has to be customized to fit the abilities, interests, and goals of each employee. Thus, no two development plans are the same.&lt;/p&gt;

&lt;p&gt;An effective development plan can help your team gain the knowledge and skills they’d need to propel their careers. That means you should invest in opportunities for growth. These may come in the form of special projects, one-on-one coaching, conferences, or network events. Then, you need to create opportunities within your organization where they can apply their new skills.&lt;/p&gt;

&lt;p&gt;By focusing on your team’s growth, you can retain top talent, which would save a lot of time, energy, and money on recruitment, onboarding, and training.&lt;/p&gt;

&lt;p&gt;The cost of losing an employee is high. One study found that replacing a highly skilled worker costs an employer about &lt;a href="https://www.americanprogress.org/wp-content/uploads/2012/11/CostofTurnover.pdf" rel="noopener noreferrer"&gt;213% of their annual salary.&lt;/a&gt; However, Global Industry Analyst Josh Bersin posits that the true cost of turnover ranges from &lt;a href="https://www.linkedin.com/pulse/20130816200159-131079-employee-retention-now-a-big-issue-why-the-tide-has-turned/" rel="noopener noreferrer"&gt;tens of thousands of dollars&lt;/a&gt; to two times the annual salary of the worker.&lt;/p&gt;

&lt;h3&gt;
  
  
  4. Empower Your Team
&lt;/h3&gt;

&lt;p&gt;The biggest mistake new, insecure managers make is micromanaging instead of empowering their team. Your best employees will &lt;em&gt;thrive&lt;/em&gt; when given more autonomy.&lt;/p&gt;

&lt;p&gt;As a leader, you must demonstrate trust to drive productivity. Allow your team to make their own decisions and take responsibility for the outcomes. This can &lt;a href="https://www.perkbox.com/uk/platform/recognition/how-to-encourage-employee-autonomy" rel="noopener noreferrer"&gt;boost the creativity,&lt;/a&gt; motivation, and performance levels of your team. It can also improve employee experience, which can lead to &lt;a href="https://www.bps.org.uk/news-and-policy/autonomy-and-support-colleagues-cut-absenteeism-rates-among-older-workers" rel="noopener noreferrer"&gt;lower absence rates&lt;/a&gt; and turnover rates.&lt;/p&gt;

&lt;p&gt;Autonomy in the workplace means giving your team the flexibility and options to achieve their performance goals in their own way. Instead of laying out the directions for reaching their targets, give them a supportive nudge. For instance, you can delegate projects and give your team authority over them.&lt;/p&gt;

&lt;p&gt;Increasing autonomy doesn’t mean abandoning your team.&lt;/p&gt;

&lt;p&gt;You shouldn’t leave them to solve problems all by themselves. You still have to provide guidance. Ask them questions that can prompt your team to devise their own solutions. It’s your job to help them define and dissect the problem so they can come up with appropriate solutions.&lt;/p&gt;

&lt;p&gt;Apart from encouraging more autonomy, you can empower your teams by nurturing an open, judgment-free workplace, where your employees can freely share their opinions and ideas. Recognizing risks and rewarding accomplishments can empower your teams, too. In workplaces where employees feel valued and respected, &lt;a href="https://www.apa.org/news/press/releases/2012/03/well-being" rel="noopener noreferrer"&gt;motivation is usually high&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  5. Use Technology When You Can
&lt;/h3&gt;

&lt;p&gt;There are all kinds of tools on the market that can help you manage direct reports. In general, these tools give you access to everyone and everything you need, including your work and your apps, from a single platform. It simplifies and streamlines operations for you, allowing you to give updates, feedback, and recognition from the same tool.&lt;/p&gt;

&lt;p&gt;Having &lt;a href="https://www.karllhughes.com/tools/" rel="noopener noreferrer"&gt;the right tools&lt;/a&gt; improves your effectiveness as a manager. You can delegate tasks, run meetings, and measure performance levels more effectively with reliable tools at your disposal. You can also automate mundane and repetitive tasks, so you can focus on value-added activities.&lt;/p&gt;

&lt;h2&gt;
  
  
  My Management “Stack”
&lt;/h2&gt;

&lt;p&gt;I have used a lot of different tools for managing my direct reports over the years. Many are right for some teams and wrong for others - for example, &lt;a href="https://www.karllhughes.com/posts/no-slack" rel="noopener noreferrer"&gt;I no longer use Slack&lt;/a&gt;, but other businesses depend on it.&lt;/p&gt;

&lt;p&gt;Take a look at these tools and use them as a jumping-off point for building your management tool stack.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://trello.com/en-US" rel="noopener noreferrer"&gt;Trello&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfvlg93xq2om98ff0bt8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfvlg93xq2om98ff0bt8.png" width="800" height="379"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;As one of &lt;a href="https://www.karllhughes.com/posts/project-management-tools" rel="noopener noreferrer"&gt;my go-to project management tools&lt;/a&gt;, Trello is simple, powerful, and relatively easy for new teams to pick up. I use a standard format with columns for:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Backlog - Projects that haven’t been fully planned. This is a good place to keep ideas.&lt;/li&gt;
&lt;li&gt;  Planning - Projects that are being fleshed out. Usually we’re still learning about the issue or coming up with possible solutions.&lt;/li&gt;
&lt;li&gt;  Ready - Cards in “Ready” are prioritized and fair game for any relevant team members to start on.&lt;/li&gt;
&lt;li&gt;  In Progress - When team members are &lt;em&gt;actively&lt;/em&gt; working on a project, they move it to “In Progress.”&lt;/li&gt;
&lt;li&gt;  Done - After they’re done, the card is moved to “Done” where we archive old cards after a few weeks.&lt;/li&gt;
&lt;li&gt;  Recurring - Some tasks come back every month or week, so for this we use Trello’s card repeater and bring them back every week or month.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;At $10 per team member, Trello provides incredible value, especially as they’ve added more integrations and automations over the years.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://airtable.com/invite/r/4EaSmQNr" rel="noopener noreferrer"&gt;Airtable&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbzl44gefremjfz0qf25i.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fbzl44gefremjfz0qf25i.png" width="800" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I use Airtable for hiring, storing professional contacts, and much more. It’s a very versatile tool, and like Trello it integrates with most other tools via Zapier or direct API access.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://workspace.google.com/" rel="noopener noreferrer"&gt;Google Suite&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe86whv3i8qryb5gbn8ga.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fe86whv3i8qryb5gbn8ga.png" width="800" height="403"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Google Docs, Sheets, and Slides have basically caught up to Microsoft Office now, plus they’re basically free. The sharing and collaboration settings are intuitive, and they can also be integrated with many other management tools I like.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://statushero.com/" rel="noopener noreferrer"&gt;Status Hero&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39z784yj3me8wgxyw80r.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F39z784yj3me8wgxyw80r.png" width="800" height="397"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Status Hero is an online communication tool designed to replace lengthy meetings with concise interruption-free reports. It’s ideal for remote or hybrid setups with a distributed workforce as it increases transparency and simplifies processes.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.15five.com/" rel="noopener noreferrer"&gt;15Five&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ozriymbsx2subi616kr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F2ozriymbsx2subi616kr.png" width="800" height="491"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;15Five is a performance management tool that enables you to support your team’s growth through real-time feedback, recognition, weekly check-ins, and one-on-ones. Apart from its suite of products, 15Five has resources and courses to improve your effectiveness as manager.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://www.briskine.com/" rel="noopener noreferrer"&gt;Briskine&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv005hoxn01mwi0mf51gv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fv005hoxn01mwi0mf51gv.png" width="800" height="352"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I just recently started using Briskine to help my team share common email templates. I’ve only recently started managing marketing and account management teams, so having a shared directory of email templates has been really helpful.&lt;/p&gt;

&lt;h2&gt;
  
  
  Recommended Reading
&lt;/h2&gt;

&lt;p&gt;You have to keep learning if you want to be an effective manager. In a fast-changing world, continuous learning can help you keep up with the latest technologies, practices, and industry standards, so you can equip your team with the skills and knowledge to thrive.&lt;/p&gt;

&lt;p&gt;There are several &lt;a href="https://www.karllhughes.com/posts/management-books" rel="noopener noreferrer"&gt;management books&lt;/a&gt; I like that helped me on my journey as a leader. Here are a few of my favorites.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://amzn.to/3A1KtpN" rel="noopener noreferrer"&gt;Business Adventure by John Brooks&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://amzn.to/3pxhmW5" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpeyyrh2vle72th7l5txm.jpg" width="800" height="1218"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Bill Gates and Warren Buffet speak highly of this book. Detailing a series of business events that occurred between the 50s and the 60s, it doesn’t give solutions or instructions but offers valuable business insights. Although the particulars of business have changed over time, the fundamentals remain the same, which is why this book is still relevant to this day.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://amzn.to/3h0EB7q" rel="noopener noreferrer"&gt;True North: Discover Your Authentic Leadership by Bill George&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;Derived from 125 interviews of the top business leaders, True North offers a solid process for leadership success. It shows you how to make your own Personal Leadership Development Plan using five simple steps.&lt;/p&gt;

&lt;h3&gt;
  
  
  &lt;a href="https://amzn.to/3xUCHMp" rel="noopener noreferrer"&gt;The Decision Maker by Dennis Bakke&lt;/a&gt;
&lt;/h3&gt;

&lt;p&gt;The Decision Maker explains the importance of giving employees the freedom and responsibility to make important decisions through a fictional management story. Bakke shows how simply making employees responsible for more decision-making autonomy can transform an entire organization.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Introduction to Publii, the Static Site Generator</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Wed, 22 Sep 2021 17:32:46 +0000</pubDate>
      <link>https://forem.com/karllhughes/introduction-to-publii-the-static-site-generator-1kkp</link>
      <guid>https://forem.com/karllhughes/introduction-to-publii-the-static-site-generator-1kkp</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fposts%2Fx9eq4oe.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fposts%2Fx9eq4oe.jpg" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;There is so much to consider when &lt;a href="https://draft.dev/learn/platforms/" rel="noopener noreferrer"&gt;making a basic website&lt;/a&gt;. You have to think about how to get a domain name and where to get it. You need to work out the general costs of building and maintaining it, where you can host your content, and how much the hosting would cost, alongside actually doing the coding and getting all the assets together. You need to performance test it, make sure it is kept up-to-date, and configure a process to get code regularly deployed out. On top of all that, there are web-safety standards like configuring HTTPS instead of HTTP to ensure the connection is encrypted.&lt;/p&gt;

&lt;p&gt;This can be confusing and overwhelming—especially if you aren’t familiar with software development or web development. Static site generators (SSG) were introduced to solve this problem: How do you easily create and maintain a website?&lt;/p&gt;

&lt;p&gt;Publii is one such SSG. In this article, we’ll look at the general user experience, and take a high-level overview. We’ll cover some of the pros and cons and discuss who it’s best suited for.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://draft.dev/ideas?utm_source=academy&amp;amp;utm_medium=inline&amp;amp;utm_campaign=post&amp;amp;utm_content=/publii-static-site-generator" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fimg%2Fstartup-blog-ideas.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This article is aimed at bloggers or marketers, so you won’t need any advanced developer knowledge to engage.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is a Static Site?
&lt;/h2&gt;

&lt;p&gt;To accurately explain what SSGs actually do, you have to first understand what a static site is.&lt;/p&gt;

&lt;p&gt;A &lt;em&gt;static site&lt;/em&gt; is a site that will load the same way every time. It doesn’t greet you with your name or load personalized content. Nothing on the website changes unless the author specifically changes it.&lt;/p&gt;

&lt;p&gt;SSGs are normally very non-technical, so coding experience is not essential. The interface is what’s known as a “point-and-click” experience, which means users set things up visually, rather than via code.&lt;/p&gt;

&lt;p&gt;Due to their ease of use, their &lt;a href="https://trends.google.com/trends/explore?date=all&amp;amp;q=static%20site%20generator" rel="noopener noreferrer"&gt;usage and prominence have increased quite significantly&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupqdnlxmtbkfgicqgpj8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fupqdnlxmtbkfgicqgpj8.png" width="800" height="278"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Publii
&lt;/h2&gt;

&lt;p&gt;Publii’s &lt;a href="https://getpublii.com/about/" rel="noopener noreferrer"&gt;About page&lt;/a&gt; describes it as a “fresh new app on the block that opens up fresh avenues for creating interesting, attractive static websites,” and briefly &lt;a href="https://getpublii.com/about/" rel="noopener noreferrer"&gt;discusses&lt;/a&gt; how its two creators have “many years of accumulated academic and practical knowledge.”&lt;/p&gt;

&lt;p&gt;Publii has been around since 2016, so it is mature with a large ecosystem around the product.&lt;/p&gt;

&lt;p&gt;Some of its &lt;a href="https://getpublii.com/" rel="noopener noreferrer"&gt;key benefits&lt;/a&gt; are summarized below:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  It’s safe. The app is “near-impenetrable” to hackers as it works locally, so you don’t need to worry about security updates and manually managing databases to store your work.&lt;/li&gt;
&lt;li&gt;  It’s portable. Publii is just a desktop app so you can manage your website anywhere, and it allows multiple users to all collaborate on one website.&lt;/li&gt;
&lt;li&gt;  It’s easy to migrate. If you’re moving from WordPress, it has a built-in WordPress importer to transfer your posts, pages and categories.&lt;/li&gt;
&lt;li&gt;  It’s fast. The speed of Publii’s web pages is very impressive and they are designed with performance in mind.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;We’ll dive into further details of some of these features later, and answer key questions to help you consider which SSG best suits your use case. We’ll cover:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://draft.dev/#set-up" rel="noopener noreferrer"&gt;Set Up&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://draft.dev/#my-publii-site" rel="noopener noreferrer"&gt;My Publii site&lt;/a&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;a href="https://draft.dev/#first-impressions" rel="noopener noreferrer"&gt;First impressions&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://draft.dev/#ui" rel="noopener noreferrer"&gt;UI&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://draft.dev/#creating-posts" rel="noopener noreferrer"&gt;Creating posts&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://draft.dev/#speed-profile" rel="noopener noreferrer"&gt;Speed profile&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;  &lt;a href="https://draft.dev/#search-engine-optimization-seo" rel="noopener noreferrer"&gt;Search Engine Optimization (SEO)&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;

&lt;li&gt;  &lt;a href="https://draft.dev/#deployment" rel="noopener noreferrer"&gt;Deployment&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;  &lt;a href="https://draft.dev/#support" rel="noopener noreferrer"&gt;Support&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;  &lt;a href="https://draft.dev/#security" rel="noopener noreferrer"&gt;Security&lt;/a&gt;
&lt;/li&gt;

&lt;li&gt;  &lt;a href="https://draft.dev/#limitations" rel="noopener noreferrer"&gt;Limitations&lt;/a&gt;
&lt;/li&gt;

&lt;/ul&gt;

&lt;h3&gt;
  
  
  Set Up
&lt;/h3&gt;

&lt;p&gt;It’s really quick to get up and running with Publii. To start, simply go to &lt;a href="https://getpublii.com/download/" rel="noopener noreferrer"&gt;Publii’s download page&lt;/a&gt; and download the desktop app.&lt;/p&gt;

&lt;p&gt;There are options for MacOS, Windows and Linux depending on which operating system you use, but there are some minimum system requirements that you can find &lt;a href="https://getpublii.com/download/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  My Publii Site
&lt;/h3&gt;

&lt;p&gt;To actually get a feel for using Publii &lt;a href="https://kealanparr.github.io/publii-test/" rel="noopener noreferrer"&gt;I made a really simple website&lt;/a&gt;, tweaked the UI a little, made some posts with filler text, profiled my site and deployed it out.&lt;/p&gt;

&lt;h4&gt;
  
  
  First Impressions
&lt;/h4&gt;

&lt;p&gt;On first opening Publii I found it really intuitive. It has a really clear left-hand side (LHS) menu with all the options you may want to use (like adding authors, tagging your posts, creating new posts, or changing your UI, etc.)&lt;/p&gt;

&lt;p&gt;I was able to quickly produce a basic site and view my changes with a &lt;strong&gt;Preview your changes&lt;/strong&gt; button.&lt;/p&gt;

&lt;p&gt;I filled out a few posts with some basic template text and looked at the different themes.&lt;/p&gt;

&lt;p&gt;Each section was clearly laid out and had lots of sensible defaults prefilled so you don’t have to spend a long time configuring it to make full use of its features.&lt;/p&gt;

&lt;p&gt;You are able to create multiple sites which is a great benefit, and I was surprised how much you could do completely offline.&lt;/p&gt;

&lt;h4&gt;
  
  
  UI
&lt;/h4&gt;

&lt;p&gt;Making UI changes with Publii was seamless and easy. Your site is split out into lots of separate sections, so you just find the setting on Publii and change what you need. The &lt;strong&gt;Preview your changes&lt;/strong&gt; button lets you really quickly iterate to achieve your desired design.&lt;/p&gt;

&lt;h4&gt;
  
  
  Creating Posts
&lt;/h4&gt;

&lt;p&gt;My website was going to be a really simple blog. Publii offers three different options for generating posts: &lt;a href="https://getpublii.com/docs/post-editor.html" rel="noopener noreferrer"&gt;WYSIWYG editor&lt;/a&gt;, &lt;a href="https://getpublii.com/docs/the-block-editor.html" rel="noopener noreferrer"&gt;Block editor&lt;/a&gt;, or a &lt;a href="https://getpublii.com/docs/the-markdown-editor.html" rel="noopener noreferrer"&gt;Markdown editor&lt;/a&gt;. Having the three options gave me a flexible and convenient way to produce content that best suited me.&lt;/p&gt;

&lt;p&gt;Developers tend to use Markdown, which is a way to add formatting elements to your text (like bold, italics, images, and headers).&lt;/p&gt;

&lt;p&gt;If you aren’t familiar with Markdown, try the What You See Is What You Get (WYSIWYG) editor as it’s similar to traditional word processing with tools to control the whole flow of your content.&lt;/p&gt;

&lt;h4&gt;
  
  
  Speed Profile
&lt;/h4&gt;

&lt;p&gt;Speed is a key concern for websites. If your website takes between one second to three seconds to load, the probability of users bouncing off your page &lt;a href="https://www.thinkwithgoogle.com/marketing-strategies/app-and-mobile/mobile-page-speed-new-industry-benchmarks/" rel="noopener noreferrer"&gt;increases by thirty-two percent&lt;/a&gt;; that bounce rate increases to ninety percent if a page takes more than three seconds.&lt;/p&gt;

&lt;p&gt;So when I finished my website I used Google’s Lighthouse to profile the site’s speed.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft60cdx7utipappq9qah0.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ft60cdx7utipappq9qah0.jpg" width="800" height="344"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It received a perfect score. Very impressive!&lt;/p&gt;

&lt;h4&gt;
  
  
  Search Engine Optimization (SEO)
&lt;/h4&gt;

&lt;p&gt;SEO relates to things you can change on your website to try and optimize how discoverable you are to search engines like Google. I wanted to test Publii’s default SEO settings, so I made no changes before running a Lighthouse test:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1og18ajy0ljm76u156r.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fw1og18ajy0ljm76u156r.jpg" width="800" height="228"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;It received a score of ninety out of a hundred, which is impressive, and I think I could have made it higher with some simple tweaks to the default settings.&lt;/p&gt;

&lt;h3&gt;
  
  
  Deployment
&lt;/h3&gt;

&lt;p&gt;If you’re not familiar with developer technologies, the deployment process might be tricky. Everything up to this point has been &lt;strong&gt;very&lt;/strong&gt; easy to do, and the deployment might be the hardest part, but it is by no means overly difficult.&lt;/p&gt;

&lt;p&gt;You’ll have to choose which server you want to use, create any accounts you need depending on the platform, and follow the tutorial.&lt;/p&gt;

&lt;p&gt;It took me around ten minutes, and the tutorial was really clear. I went with GitHub pages as I already have a GitHub account. The actual deployment took less than thirty seconds and then, after it was connected, whenever I previewed my changes I could simply “Sync” my current Publii changes to the server to get changes deployed out.&lt;/p&gt;

&lt;p&gt;It’s well within the scope of a non-technical person, and I haven’t seen another SSG do this any better than Publii.&lt;/p&gt;

&lt;h3&gt;
  
  
  Support
&lt;/h3&gt;

&lt;p&gt;An important part of creating anything is help if you ever get stuck. Publii has quite a few ways to help. Firstly, scattered throughout the relevant places are tutorials of how to do each new thing (like deploying out to servers).&lt;/p&gt;

&lt;p&gt;If you can’t find it in the tutorial, or you can’t find the solution in their &lt;a href="https://getpublii.com/docs/" rel="noopener noreferrer"&gt;documentation&lt;/a&gt;, they also have a &lt;a href="https://forum.getpublii.com/" rel="noopener noreferrer"&gt;help Forum&lt;/a&gt; where you can ask any question you can’t find the answer to.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security
&lt;/h3&gt;

&lt;p&gt;Publii’s security is great. Many hacking attempts try to leverage code injection—this allows hackers to run malicious code on your website, but only if there is code currently running.&lt;/p&gt;

&lt;p&gt;In static websites, you only send generated website files making the site &lt;a href="https://getpublii.com/blog/publii-static-website-cms.html" rel="noopener noreferrer"&gt;“nigh impossible”&lt;/a&gt; to hack without gaining direct access to the server.&lt;/p&gt;

&lt;h3&gt;
  
  
  Limitations
&lt;/h3&gt;

&lt;p&gt;The biggest limitation if you choose Publii is that it is a &lt;strong&gt;static site&lt;/strong&gt; generator.&lt;/p&gt;

&lt;p&gt;If you need a complex, dynamic website that lets users log in and purchase things, and on which you can change stock levels, Publii probably would not be your best choice. Publii isn’t trying to do too much and they have their use cases well laid out. &lt;a href="https://draft.dev/learn/jekyll-vs-wordpress" rel="noopener noreferrer"&gt;This post compares Wordpress with Jekyll&lt;/a&gt;, another static site generator, highlighting the differences with dynamic sites.&lt;/p&gt;

&lt;p&gt;Another potential weakness I noticed, from reading posts in the official Publii &lt;a href="https://forum.getpublii.com/topic/is-it-possible-to-insert-a-tag-url-as-a-base-url-for-posts/" rel="noopener noreferrer"&gt;Forum&lt;/a&gt;, was that many users who wanted to configure their post URL’s a certain way could not because Publii doesn’t allow that. This use case won’t affect my example site, but it may be something to consider.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;I was really impressed with Publii. It is &lt;a href="https://github.com/GetPublii/Publii" rel="noopener noreferrer"&gt;open source&lt;/a&gt;, fast, and simple to use. The company has shared what’s on the roadmap for the coming years and you can learn more &lt;a href="https://getpublii.com/roadmap/" rel="noopener noreferrer"&gt;here&lt;/a&gt;, or review what has recently been added. You can quickly look at the effect of tweaking parts of your site, develop it offline, and go from idea to viewing a complete website incredibly fast. Publii listens to its users and it continues to improve with every new release.&lt;/p&gt;

&lt;p&gt;I hope this review has been helpful.&lt;/p&gt;

&lt;h4&gt;
  
  
  By Kealan Parr
&lt;/h4&gt;

&lt;p&gt;Technical author and member of the Unicode Consortium. Interested in reading, chess, finance, exercise &amp;amp; tech.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://draft.dev/ideas?utm_source=academy&amp;amp;utm_medium=banner&amp;amp;utm_campaign=post&amp;amp;utm_content=/publii-static-site-generator" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fimg%2Fideas.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Want ideas for your next blog post?
&lt;/h3&gt;

&lt;p&gt;Kickstart your content marketing efforts. Download our list of 50+ winning ideas for your company's blog today.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://draft.dev/ideas?utm_source=academy&amp;amp;utm_medium=banner&amp;amp;utm_campaign=post&amp;amp;utm_content=/publii-static-site-generator" rel="noopener noreferrer"&gt;Download Now!&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>SEO Keyword Opportunities in Developer Marketing</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Thu, 16 Sep 2021 11:51:14 +0000</pubDate>
      <link>https://forem.com/karllhughes/seo-keyword-opportunities-in-developer-marketing-14pf</link>
      <guid>https://forem.com/karllhughes/seo-keyword-opportunities-in-developer-marketing-14pf</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fposts%2Fn5kzpgs.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fposts%2Fn5kzpgs.jpg" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;We recently started supporting our clients at Draft.dev &lt;a href="https://draft.dev/learn/posts/topic-clusters" rel="noopener noreferrer"&gt;with keyword research&lt;/a&gt; which, given our unique position, has generated some exciting opportunities. We work with an array of clients, targeting different kinds of customers, in a hyper-defined niche: software development.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://draft.dev/learn/developer-marketing" rel="noopener noreferrer"&gt;Developer marketing&lt;/a&gt; is unique. It moves fast, and new terms are being popularized constantly. These factors, plus our position as a &lt;a href="https://draft.dev/learn/content-creation-agency" rel="noopener noreferrer"&gt;content marketing agency&lt;/a&gt; in the space, have allowed us to rank well in Google searches—fast.&lt;/p&gt;

&lt;p&gt;In this piece, you’ll get an overview of these opportunities. I’ll offer a tiny bit of free keyword research, but competitors in our space are moving quickly. Much of this information will be outdated in 3-6 months, so it’s critical to reassess your keyword research regularly.&lt;/p&gt;

&lt;h2&gt;
  
  
  Finding Good Keywords in Developer Marketing
&lt;/h2&gt;

&lt;p&gt;Although the specific long-tail keyword data I use in this article will become outdated soon, the underlying strategy is evergreen. I recently &lt;a href="https://twitter.com/KarlLHughes/status/1409913791937232899" rel="noopener noreferrer"&gt;broke this process down into five steps&lt;/a&gt;, but it all starts with &lt;strong&gt;finding the right keywords.&lt;/strong&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;1. Find a good keyword 🔑  &lt;/p&gt;

&lt;p&gt;It's a little bit art and a little bit science. 🧪  &lt;/p&gt;

&lt;p&gt;I typically target keywords with &amp;gt;100 monthly searches and &amp;lt;20 difficulty in &lt;a href="https://twitter.com/ahrefs?ref_src=twsrc%5Etfw" rel="noopener noreferrer"&gt;@ahrefs&lt;/a&gt;.  &lt;/p&gt;

&lt;p&gt;Let's go with "cto interview questions" &lt;a href="https://t.co/gMWjLqq9gQ" rel="noopener noreferrer"&gt;pic.twitter.com/gMWjLqq9gQ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;— Karl L Hughes (&lt;a class="mentioned-user" href="https://dev.to/karllhughes"&gt;@karllhughes&lt;/a&gt;) &lt;a href="https://twitter.com/KarlLHughes/status/1409913794244100097?ref_src=twsrc%5Etfw" rel="noopener noreferrer"&gt;June 29, 2021&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I use &lt;a href="https://ahrefs.com/" rel="noopener noreferrer"&gt;ahrefs&lt;/a&gt; to find estimated search volume and ranking difficulty. While these &lt;a href="https://ahrefs.com/blog/keyword-search-volume/" rel="noopener noreferrer"&gt;metrics aren’t perfect&lt;/a&gt;, they’ll give you a pretty good sense of how easily you can rank for a search term in developer marketing.&lt;/p&gt;

&lt;p&gt;The hard part about finding good keywords in developer marketing is &lt;strong&gt;finding terms popular enough to have significant search volume, while being new enough to escape saturation.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Let’s look at six topic areas that meet this criteria. Using these terms as a starting point will help you &lt;a href="https://draft.dev/learn/writing/how-to-write-better-technical-content" rel="noopener noreferrer"&gt;write better technical content&lt;/a&gt; aimed at developers, while also helping you rank better in search engines.&lt;/p&gt;

&lt;h2&gt;
  
  
  1. Kubernetes
&lt;/h2&gt;

&lt;p&gt;Linux containers are not new, but Kubernetes is suddenly &lt;a href="https://stackoverflow.blog/2020/05/29/why-kubernetes-getting-so-popular/" rel="noopener noreferrer"&gt;dominating the container and DevOps space&lt;/a&gt;. You’d think most of the tooling you need would’ve been built already—especially with a big corporate backer like Google. But lots of startups are creating tools for Kubernetes right now.&lt;/p&gt;

&lt;p&gt;Given its fast, widespread adoption, it’s no surprise to see an influx of developers learning about Kubernetes. And to learn about anything, you need good content. Ahrefs currently shows five terms containing the word “Kubernetes”, with more than 1,000 monthly searches and a difficulty of 30 or less.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0e77epsizxqusj5vw36.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy0e77epsizxqusj5vw36.png" width="800" height="138"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;But it’s not all about top keywords. There are thousands of long-tail keywords we’ve investigated for various clients in order to come up with worthwhile content topics, such as performance testing, virtualization, and scalability.&lt;/p&gt;

&lt;p&gt;The key to writing good Kubernetes content is technical expertise. If you search for related terms, you’ll find lots of cookie-cutter, jargon-filled fluff pieces. This kind of content &lt;a href="https://draft.dev/learn/posts/6-tips-for-b2d-marketing" rel="noopener noreferrer"&gt;doesn’t really fly in developer marketing&lt;/a&gt;; to compete you’ll need content written by experts—for experts.&lt;/p&gt;

&lt;h2&gt;
  
  
  2. Python
&lt;/h2&gt;

&lt;p&gt;Python recently became &lt;a href="https://pypl.github.io/PYPL.html" rel="noopener noreferrer"&gt;the most searched for language in Google&lt;/a&gt;. So as you can imagine, there’s tons of demand for good content to capture developers’ attention.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbzjrae3sy1re3sbx0jd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fnbzjrae3sy1re3sbx0jd.png" width="800" height="402"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Useful search terms for companies to reach Python developers include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;python square root&lt;/strong&gt;, 9,400+ monthly searches&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;python random number&lt;/strong&gt;, 7,300+ monthly searches&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;python read csv&lt;/strong&gt;, 5,400+ monthly searches&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;python command line arguments&lt;/strong&gt;, 5,000+ monthly searches&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;In a real keyword research project, you’d filter terms by your target audience and product use case. But with thousands of keywords having a difficulty score less than 30, you’re sure to find a few good options.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://draft.dev/playbook?utm_source=academy&amp;amp;utm_medium=inline&amp;amp;utm_campaign=post&amp;amp;utm_content=/seo-keyword-opportunities-in-developer-marketing" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fimg%2Freach-developers.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  3. GraphQL
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“I consider GraphQL to be the most exciting thing to happen to APIs…I’d go so far as to say that GraphQL is the new REST.” - &lt;a href="https://www.newline.co/@eigenjoy/why-graphql-is-the-new-rest--db6d20b0" rel="noopener noreferrer"&gt;Nate Murray, Founder at newline&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;GraphQL is hot right now. This popularity comes in spite of its age, given some very mature projects use it as a query language and API interface. Search volume for GraphQL isn’t as high as other topics on this list. But using it alongside other popular frameworks and programming languages presents a very interesting opportunity.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggj5vn05c9i29h7j4uaj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fggj5vn05c9i29h7j4uaj.png" width="800" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;GraphQL is a “glue” technology (it’s typically used in conjunction with other developer tools), so the tutorials and content you can write on it are limitless. The only question is whether GraphQL’s popularity will fade away, or eclipse REST as the go-to API query language.&lt;/p&gt;

&lt;h2&gt;
  
  
  4. Go
&lt;/h2&gt;

&lt;p&gt;Go has been around for over a decade now, with a small yet loyal following. While only used by around &lt;a href="https://insights.stackoverflow.com/survey/2020" rel="noopener noreferrer"&gt;9% of programmers&lt;/a&gt;, Stack Overflow ranked Go as the third “most wanted” language. It’s no surprise that &lt;a href="https://draft.dev/learn/technical-blogs/golang" rel="noopener noreferrer"&gt;our list of Best Go Blogs&lt;/a&gt; is one of our most popular &lt;a href="https://draft.dev/learn" rel="noopener noreferrer"&gt;Draft.dev blog&lt;/a&gt; posts.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai7z0wzrz224wbzkujlh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fai7z0wzrz224wbzkujlh.png" width="800" height="272"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The demand for Go has driven lots of developers to learn it, with many looking for jobs that use the langage. While Python or JavaScript are more popular in production workloads, increased curiosity around Go has led to a lot of search traffic considering its market share. Fundamental search terms like “golang ternary,” “golang for loop,” and “golang substring” indicate a strong market for learning the basics of Go.&lt;/p&gt;

&lt;p&gt;There are plenty of opportunities for purchase-intent search terms as well. “Golang ide,” “golang mongodb,” and “golang authentication” might all be worth pursuing for the right companies.&lt;/p&gt;

&lt;h2&gt;
  
  
  5. TypeScript
&lt;/h2&gt;

&lt;p&gt;I was hesitant to move to a new frontend language, but when my team &lt;a href="https://www.telerik.com/blogs/how-my-team-accidentally-moved-to-typescript-and-loved-it" rel="noopener noreferrer"&gt;adopted Angular, I was pleasantly surprised&lt;/a&gt;. I’m not alone either; TypeScript is the second most-loved programming language according to Stack Overflow.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1kkfzc70x1sulyfcs8dk.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F1kkfzc70x1sulyfcs8dk.png" width="800" height="251"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Similar to Go, TypeScript’s popularity has triggered a surge in search traffic around fundamental search terms. There’s also been significant search volume around the differences between TypeScript and JavaScript, which is more widely used.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3z5fpk9x4spm9vrjgmtb.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3z5fpk9x4spm9vrjgmtb.png" width="800" height="176"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Writing TypeScript content is great because you can take almost any interesting idea in JavaScript and swap out TypeScript to come up with ideas. The differences between the two languages are important from a technical perspective, but they solve most of the same high-level problems.&lt;/p&gt;

&lt;h2&gt;
  
  
  6. Open Source
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;“It was just five years ago that there was an ample dose of skepticism from investors about the viability of &lt;a href="https://www.karllhughes.com/posts/open-source-companies" rel="noopener noreferrer"&gt;open source as a business model&lt;/a&gt;. The common thesis was that Red Hat was a snowflake and that no other open-source company would be significant in the software universe. Fast-forward to today and we’ve witnessed the growing excitement in the space.” - &lt;a href="https://techcrunch.com/2019/01/12/how-open-source-software-took-over-the-world/" rel="noopener noreferrer"&gt;Mike Volpi, General Partner at Index Ventures&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Open source software continues to interest developers and non-developers alike. As Mike Volpi points out above, open source companies are leaning into this part of their business as a strength, rather than a hurdle.&lt;/p&gt;

&lt;p&gt;When you look at the search data around “open source,” you’ll see a list of business ideas that could all prove successful with content marketing:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  &lt;strong&gt;open source search engine&lt;/strong&gt;, 500+ monthly searches&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;open source video converter&lt;/strong&gt;, 450+ monthly searches&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;open source 3d printer plans&lt;/strong&gt;, 250+ monthly searches&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;open source dashboards&lt;/strong&gt;, 250+ monthly searches&lt;/li&gt;
&lt;li&gt;  &lt;strong&gt;open source workflow engines&lt;/strong&gt;, 250+ monthly searches&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If your product has an open source core—or at least a component—it makes sense to use this to your advantage in developer marketing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Generally speaking, there are lots of good opportunities for search engine optimization in developer marketing. Many companies in the space have historically underinvested in content, but we’re now seeing clients generating hundreds of leads with just a few thousand dollars spent.&lt;/p&gt;

&lt;p&gt;If you’re interested in learning more, &lt;a href="https://draft.dev/call" rel="noopener noreferrer"&gt;sign up for a call&lt;/a&gt;. I’d love to walk you through our process and help you reach more software developers through search engine optimization.&lt;/p&gt;

&lt;h4&gt;
  
  
  By Karl Hughes
&lt;/h4&gt;

&lt;p&gt;Karl is a former startup CTO and the founder of Draft.dev. He writes about technical blogging and content management.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://draft.dev/playbook?utm_source=academy&amp;amp;utm_medium=banner&amp;amp;utm_campaign=post&amp;amp;utm_content=/seo-keyword-opportunities-in-developer-marketing" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fimg%2Fplaybook.jpg" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Build a Blog that Software Developers Will Read
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://draft.dev/playbook?utm_source=academy&amp;amp;utm_medium=banner&amp;amp;utm_campaign=post&amp;amp;utm_content=/seo-keyword-opportunities-in-developer-marketing" rel="noopener noreferrer"&gt;The Technical Content Manager’s Playbook&lt;/a&gt; is a collection of resources you can use to manage a high-quality, technical blog:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  A template for creating content briefs&lt;/li&gt;
&lt;li&gt;  An Airtable publishing calendar&lt;/li&gt;
&lt;li&gt;  A technical blogging style guide&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://draft.dev/playbook?utm_source=academy&amp;amp;utm_medium=banner&amp;amp;utm_campaign=post&amp;amp;utm_content=/seo-keyword-opportunities-in-developer-marketing" rel="noopener noreferrer"&gt;Download Now!&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Hugo vs. Gatsby</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Wed, 08 Sep 2021 17:26:37 +0000</pubDate>
      <link>https://forem.com/karllhughes/hugo-vs-gatsby-1n58</link>
      <guid>https://forem.com/karllhughes/hugo-vs-gatsby-1n58</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fposts%2Fc4f82d27.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fposts%2Fc4f82d27.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;JAMStack, which stands for JavaScript, API, and Markup, is the latest buzzword in the world of web development. It aims to drop the complexity of your system, and helps you to deliver better apps in less time. As with any new innovation in tech, there is a plethora of companies offering competing JAMStack options. How can you choose which is the right one for you?&lt;/p&gt;

&lt;p&gt;There are two main types of JAMStack sites: static, in which assets are created at build time ahead of deployment, and directly served when the user creates the website; and dynamic, in which a server creates the content and assets every time a user lands on your site.&lt;/p&gt;

&lt;p&gt;In this article, we’ll be focusing on static sites and comparing the two most popular solutions: &lt;a href="https://gohugo.io/" rel="noopener noreferrer"&gt;Hugo&lt;/a&gt; and &lt;a href="https://www.gatsbyjs.com/" rel="noopener noreferrer"&gt;Gatsby&lt;/a&gt;. You’ll learn the advantages and disadvantages of each, and which one would be best for your specific use case.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://draft.dev/ideas?utm_source=academy&amp;amp;utm_medium=inline&amp;amp;utm_campaign=post&amp;amp;utm_content=/hugo-vs-gatsby" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fimg%2Fstartup-blog-ideas.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Why Static Sites?
&lt;/h2&gt;

&lt;p&gt;You may be wondering why we have chosen to focus on static sites, rather than dynamic. The static architecture delivers lightning-fast websites and, more than anything, less complex systems with a decoupled frontend where you can consume data from any data source.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Gatsby?
&lt;/h2&gt;

&lt;p&gt;Gatsby is a static site generator that describes itself as a “React-based open-source framework for creating websites and apps.” It has a complete build system that enables you to use web technology to create static files. You will write React code to make your site and consume data through a GraphQL layer. Gatsby will then build your site to create multiple static files that you can deploy.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is Hugo?
&lt;/h2&gt;

&lt;p&gt;Hugo describes itself as “the world’s fastest framework for building websites.” This static site generator is written in Go with the idea of high performance in the build process. Hugo has its template language based on HTML that enables you to create your site. It also supports Markdown and other languages through plugins.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Are the Key Differences?
&lt;/h2&gt;

&lt;p&gt;When comparing the two tools, these are the key aspects you want to focus on:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Learning curve&lt;/li&gt;
&lt;li&gt;  Documentation&lt;/li&gt;
&lt;li&gt;  Speed&lt;/li&gt;
&lt;li&gt;  Security&lt;/li&gt;
&lt;li&gt;  Flexibility&lt;/li&gt;
&lt;li&gt;  Scaling&lt;/li&gt;
&lt;li&gt;  Price&lt;/li&gt;
&lt;li&gt;  Community&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Learning Curve
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2asfauzgpqzuog7m4xs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fl2asfauzgpqzuog7m4xs.png" width="764" height="883"&gt;&lt;/a&gt; &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffyhrgzk5dkdxe5mnwrkt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ffyhrgzk5dkdxe5mnwrkt.png" width="680" height="883"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;For a developer, the learning curve is an important aspect to consider when selecting a tool; this will help you define how much time you will need to deliver value to your user.&lt;/p&gt;

&lt;p&gt;Gatsby is built on top of React as the “templating” language, so if you know React and JavaScript in general, you are all set to start working with Gatsby. The next step in this curve is to understand how to work with &lt;a href="https://graphql.org/" rel="noopener noreferrer"&gt;graphql&lt;/a&gt;. Gatsby uses a graphql layer to collect the different data sources from &lt;a href="https://www.gatsbyjs.com/plugins" rel="noopener noreferrer"&gt;various plugins&lt;/a&gt; to be consumed by your React code. However, Gatsby does provide many templates or ready-to-use “&lt;a href="https://draft.dev/learn/creating-gatsby-starters" rel="noopener noreferrer"&gt;starters&lt;/a&gt;” that can help you avoid the complexity of React and graphql.&lt;/p&gt;

&lt;p&gt;On the other hand, Hugo is built with Go, but you don’t necessarily need to know Go to use it. If you choose to use a pre-made template, then your work will be mostly related to TOML files for configuration and Markdown for the content files. Still, if you want to customize your site or build from the ground up, you need to know how to write your templates using &lt;a href="https://golang.org/pkg/text/template/" rel="noopener noreferrer"&gt;Go’s templating system&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;So the learning curve depends on your goal:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;  Do you want to customize your site from the ground up? Then if you’re familiar with React, Gatsby will be a quick choice&lt;/li&gt;
&lt;li&gt;  Do you want to get up and running with ease? Hugo is a solid choice due to its hundreds of quick-start themes.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Documentation
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjyzq0ugfbbihegqh03sm.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fjyzq0ugfbbihegqh03sm.png" width="800" height="419"&gt;&lt;/a&gt; &lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F35uz98bdfxcgn2kr3grp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F35uz98bdfxcgn2kr3grp.png" width="800" height="418"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Every time you are about to start a project with something new, it is a good idea to take a look at the state of the documentation of the chosen technology. As you’ll often have to refer to the official documentation to answer queries, you’ll want it to be easy to use and up to date.&lt;/p&gt;

&lt;p&gt;Both Hugo and Gatsby have good documentation that quickly drives you to their corresponding Quick Start guides to help you start.&lt;/p&gt;

&lt;p&gt;Gatsby has a full-featured tutorial and in-depth guide that runs you through all the nuances of the framework. A simple view of Gatsby’s documentation seems complete but also can be overwhelming.&lt;/p&gt;

&lt;p&gt;Hugo’s documentation can be seen as a smaller collection of guides but still with a lot of in-depth information about the framework’s operation.&lt;/p&gt;

&lt;p&gt;So in the documentation front, there’s no clear winner, and it will simply depend on your familiarity with the technology.&lt;/p&gt;

&lt;h3&gt;
  
  
  Speed
&lt;/h3&gt;

&lt;p&gt;One of the selling points of a JAMStack site is speed, but you need to split this concept into at least two different metrics. Build speed and Runtime Speed.&lt;/p&gt;

&lt;p&gt;Gatsby says that the framework is “fast in every way that matters,” while Hugo preaches that they are the fastest tool out there.&lt;/p&gt;

&lt;h4&gt;
  
  
  Build Time Speed
&lt;/h4&gt;

&lt;p&gt;Since we are talking from a developer perspective and both of these tools leverage the power of the build system to create static sites, the build time speed is a good metric that can be part of your decision.&lt;/p&gt;

&lt;p&gt;In this race, Hugo is a clear winner without a doubt. Hugo was built to deliver “blistering speed,” and only takes around 1ms per page. Gatsby, on the other hand, takes a considerable amount of time in comparison.&lt;/p&gt;

&lt;p&gt;Build time speed will depend on the number of pages to generate and the latency of the data sources. An excellent way to compare this speed is just by having the same amount of markdown files as a source for both frameworks, with Hugo coming out on top every time.&lt;/p&gt;

&lt;p&gt;Gatsby does offer incremental builds inside their cloud service that aim to provide better build times, but at the same time can lead to vendor lock-in.&lt;/p&gt;

&lt;h4&gt;
  
  
  Runtime Speed
&lt;/h4&gt;

&lt;p&gt;Analyzing the runtime speed can be tricky and will depend on more variables than just the framework. But simply: Gatsby creates HTML pages from your React code to serve the essential app shell and then injects some JavaScript (including React library and any other 3rd party library) to continue the rendering process. This can be seen as slow since there is a JS bundle to load, but at the same time can be an advantage since through this process Gatsby offers other optimizations out-of-the-box such as: Progressive and responsive image loading, and inline critical CSS.&lt;/p&gt;

&lt;p&gt;Hugo creates the static HTML pages from the Go templates and includes optional JS compiled with esbuild.&lt;/p&gt;

&lt;p&gt;Here the comparison is challenging since simple load HTML and other static assets are fast for both solutions. Still, in some cases, the progressive enhancements offered by Gatsby can be useful or essential to a site, which gives it a slight edge.&lt;/p&gt;

&lt;h3&gt;
  
  
  Security
&lt;/h3&gt;

&lt;p&gt;Both offer security as one of their selling points; Gatsby advertises that since they generate static HTML at build time, there is no server, avoiding malicious requests, DDOS attacks, or data exposures. But, the same is essentially true for any other static site generator.&lt;/p&gt;

&lt;p&gt;You could argue that since Gatsby heavily utilizes JavaScript, then a security issue could arise based on the number of unknown and uncontrolled npm packages involved.&lt;/p&gt;

&lt;p&gt;Hugo has a &lt;a href="https://gohugo.io/about/security-model/" rel="noopener noreferrer"&gt;documentation section&lt;/a&gt; to talk about the security model they offer. General Data Protection Regulation (GDPR) is an EU law on data protection and privacy, and Hugo describes in detail how to configure your site to meet the regulations.&lt;/p&gt;

&lt;p&gt;But in general words, an SSG holds its weight in terms of security from holes that can arise from 3rd party issues. As an example, &lt;a href="https://github.com/postcss/postcss/commit/8682b1e4e328432ba692bed52326e84439cec9e4#commitcomment-49713297" rel="noopener noreferrer"&gt;this is a comment&lt;/a&gt; from a vulnerability issue found in postcss, which states:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The issue is not critical (it can affect only online tools like CodePen…)&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;So in terms of security, you can consider that both frameworks have similar or even equal security features.&lt;/p&gt;

&lt;h3&gt;
  
  
  Flexibility
&lt;/h3&gt;

&lt;p&gt;What is the level of customizability that each framework offers? Do Gatsby and Hugo let you create what you want, or are there limitations on design?&lt;/p&gt;

&lt;p&gt;Here, both frameworks offer full features on customization; Gatsby allows you to create any component you wish with React and any UI library or CSS solution you prefer: tailwind, emotion, or just plain old CSS. Hugo is also free of design opinions, so you are free to implement any UI you wish with the tools available: Go templates and any CSS framework.&lt;/p&gt;

&lt;p&gt;Both solutions are equally flexible, so it just depends again on what framework you are more familiar with: React for Gatsby, or Go for Hugo.&lt;/p&gt;

&lt;h3&gt;
  
  
  Scalability
&lt;/h3&gt;

&lt;p&gt;Scalability is the ability of the framework to handle large and growing sites. Both solutions have their own take on how to confront the challenge.&lt;/p&gt;

&lt;p&gt;Gatsby is known for a slow-building process that creates many different pages, so it can be tedious to work with big sites. They even have an &lt;a href="https://www.gatsbyjs.com/docs/scaling-issues/" rel="noopener noreferrer"&gt;entry in the documentation&lt;/a&gt; to address this topic in particular.&lt;/p&gt;

&lt;p&gt;They mention that they have acknowledged that Gatsby has scaling issues when the application &lt;a href="https://www.gatsbyjs.com/docs/scaling-issues/#when-can-a-scaling-issue-arise" rel="noopener noreferrer"&gt;has more than 100K pages&lt;/a&gt; or when the graphql queries are too large. There’s even a &lt;a href="https://github.com/gatsbyjs/gatsby/issues/19512" rel="noopener noreferrer"&gt;GitHub issue about scalability&lt;/a&gt; where the engineering team recollects benchmark data.&lt;/p&gt;

&lt;p&gt;One way they offer to solve this building scalability is with their cloud system, but this is an imperfect solution.&lt;/p&gt;

&lt;p&gt;On the other hand, Hugo prides itself to be blazing fast for building thousands of pages, so we can say (again) that Hugo here is a winner if we’re looking purely at scalability of build.&lt;/p&gt;

&lt;p&gt;But static sites are built, or updated, way less often than they are read, so the other important point on scalability is how well they behave under heavy load.&lt;/p&gt;

&lt;p&gt;The JAMStack is, by default, almost infinitely scalable. Since SSG pre-render the assets, the Time to First Byte (TTFB) is minimal. Also, the files can be served through a CDN and be available almost instantly for the user (and use the great HTTP caching capabilities to make it even faster), therefore lowering the server requirements. Hugo and Gatsby fall into this category of frameworks, so their scalability features are on par. Still, if you consider the built time an essential metric for your scalability needs, then Hugo has the advantage.&lt;/p&gt;

&lt;h3&gt;
  
  
  Price
&lt;/h3&gt;

&lt;p&gt;Another essential aspect to consider when reviewing tools for your marketing site (or any site for that matter) is price.&lt;/p&gt;

&lt;p&gt;Both Gatsy and Hugo are free and open-source. You can download them and use them for free, and the only cost you’ll have to worry about is deployment.&lt;/p&gt;

&lt;p&gt;To deploy a site built with Hugo or Gatsby, check some CDN services like AWS, Netlify, or Vercel. Most of these services have a free tier to enable you to start as fast as possible. The other possible cost is related to your data store or CMS, which depends on the service you are using.&lt;/p&gt;

&lt;p&gt;So as both frameworks are free, this one is a tie.&lt;/p&gt;

&lt;h3&gt;
  
  
  Community
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5hl411juntvysno6ymy.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fz5hl411juntvysno6ymy.png" width="800" height="697"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgufe16w5qkyww73ttn2c.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgufe16w5qkyww73ttn2c.png" width="800" height="765"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;With every tool or technology, having an active community can be a huge bonus, particularly if you run into an issue that’s not covered by documentation. In this case, Gatsby is a clear winner, with a thriving and growing community complete with global events and conferences.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fibnx36m8s9gfgze5csui.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fibnx36m8s9gfgze5csui.png" width="800" height="250"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Both Gatsy and Hugo do a great job in every category that matters for comparison, with Gatsby drawing an ever-so-slight edge in the community aspect. But, I think it all boils down to your development team’s experience: if your team is already experienced with javascript and React, then Gatsby is an excellent choice to start right away, and if JavaScript is not a tool you have under your belt, then the learning curve of Hugo will be lower, so it can be a great alternative.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://draft.dev/ideas?utm_source=academy&amp;amp;utm_medium=banner&amp;amp;utm_campaign=post&amp;amp;utm_content=/hugo-vs-gatsby" rel="noopener noreferrer"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdraft.dev%2Flearn%2Fassets%2Fimg%2Fideas.png" width="800" height="400"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Want ideas for your next blog post?
&lt;/h3&gt;

&lt;p&gt;Kickstart your content marketing efforts. Download our list of 50+ winning ideas for your company's blog today.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://draft.dev/ideas?utm_source=academy&amp;amp;utm_medium=banner&amp;amp;utm_campaign=post&amp;amp;utm_content=/hugo-vs-gatsby" rel="noopener noreferrer"&gt;Download Now!&lt;/a&gt;&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Running My Business From an iPad</title>
      <dc:creator>Karl L. Hughes</dc:creator>
      <pubDate>Wed, 01 Sep 2021 19:17:41 +0000</pubDate>
      <link>https://forem.com/karllhughes/running-my-business-from-an-ipad-4mem</link>
      <guid>https://forem.com/karllhughes/running-my-business-from-an-ipad-4mem</guid>
      <description>&lt;p&gt;===&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3benq11pigpe48mzihw.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg3benq11pigpe48mzihw.png" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Earlier this year, I decided to get an iPad as a more portable work device. I haven’t owned an iPad since the first generation models back in 2010, but with the larger sizes and full-size keyboard, I figured it could feasibly serve as a laptop replacement - at least for short stints.  &lt;/p&gt;

&lt;p&gt;I’m going on a vacation later this month, so I figured I would try &lt;em&gt;exclusively&lt;/em&gt; working on my iPad for a week, just to see if any parts of my day-to-day workflow were difficult or impossible with it. I shut my laptop down and put it in the closet.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndjgpx4t9tnc2twmzu3h.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fndjgpx4t9tnc2twmzu3h.jpg" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  My Day-to-Day
&lt;/h2&gt;

&lt;p&gt;A year ago, I moved out of my job as a &lt;a href="https://www.karllhughes.com/posts/cto-writer" rel="noopener noreferrer"&gt;startup CTO to become a technical content marketer&lt;/a&gt;. I started off doing all the writing myself, which meant creating demo apps, tutorials, and lots of research.&lt;/p&gt;

&lt;p&gt;Today, I’ve got a team of full-time and contract employees supporting me, so my role is primarily sales and management.&lt;/p&gt;

&lt;p&gt;While I don’t have a “maker’s schedule” of long stints of focus time, I find that &lt;a href="https://www.karllhughes.com/posts/maximizing-for-energy" rel="noopener noreferrer"&gt;I need to do some deep work every day&lt;/a&gt;. So, my typical day-to-day is a mix of sales calls, emails, writing, and coordinating projects.&lt;/p&gt;

&lt;p&gt;Unfortunately, I haven’t found a great way to write much code on my iPad, so for this trial week, I paused working on any side projects like that.&lt;/p&gt;

&lt;p&gt;Despite this limitation, I noticed a few really positive things when I started running my company from my iPad.&lt;/p&gt;

&lt;h2&gt;
  
  
  I Was More Focused
&lt;/h2&gt;

&lt;p&gt;Having a laptop and a large monitor is nice, but it also means I can have a lot of windows and tabs going at once. This is convenient when I need to rapidly switch between different applications, but it can also be distracting.&lt;/p&gt;

&lt;p&gt;I found that working on my iPad meant I was forced to focus on one task at a time, and I was less likely to get distracted by other tabs in my browser. While the iPad supports split-screen, you can’t do nearly as many things at once on it.&lt;/p&gt;

&lt;p&gt;This also came into play during meetings. I normally have to shut everything else on my laptop down during Zoom meetings so I don’t get distracted, but since you can’t really do multiple things at once on an iPad, I was forced to focus in on each call.&lt;/p&gt;

&lt;h2&gt;
  
  
  Delegation Became Key
&lt;/h2&gt;

&lt;p&gt;I’m pretty good about &lt;a href="https://www.karllhughes.com/posts/scaling-services" rel="noopener noreferrer"&gt;delegating tasks to my team&lt;/a&gt;, but working exclusively from an iPad made me take it a step further. I could no longer simply hop into a codebase and fix an error for one of our engineers. Instead, I was forced to leave them comments and delegate the fix back to them.&lt;/p&gt;

&lt;p&gt;I also found that working on an iPad made me rethink some of the more complex processes I do on a weekly basis. Many of them were better done by other team members anyway, but because I could do them quickly on my laptop, I had put off delegating them.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkcc4wupcpfqttbhtrpdo.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fkcc4wupcpfqttbhtrpdo.jpg" width="800" height="1422"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  It Went Surprisingly Well…
&lt;/h2&gt;

&lt;p&gt;Overall, I’m happy to say that my experiment worked.&lt;/p&gt;

&lt;p&gt;There were very few things I couldn’t do on my iPad, even without a lot of preparation work. Some tasks were slower or more annoying, but even with the small keyboard and no mouse, I wasn’t noticeably worse at doing my day-to-day work.&lt;/p&gt;

&lt;p&gt;Now, part of this is because my primary job as the Founder of &lt;a href="https://draft.dev/" rel="noopener noreferrer"&gt;Draft.dev&lt;/a&gt; is sales and management. That means most of my work is answering emails, leading calls, and following up with people. I still write every week and mess around with writing code when I can, but those aren’t really my primary functions any more.&lt;/p&gt;

&lt;p&gt;Still, I managed to use spreadsheets, presentations, and a lot of other tools that I wasn’t sure would hold up. That said, not everything went smoothly.&lt;/p&gt;

&lt;h2&gt;
  
  
  …But Not Great
&lt;/h2&gt;

&lt;p&gt;I found a couple things that were simply impossible given my current setup. For example, to preview content for my personal blog, I typically spin up a Docker container that runs Jekyll. Well, there’s basically &lt;a href="https://www.reddit.com/r/docker/comments/js3s2o/docker_on_ipad_102_8th_gen_128gb/" rel="noopener noreferrer"&gt;no way to run Docker on iOS&lt;/a&gt; due to the lack of a Linux kernel, so that method is out. Similarly, I found that I can’t test out my CFP Land newsletter before I send it because again, there’s no way to run a dev environment like that on an iPad.&lt;/p&gt;

&lt;p&gt;I also couldn’t figure out how to create and upload images on my personal blog. Now, there are some workarounds, but I’ll likely try upgrading to a proper CMS and using a Git-based branching scheme to address this shortcoming.&lt;/p&gt;

&lt;p&gt;Spreadsheets also suck on iOS. While I could open and use Google Sheets, you can’t create multi-line cells and the small screen makes it hard to see a lot of data at once. Entering equations is also less than ideal on the smaller keyboard.&lt;/p&gt;

&lt;p&gt;Another slowdown I encountered was that &lt;a href="https://www.grammarly.com/" rel="noopener noreferrer"&gt;Grammarly&lt;/a&gt; doesn’t work the same way on iPad as it does on a desktop. Using the Chrome extension, I can edit Google Docs and get real-time feedback from Grammarly, but this same workflow is more cumbersome on iOS.&lt;/p&gt;

&lt;p&gt;Some iOS apps don’t provide the same options as their web counterparts. For example, both Trello and Airtable lack certain features on mobile (sharing views in Airtable and the Repeater powerup in Trello), so you have to switch over to the browser interface if you need those features. Not a big deal, but it was annoying. Gmail also doesn’t support templates in the mobile app, so I’m going to have to get another app to handle that.&lt;/p&gt;

&lt;p&gt;Finally, the battery life on my 4th generation iPad Air is only about 6-8 hours, so unless it’s fully charged before I start the day, it’s probably not going to make it all day. Normally, I wouldn’t complain about that except my M1 Macbook Pro can basically run for three days of work without a charge, so I’ve gotten spoiled.&lt;/p&gt;

&lt;h2&gt;
  
  
  iPad: Work Machine of the Future?
&lt;/h2&gt;

&lt;p&gt;For someone like me who’s primarily doing sales and management, it’s possible to do 90% of my work on an iPad. That said, it’s not always very satisfying. Some tasks take so much flipping between apps that they can be really frustrating, and because it still doesn’t handle spreadsheets well, it’s really hard to do long-term forecasting or planning from an iPad.&lt;/p&gt;

&lt;p&gt;Still, these shortcomings are really just software problems. The underlying hardware and operating system seem like they could handle these tasks, and the battery life will likely improve thanks to the new &lt;a href="https://www.apple.com/newsroom/2021/04/apple-unveils-new-ipad-pro-with-m1-chip-and-stunning-liquid-retina-xdr-display/" rel="noopener noreferrer"&gt;M1 iPad chips&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;It will take a lot of work for software developers or creatives to ditch their laptops for an iPad, but it’s good to know that I can use it for a short time at least.&lt;/p&gt;

</description>
    </item>
  </channel>
</rss>
