<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: SendRelay</title>
    <description>The latest articles on DEV Community by SendRelay (@sendrelay).</description>
    <link>https://dev.to/sendrelay</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4146061%2Fce28bc45-4065-4e23-b17c-f54175a69671.png</url>
      <title>DEV Community: SendRelay</title>
      <link>https://dev.to/sendrelay</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/sendrelay"/>
    <language>en</language>
    <item>
      <title>What would you build if delivery were the easy part?</title>
      <dc:creator>SendRelay</dc:creator>
      <pubDate>Mon, 28 Sep 2026 15:34:28 +0000</pubDate>
      <link>https://dev.to/sendrelay-ng/what-would-you-build-if-delivery-were-the-easy-part-10gd</link>
      <guid>https://dev.to/sendrelay-ng/what-would-you-build-if-delivery-were-the-easy-part-10gd</guid>
      <description>&lt;p&gt;In &lt;a href="https://dev.to/sendrelay-ng/where-is-my-cake-a-saturday-in-lagos-told-twice-h02"&gt;our first post&lt;/a&gt;, we followed one cake from Yaba to Lekki. This time, let's zoom out.&lt;/p&gt;

&lt;p&gt;Look closely at almost any business in Lagos or Abuja and you'll find a small delivery company hiding inside it. The pharmacy has a boy on a bike. The tailor has a cousin who "knows a rider". The caterer borrows her brother's car on Saturdays. None of them set out to run logistics, but every one of them does, a little badly, every day.&lt;/p&gt;

&lt;p&gt;Relay exists so they don't have to. And once moving things across a city stops being the hard part, a lot of ideas that used to be too much trouble start to look like good businesses.&lt;/p&gt;

&lt;p&gt;Here are some of them. A few are obvious. Most, we hope, are not.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz1qozzftgbn6l7p29wju.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz1qozzftgbn6l7p29wju.png" alt="Five shapes a delivery can take: across town now; one pickup, many doors; many pickups, one door; there and back; and people, not parcels" width="800" height="625"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  First, the ones you'd expect
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Restaurants and cloud kitchens.&lt;/strong&gt; The order is packed, a nearby rider is offered the job, and your customer watches the food come to them instead of calling to ask.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Pharmacies.&lt;/strong&gt; Medicine goes out the door with a rider you can see on a map. Anything that needs to stay cold can be matched only with riders who can keep it cold.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Online shops.&lt;/strong&gt; Whether you sell on a website or through Instagram, your customer can see the delivery price before they pay, and it won't change halfway there.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Groceries and errands.&lt;/strong&gt; Someone else does the market run. You follow it from your phone.&lt;/p&gt;

&lt;p&gt;These are the reasons most people come to Relay. The interesting part is what else becomes possible.&lt;/p&gt;

&lt;h2&gt;
  
  
  Across town, right now
&lt;/h2&gt;

&lt;p&gt;Some deliveries are small and urgent. They don't need a van; they need someone reliable, quickly.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The contract that must be signed today.&lt;/strong&gt; A law firm in Ikoyi needs a signed agreement at a bank in Victoria Island before three o'clock. It goes out as an urgent job, only to riders above a rating you choose, or only to riders from a fleet you trust. Everyone involved can see where the envelope is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The part that gets the car moving again.&lt;/strong&gt; A driver breaks down on the Lekki-Epe Expressway. The mechanic knows exactly which part he needs, and it's sitting in a shop at Ladipo. An app that connects roadside mechanics to parts dealers, and sends the part out the moment it's paid for, is a real business. It only ever needed a delivery network that nobody could afford to build alone.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The thing you forgot at home.&lt;/strong&gt; Your laptop charger. Your ID card. The keys your sister needs. A simple "send anything across town" app, built for the everyday version of this problem, is maybe a weekend of work on top of Relay.&lt;/p&gt;

&lt;h2&gt;
  
  
  One pickup, many doors
&lt;/h2&gt;

&lt;p&gt;A single Relay delivery can have several stops, and that one detail opens more doors than you'd expect.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Aso-ebi season.&lt;/strong&gt; One tailor, forty guests, forty outfits, all due before the wedding on Saturday. Instead of forty phone calls and a very long week, it's one pickup and a list of drop-offs, and each guest can see when theirs is on the way. Anyone who has ever coordinated aso-ebi for a family wedding is already smiling.&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%2Fimages.unsplash.com%2Fphoto-1768212565426-58b089b6386d%3Fw%3D1200%26h%3D675%26fit%3Dcrop%26crop%3Dentropy%26fm%3Djpg%26q%3D80" 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%2Fimages.unsplash.com%2Fphoto-1768212565426-58b089b6386d%3Fw%3D1200%26h%3D675%26fit%3Dcrop%26crop%3Dentropy%26fm%3Djpg%26q%3D80" alt="Rolls of bright ankara fabric stacked on a market table" width="1200" height="675"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Subscriptions that go out on a round.&lt;/strong&gt; Weekly zobo and smoothies. Meal prep for busy professionals. Fresh bread every Friday morning. A small subscription business lives or dies on getting the same thing to the same thirty doors, reliably, every week.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Giving, delivered.&lt;/strong&gt; Churches, mosques, and community groups that send food packs to families can plan a run of drop-offs and know that every stop was reached, with a record to show for it.&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%2Fimages.unsplash.com%2Fphoto-1785094165709-54fef69c2c4d%3Fw%3D1200%26h%3D675%26fit%3Dcrop%26crop%3Dentropy%26fm%3Djpg%26q%3D80" 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%2Fimages.unsplash.com%2Fphoto-1785094165709-54fef69c2c4d%3Fw%3D1200%26h%3D675%26fit%3Dcrop%26crop%3Dentropy%26fm%3Djpg%26q%3D80" alt="A busy Lagos market seen from above, with umbrellas, stalls, cars and shoppers" width="1200" height="675"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Many pickups, one door
&lt;/h2&gt;

&lt;p&gt;Flip it around. Several stops to collect, one place to deliver.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A personal shopper for Balogun.&lt;/strong&gt; The fabric from one stall, the lace from another, the shoes from a third. A shopper walks the market, and one rider collects from every stall and brings it all to one customer. For someone in Abuja, or just someone who can't face the market, that's a service worth paying for.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The morning ingredient run.&lt;/strong&gt; A restaurant buying fresh produce from Mile 12 every morning. Peppers from one seller, onions from another, everything to the kitchen before lunch service.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Event day.&lt;/strong&gt; The cake from Yaba, the flowers from Obalende, the small chops from Surulere, all arriving at the venue before the guests do.&lt;/p&gt;

&lt;h2&gt;
  
  
  There and back
&lt;/h2&gt;

&lt;p&gt;Some ideas only work if the thing comes back. Those used to be twice as hard. With Relay they're simply two deliveries: one out, one home.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Laundry and dry cleaning&lt;/strong&gt; that collects on Monday and returns on Thursday, without the business ever buying a van.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Phone and laptop repairs.&lt;/strong&gt; The cracked phone goes to the technician; the fixed phone comes back. The customer never has to sit in traffic to Computer Village.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Renting instead of buying.&lt;/strong&gt; Cameras for a weekend shoot. A PlayStation for the holidays. A dress for one wedding. Baby gear that's only needed for a few months. Rental businesses are held back by one question: how does it get there, and how does it come back? Answer that, and a whole category of small businesses opens up.&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%2Fimages.unsplash.com%2Fphoto-1529171918672-ba6d0733a56c%3Fw%3D1200%26h%3D675%26fit%3Dcrop%26crop%3Dentropy%26fm%3Djpg%26q%3D80" 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%2Fimages.unsplash.com%2Fphoto-1529171918672-ba6d0733a56c%3Fw%3D1200%26h%3D675%26fit%3Dcrop%26crop%3Dentropy%26fm%3Djpg%26q%3D80" alt="The view from inside a keke, looking out at motorcycles, cars and pedestrians on a busy road" width="1200" height="675"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Handle with care
&lt;/h2&gt;

&lt;p&gt;Not everything should travel on the back of an open bike. When you create a delivery, you can ask for the right kind of vehicle: a bicycle, motorcycle, keke, car, or truck. You can also require a box, air conditioning, or refrigeration.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Cold chain for small producers.&lt;/strong&gt; A poultry farmer in Ikorodu, a fishmonger in Epe, an ice cream maker in Wuse. Refrigerated deliveries mean small producers can sell directly to restaurants and homes without owning a cold truck.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Home sample collection.&lt;/strong&gt; A diagnostic lab that collects samples from patients at home and brings them back, kept cold, on a route the lab can see. The lab still follows its own clinical rules. Relay moves the box.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fragile and beautiful things.&lt;/strong&gt; Cakes, flowers, artwork. Air conditioning and a proper box make the difference between arriving perfect and arriving sad.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Heavy things.&lt;/strong&gt; Cement and tiles to a building site. A finished wardrobe from the carpenter's workshop to the new flat. Bulk deliveries by truck, followed on a map by the site manager who is waiting for them.&lt;/p&gt;

&lt;h2&gt;
  
  
  People, not parcels
&lt;/h2&gt;

&lt;p&gt;Relay can move people too.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The night shift.&lt;/strong&gt; Hospitals, restaurants, call centres, and hotels all have staff who finish work when it isn't safe or easy to get home. A staff ride service, using your own trusted drivers in air-conditioned cars, with every trip on record, is the kind of care your staff will remember.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Guests.&lt;/strong&gt; A small hotel or guesthouse that offers airport pickups, with the guest watching their driver approach instead of wondering whether anyone is coming.&lt;/p&gt;

&lt;h2&gt;
  
  
  Bring your own riders
&lt;/h2&gt;

&lt;p&gt;Maybe you already have riders.&lt;/p&gt;

&lt;p&gt;A pharmacy chain with ten riders of its own, a fleet owner with twenty bikes, a logistics company that has done things by phone for years: all of them can run their own people through Relay. You can keep a job to your own fleet, or open it to independent riders when you're busy. You can see which riders are free nearby and pick one yourself. Our rider engine is open source, so a fleet can build a rider app of its own on the same tracking Relay uses.&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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz1g2el6ofcnwarn1tyrw.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.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fz1g2el6ofcnwarn1tyrw.png" alt="What Relay takes care of: the right rider, special care, price first, live on the map, payment held, and your own riders too" width="800" height="530"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The pattern behind all of these
&lt;/h2&gt;

&lt;p&gt;Every idea above has the same bones. Something needs to get from one part of the city to another. Someone is waiting for it. Someone needs to trust that it went well.&lt;/p&gt;

&lt;p&gt;Relay takes care of that part:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;it finds a suitable rider nearby, on the right kind of vehicle&lt;/li&gt;
&lt;li&gt;it agrees the price before anyone moves&lt;/li&gt;
&lt;li&gt;it shows everyone where the delivery is, live&lt;/li&gt;
&lt;li&gt;it holds the payment until the job is done&lt;/li&gt;
&lt;li&gt;it keeps an honest record of every step&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;That leaves you free to work on the part that's actually yours: the idea itself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Your turn
&lt;/h2&gt;

&lt;p&gt;If you want to find an idea of your own, try this:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Where do people around you wait for something to arrive?&lt;/li&gt;
&lt;li&gt;What do you regularly drive across town to fetch, or ask someone else to fetch for you?&lt;/li&gt;
&lt;li&gt;Which business near you still says "sorry, we don't deliver"?&lt;/li&gt;
&lt;li&gt;What would people rent, share, or subscribe to if getting it to them were easy?&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Somewhere in those answers is a business that would have been too much trouble last year.&lt;/p&gt;

&lt;p&gt;A note on honesty: Relay is live in Lagos and Abuja for now. It moves things and people between places. Your business still does its own part, whether that's checking a prescription, following a lab's procedures, or deciding what your customers are allowed to send.&lt;/p&gt;

&lt;p&gt;If you build software, &lt;a href="https://dev.to/sendrelay-ng/create-your-first-delivery-task-with-relay-node-test-mode-34jm"&gt;our step-by-step guide&lt;/a&gt; walks you through your first delivery in a few lines of code. If you run a business, write to &lt;a href="mailto:hello@sendrelay.com.ng"&gt;hello@sendrelay.com.ng&lt;/a&gt; and tell us what you're trying to move. And if one of these ideas sparked a better one, tell us in the comments. We'd love to hear it.&lt;/p&gt;

&lt;p&gt;Start at &lt;a href="https://sendrelay.com.ng/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=devto_use_cases" rel="noopener noreferrer"&gt;sendrelay.com.ng&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Illustrations by Relay. Photos from Unsplash: Lagos market by &lt;a href="https://unsplash.com/photos/IWMQ5P9HxYM" rel="noopener noreferrer"&gt;Fahd Aminu&lt;/a&gt;, ankara fabrics by &lt;a href="https://unsplash.com/photos/toQSUFO1hSA" rel="noopener noreferrer"&gt;WyteShot&lt;/a&gt;, keke view by &lt;a href="https://unsplash.com/photos/t6nqZ0n3i-k" rel="noopener noreferrer"&gt;Joshua Oluwagbemiga&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>startup</category>
      <category>nigeria</category>
      <category>business</category>
      <category>ideas</category>
    </item>
    <item>
      <title>Create your first delivery task with Relay (Node, test mode)</title>
      <dc:creator>SendRelay</dc:creator>
      <pubDate>Mon, 28 Sep 2026 14:01:32 +0000</pubDate>
      <link>https://dev.to/sendrelay-ng/create-your-first-delivery-task-with-relay-node-test-mode-34jm</link>
      <guid>https://dev.to/sendrelay-ng/create-your-first-delivery-task-with-relay-node-test-mode-34jm</guid>
      <description>&lt;h1&gt;
  
  
  Create your first delivery task with Relay (Node, test mode)
&lt;/h1&gt;

&lt;p&gt;New to Relay? Start with &lt;a href="https://dev.to/sendrelay-ng/where-is-my-cake-a-saturday-in-lagos-told-twice-h02"&gt;the story behind it&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Imagine you run a pharmacy app in Lagos. An order is packed, but your checkout has no delivery ID to show the customer. Your team could call riders one by one and answer “where is my order?” from a chat thread. Instead, your backend can hand the delivery to Relay when the order is ready, save the task ID, and use that ID to follow its progress. In test mode, you can build that handoff without dispatching a real rider.&lt;/p&gt;

&lt;p&gt;In this tutorial, you'll create a simulated package delivery with Relay's Node SDK. You'll install the SDK, use a test API key, send pickup and dropoff stages, and retrieve the task you created. The same pattern gives your order system a stable reference for later webhook handling.&lt;/p&gt;

&lt;h2&gt;
  
  
  What you'll build
&lt;/h2&gt;

&lt;p&gt;This is the core call. It creates a test task with a deliberate idempotency key, so a retry for the same order does not create another intended delivery:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;RelayClient&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;@relay-sdk/sdk-node&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;relay&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;new&lt;/span&gt; &lt;span class="nc"&gt;RelayClient&lt;/span&gt;&lt;span class="p"&gt;({&lt;/span&gt; &lt;span class="na"&gt;apiKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;process&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;env&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;RELAY_API_KEY&lt;/span&gt; &lt;span class="p"&gt;});&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;created&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;relay&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;create&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;taskType&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;PACKAGE_DELIVERY&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;simulationOutcome&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;SUCCESS&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;autoAssign&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
    &lt;span class="na"&gt;stages&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;PICKUP&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;location&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;latitude&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;6.5244&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;longitude&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;3.3792&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;address&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Demo pickup, Lagos&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Simulation only&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;items&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
          &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Demo parcel&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;estimatedValue&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100000&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;estimatedWeight&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;STANDARD&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;estimatedSize&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;BOX&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
      &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;DROPOFF&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;location&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
          &lt;span class="na"&gt;latitude&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;6.4654&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;longitude&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mf"&gt;3.4064&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
          &lt;span class="na"&gt;address&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Demo dropoff, Lagos&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="na"&gt;instructions&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;Simulation only&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
      &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="p"&gt;],&lt;/span&gt;
  &lt;span class="p"&gt;},&lt;/span&gt;
  &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="na"&gt;idempotencyKey&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;order-demo-001-delivery&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="p"&gt;},&lt;/span&gt;
&lt;span class="p"&gt;);&lt;/span&gt;

&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;created&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;taskId&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="nx"&gt;created&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The coordinates and addresses above are demonstration inputs. &lt;code&gt;estimatedValue&lt;/code&gt; is the parcel's declared value in kobo; it is not a delivery quote. Relay's &lt;a href="https://docs.sendrelay.com.ng/tasks/create-task/" rel="noopener noreferrer"&gt;create-task guide&lt;/a&gt; covers the request fields in detail.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get a test key
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://sendrelay.com.ng/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=devto_first_task" rel="noopener noreferrer"&gt;Create a Relay account and get an API key&lt;/a&gt;. Use a key that starts with &lt;code&gt;sk_test_&lt;/code&gt;; the current SDK and &lt;a href="https://docs.sendrelay.com.ng/getting-started/get-api-key/" rel="noopener noreferrer"&gt;API-key guide&lt;/a&gt; use that prefix for test mode. Keep the key on your server and out of source control. Never put it in browser code.&lt;/p&gt;

&lt;p&gt;For a local Node project, install the SDK and put your key in your shell environment:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install&lt;/span&gt; @relay-sdk/sdk-node
&lt;span class="nb"&gt;export &lt;/span&gt;&lt;span class="nv"&gt;RELAY_API_KEY&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'sk_test_YOUR_TEST_KEY'&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The placeholder is not a real credential. If you use another shell or hosting platform, set the environment variable through its secret settings. The SDK sends the key in the &lt;code&gt;X-Relay-Key&lt;/code&gt; header; you do not need to build that header yourself.&lt;/p&gt;

&lt;h2&gt;
  
  
  Create the task
&lt;/h2&gt;

&lt;p&gt;Save the first code block as &lt;code&gt;create.mjs&lt;/code&gt;, then run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;node create.mjs
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Use Node 18 or newer, as required by the Node SDK. A successful call prints the task ID and its initial status. Save &lt;code&gt;created.task.taskId&lt;/code&gt; against your own order ID. Task creation means the delivery request was accepted; it does not mean delivery is complete.&lt;/p&gt;

&lt;p&gt;The request has two stages. &lt;code&gt;PICKUP&lt;/code&gt; tells Relay where the parcel begins; &lt;code&gt;DROPOFF&lt;/code&gt; tells it where the parcel should end. &lt;code&gt;simulationOutcome: 'SUCCESS'&lt;/code&gt; selects the success path for a test task. Test mode simulates the lifecycle without a real rider or real payment. You can use &lt;a href="https://docs.sendrelay.com.ng/simulation/outcomes/" rel="noopener noreferrer"&gt;simulation outcomes&lt;/a&gt; to exercise other branches after the basic path works.&lt;/p&gt;

&lt;p&gt;The second argument to &lt;code&gt;relay.tasks.create()&lt;/code&gt; sets &lt;code&gt;idempotencyKey&lt;/code&gt;. Derive this from a stable order ID in your app. If a network timeout makes you uncertain whether the create succeeded, retry the same intended delivery with the same key. For a different order, use a different key. The SDK can generate a key automatically, but an explicit order-based key gives your application control over retries.&lt;/p&gt;

&lt;p&gt;Do not add &lt;code&gt;paymentMethod: 'TEST'&lt;/code&gt; to this request. The test key selects the test flow. When you build your real order workflow, review the &lt;a href="https://docs.sendrelay.com.ng/tasks/create-task/" rel="noopener noreferrer"&gt;task creation guide&lt;/a&gt; and your payment setup before switching to a live key.&lt;/p&gt;

&lt;h2&gt;
  
  
  Read the task back
&lt;/h2&gt;

&lt;p&gt;The task ID is the link between your order and Relay's delivery state. Add this after the create call to fetch the task:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;latest&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="k"&gt;await&lt;/span&gt; &lt;span class="nx"&gt;relay&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;tasks&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;get&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;created&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;taskId&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="nx"&gt;console&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;log&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;task&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt; &lt;span class="k"&gt;in&lt;/span&gt; &lt;span class="nx"&gt;latest&lt;/span&gt; &lt;span class="p"&gt;?&lt;/span&gt; &lt;span class="nx"&gt;latest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;task&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nx"&gt;latest&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;status&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;A test simulation can progress after the create response, so the status you read immediately may still be an early lifecycle state. Store the ID, then use task retrieval when you need the current snapshot. The &lt;a href="https://docs.sendrelay.com.ng/sdks/node-sdk/" rel="noopener noreferrer"&gt;Node SDK guide&lt;/a&gt; describes the task methods and response shape.&lt;/p&gt;

&lt;p&gt;For an application that must update a customer or operations screen when the status changes, subscribe to Relay's &lt;a href="https://docs.sendrelay.com.ng/webhooks/" rel="noopener noreferrer"&gt;webhook events&lt;/a&gt;. Verify each webhook's signature against the raw request body before using its data, and make event handling safe to repeat. Your order database should record the Relay task ID and the event IDs it has already processed. This is how the same Lagos order can move from “ready” to a delivery state your team can inspect without manual rider calls.&lt;/p&gt;

&lt;h2&gt;
  
  
  Build the next slice
&lt;/h2&gt;

&lt;p&gt;Once the success simulation works, create a new test order using &lt;code&gt;simulationOutcome: 'NO_RIDERS'&lt;/code&gt;. Decide what your checkout and support team should see when there is no available rider. Then connect the webhook to your order state and test duplicate delivery of an event before you use a live key.&lt;/p&gt;

&lt;p&gt;You now have a small, repeatable delivery integration: an order triggers one Relay task, your app saves its ID, and you can inspect its status. &lt;a href="https://sendrelay.com.ng/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=devto_first_task" rel="noopener noreferrer"&gt;Get your test API key&lt;/a&gt; and follow the &lt;a href="https://docs.sendrelay.com.ng/getting-started/make-first-request/" rel="noopener noreferrer"&gt;first-request guide&lt;/a&gt; to try it in your backend.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Cover photo by &lt;a href="https://unsplash.com/@ib_daye" rel="noopener noreferrer"&gt;@ib_daye&lt;/a&gt; on &lt;a href="https://unsplash.com/photos/041h4gQImTM" rel="noopener noreferrer"&gt;Unsplash&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>api</category>
      <category>node</category>
      <category>javascript</category>
      <category>nigeria</category>
    </item>
    <item>
      <title>"Where is my cake?" A Saturday in Lagos, told twice</title>
      <dc:creator>SendRelay</dc:creator>
      <pubDate>Mon, 28 Sep 2026 14:01:26 +0000</pubDate>
      <link>https://dev.to/sendrelay-ng/where-is-my-cake-a-saturday-in-lagos-told-twice-h02</link>
      <guid>https://dev.to/sendrelay-ng/where-is-my-cake-a-saturday-in-lagos-told-twice-h02</guid>
      <description>&lt;p&gt;Say you bake cakes in Yaba.&lt;/p&gt;

&lt;p&gt;It stopped being a hobby a while ago. The oven is on by six, your phone buzzes with orders all day, and on Saturdays there is barely room on the table for the boxes. People find you on Instagram, fall for a photo, and send a message: &lt;em&gt;Can you do a two-tier for my mum's birthday? Lekki. Saturday, 3pm.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;You say yes. Of course you say yes.&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%2Fimages.unsplash.com%2Fphoto-1741863175748-bb73eb5056f1%3Fw%3D1200%26fm%3Djpg%26q%3D80" 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%2Fimages.unsplash.com%2Fphoto-1741863175748-bb73eb5056f1%3Fw%3D1200%26fm%3Djpg%26q%3D80" alt="A smiling baker in an apron stands behind a finished pink cake" width="1200" height="1800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The cake is the easy part
&lt;/h2&gt;

&lt;p&gt;By noon on Saturday the cake is done, and it is lovely. Now the real work starts.&lt;/p&gt;

&lt;p&gt;You call the rider you used last week. He doesn't pick up. You call another one, who says he's close, then names a price well above what you told the customer delivery would cost. You agree anyway, because it's already 12:40. He says he's coming. Twenty minutes later, he is still coming.&lt;/p&gt;

&lt;p&gt;When he finally arrives, you hand over the box, say a small prayer, and watch him ride off into Lagos.&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%2Fimages.unsplash.com%2Fphoto-1648023199223-25d3622bcb13%3Fw%3D1200%26fm%3Djpg%26q%3D80" 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%2Fimages.unsplash.com%2Fphoto-1648023199223-25d3622bcb13%3Fw%3D1200%26fm%3Djpg%26q%3D80" alt="Buses, cars and crowds packed into Idumota, Lagos Island, seen from above" width="1200" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Then the calls begin.&lt;/p&gt;

&lt;p&gt;At 1:30 the customer asks if the cake has left. At 2:15 she asks where it is. You call the rider. "I dey Third Mainland, I dey come." At 2:50 she calls again. The guests are arriving, and you have no honest answer for her, because you don't know where your cake is. All you have is his word.&lt;/p&gt;

&lt;p&gt;The cake arrives at 3:25. It's fine, thank God. Her afternoon wasn't, and neither was yours. You spent an hour and a half as a switchboard. You paid the rider in cash and have nothing written down to show for it. Tomorrow, you'll do it all again.&lt;/p&gt;

&lt;p&gt;If any of that felt familiar, this is for you.&lt;/p&gt;

&lt;h2&gt;
  
  
  Now play it again
&lt;/h2&gt;

&lt;p&gt;Same Saturday. Same cake. This time your orders come in through a website, and behind that website sits Relay.&lt;/p&gt;

&lt;p&gt;At noon you mark the order as ready, and that's it. Relay looks for a rider near your shop, one with good ratings and the right kind of vehicle for a cake that can't be tipped on its side, and offers him the job. You haven't made a single call.&lt;/p&gt;

&lt;p&gt;The price was settled before anyone moved. Your customer saw it when she ordered, and it doesn't creep up halfway across the bridge.&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%2Fimages.unsplash.com%2Fphoto-1761370980969-a803951cf104%3Fw%3D1200%26fm%3Djpg%26q%3D80" 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%2Fimages.unsplash.com%2Fphoto-1761370980969-a803951cf104%3Fw%3D1200%26fm%3Djpg%26q%3D80" alt="A young woman in a white T-shirt checks her phone on a street in Abuja" width="1200" height="1800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;She doesn't need to call you, because she can see for herself. The page she ordered from shows the rider moving: picked up, on the bridge, turning into her street. When her friends ask whether the cake is coming, she turns her phone around and shows them.&lt;/p&gt;

&lt;p&gt;The money is held safely while the delivery happens and settled once the job is done. Every step is recorded, so at the end of the month you aren't trying to remember which rider you paid, or how much.&lt;/p&gt;

&lt;p&gt;The cake goes to the same address either way. What changes is the afternoon you both get to have.&lt;/p&gt;

&lt;h2&gt;
  
  
  So what is Relay?
&lt;/h2&gt;

&lt;p&gt;Relay is the delivery engine behind apps and websites that sell things people need brought to their door. It isn't an app you download. It's the part underneath that finds the rider, fixes the price, shows everyone where the delivery is, and keeps an honest record of what happened.&lt;/p&gt;

&lt;p&gt;We're starting in Lagos and Abuja.&lt;/p&gt;

&lt;h2&gt;
  
  
  When to reach for Relay
&lt;/h2&gt;

&lt;p&gt;You'll know it's time when:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;someone on your team spends part of every day calling riders&lt;/li&gt;
&lt;li&gt;customers ask "where is my order?" more often than they say thank you&lt;/li&gt;
&lt;li&gt;you've paid for a delivery and been left with nothing but a phone number&lt;/li&gt;
&lt;li&gt;you're building an app or website for food, medicine, groceries, errands, or anything else that has to reach a doorstep&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;If you run a business, mention Relay to whoever builds your website or app, or write to us at &lt;a href="mailto:hello@sendrelay.com.ng"&gt;hello@sendrelay.com.ng&lt;/a&gt; and we'll talk it through with you. If you're the one who builds things, &lt;a href="https://dev.to/sendrelay-ng/create-your-first-delivery-task-with-relay-node-test-mode-34jm"&gt;the next post on this page&lt;/a&gt; shows you how to send your first delivery with a few lines of code.&lt;/p&gt;

&lt;p&gt;Either way, start at &lt;a href="https://sendrelay.com.ng/?utm_source=devto&amp;amp;utm_medium=social&amp;amp;utm_campaign=devto_intro" rel="noopener noreferrer"&gt;sendrelay.com.ng&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;The cake deserves to arrive calmly. So do you.&lt;/p&gt;

&lt;p&gt;Next: &lt;a href="https://dev.to/sendrelay-ng/what-would-you-build-if-delivery-were-the-easy-part-10gd"&gt;What would you build if delivery were the easy part?&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Photos from Unsplash: cover by &lt;a href="https://unsplash.com/photos/041h4gQImTM" rel="noopener noreferrer"&gt;ib daye&lt;/a&gt;, baker by &lt;a href="https://unsplash.com/photos/18b_PadpaVc" rel="noopener noreferrer"&gt;WyteShot&lt;/a&gt;, Idumota by &lt;a href="https://unsplash.com/photos/cFT_Xq4XyA0" rel="noopener noreferrer"&gt;Opeyemi Adisa&lt;/a&gt;, Abuja by &lt;a href="https://unsplash.com/photos/HSpbCiZn8Co" rel="noopener noreferrer"&gt;Muhammad-Taha Ibrahim&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>nigeria</category>
      <category>startup</category>
      <category>smallbusiness</category>
      <category>logistics</category>
    </item>
  </channel>
</rss>
