<?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: Spicanet</title>
    <description>The latest articles on DEV Community by Spicanet (@spicanet).</description>
    <link>https://dev.to/spicanet</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%2F4196347%2F1b7034ff-2cc6-4009-82ad-ae87ad118d0c.jpg</url>
      <title>DEV Community: Spicanet</title>
      <link>https://dev.to/spicanet</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/spicanet"/>
    <language>en</language>
    <item>
      <title>AI teammates that need your sign-off: building Protaura</title>
      <dc:creator>Spicanet</dc:creator>
      <pubDate>Sat, 24 Oct 2026 03:31:57 +0000</pubDate>
      <link>https://dev.to/spicanet/ai-teammates-that-need-your-sign-off-building-protaura-2j3c</link>
      <guid>https://dev.to/spicanet/ai-teammates-that-need-your-sign-off-building-protaura-2j3c</guid>
      <description>&lt;p&gt;The pitch for AI agents usually goes like this: describe your idea, go make a coffee, come back to a finished product. Then you come back to a confident paragraph, a broken demo and no idea what actually changed. Protaura is my attempt to build the less exciting, more useful version. A founder describes what to build, a small team of AI teammates does the work, and nothing is published without the founder's approval. It's in beta.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem with agent demos
&lt;/h2&gt;

&lt;p&gt;Solo founders don't lack ideas. They lack hands. The promise of AI agents is extra hands, but most tools stop at narration: the agent tells you what it would do, or what it thinks it did, and you're left checking its homework with no trail to follow.&lt;/p&gt;

&lt;p&gt;I wanted the opposite. Work that leaves evidence. Changes you can review as real changes, not as a demo. And a hard rule that the human stays in charge of what goes out.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The team&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Teammate area&lt;/th&gt;
&lt;th&gt;What it covers&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Vision&lt;/td&gt;
&lt;td&gt;What you're building and why&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Project scope&lt;/td&gt;
&lt;td&gt;What's in the first version and what isn't&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Design and brand&lt;/td&gt;
&lt;td&gt;How it looks and feels&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Infrastructure and code&lt;/td&gt;
&lt;td&gt;Making it real and running&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Office and Mission Control
&lt;/h2&gt;

&lt;p&gt;Work is split between the Office and Mission Control. The Office is where the teammates and their work live. Mission Control is where you see what's happening across a mission and where decisions wait for you.&lt;/p&gt;

&lt;p&gt;Everything is recorded in an audit trail. When something changed, you can see what changed and who on the team changed it. That sounds like bureaucracy until the first time you need to know why a file looks different from yesterday.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;A mission from idea to approved change&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;How work moves through Protaura.&lt;/em&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;You describe what you want to build.&lt;/li&gt;
&lt;li&gt;The AI teammates split it into vision, scope, design and code work.&lt;/li&gt;
&lt;li&gt;They do the work and record it in the audit trail.&lt;/li&gt;
&lt;li&gt;Changes stop at an approval gate.&lt;/li&gt;
&lt;li&gt;You review the real change, not a demo of it.&lt;/li&gt;
&lt;li&gt;Only approved work is published.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;An agent that tells you it succeeded is not evidence. A change you can open and reject is.&lt;/p&gt;

&lt;p&gt;— the principle behind the approval gates&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Approval gates are not friction
&lt;/h2&gt;

&lt;p&gt;People sometimes ask whether approval gates slow things down. They do, a little, the same way code review slows things down. The alternative is finding out what your agents did after it's live, which is slower in every way that matters.&lt;/p&gt;

&lt;p&gt;The gates also change how the agents' work gets shaped. If every change has to survive a human looking at it, the work has to be presented as something reviewable: a concrete change with context, not a wall of narration. That's a better product for the founder and, honestly, a better discipline for the software.&lt;/p&gt;

&lt;h2&gt;
  
  
  Plans, in general terms
&lt;/h2&gt;

&lt;p&gt;The free plan runs the full mission and agent loop, not a crippled preview. You bring your own API keys, and you can import issues from GitHub so the team starts from work you've already written down. Paid tiers raise caps and add governance features. Current prices are on the site; I'd rather link than repeat numbers that may change.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Bring your own keys.&lt;/strong&gt; Bring-your-own API keys on the free plan means you control the model account and its costs. It also means the free plan is genuinely usable, rather than a demo that runs out after a few clicks.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What's honestly still beta
&lt;/h2&gt;

&lt;p&gt;Protaura is in beta and the portfolio lists it as active development. The agent loop works, but AI teammates are still AI: they'll misread scope, make design choices you don't like and write code that needs review. The approval gates aren't decoration. They're there because the work needs them.&lt;/p&gt;

&lt;p&gt;I'm also not going to claim Protaura replaces a team. It's a way for one person to get more done with a clear record of what was done. That's a smaller claim, and I can actually stand behind it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before you hand work to any AI agent team&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Make sure every change stops at an approval gate&lt;/li&gt;
&lt;li&gt;Check there's an audit trail you can actually read&lt;/li&gt;
&lt;li&gt;Review real changes and not summaries&lt;/li&gt;
&lt;li&gt;Keep control of your own API keys&lt;/li&gt;
&lt;li&gt;Start from written issues instead of a vague prompt&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note: Who it's for.&lt;/strong&gt; Solo founders and small teams who want to move faster without giving up the final say. If you want a hands-off magic button, this isn't it, on purpose.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Take a look
&lt;/h2&gt;

&lt;p&gt;Protaura is at &lt;a href="https://protaura.com" rel="noopener noreferrer"&gt;protaura.com&lt;/a&gt;. The rest of my projects live on &lt;a href="https://spicanet.net/products" rel="noopener noreferrer"&gt;spicanet.net/products&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://spicanet.dev/blog/protaura-ai-teammates-that-need-your-sign-off" rel="noopener noreferrer"&gt;spicanet.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>agents</category>
      <category>startup</category>
      <category>productivity</category>
    </item>
    <item>
      <title>A record label told as a science-fiction story</title>
      <dc:creator>Spicanet</dc:creator>
      <pubDate>Fri, 23 Oct 2026 16:34:12 +0000</pubDate>
      <link>https://dev.to/spicanet/a-record-label-told-as-a-science-fiction-story-5bb8</link>
      <guid>https://dev.to/spicanet/a-record-label-told-as-a-science-fiction-story-5bb8</guid>
      <description>&lt;p&gt;Most label sites are a list of releases with cover art and buy links. That's fine. It's also forgettable. Universal Rift Records is an independent electronic music label where high-velocity drum &amp;amp; bass, hypnotic trance and mechanical techno converge, and the catalogue isn't just a list. It's a science-fiction world told in chapters, from first contact to the awakening of a machine supermind. The site is live, and this is how I think about building a label as a story.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why a story at all
&lt;/h2&gt;

&lt;p&gt;Electronic music already lives in sci-fi territory. The sounds, the titles, the artwork all lean toward space, machines and signals from somewhere else. Most labels gesture at that and move on. I wanted to commit to it: one world, one long arc, and every release a piece of it.&lt;/p&gt;

&lt;p&gt;That gives the catalogue a shape. A release isn't just the next one in the list. It's the next chapter, and it belongs somewhere.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The sounds of one world&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Sound&lt;/th&gt;
&lt;th&gt;What it brings&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Drum &amp;amp; bass&lt;/td&gt;
&lt;td&gt;Velocity&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trance&lt;/td&gt;
&lt;td&gt;Hypnosis&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Techno&lt;/td&gt;
&lt;td&gt;Machinery&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The territories
&lt;/h2&gt;

&lt;p&gt;The world is split into territories: Rift, Event Horizon, Starbirth and Signal. They give releases a place to belong, so a listener can follow a part of the world they like instead of scrolling a flat release list. I'm deliberately not spelling out every rule of each territory here. Some of that is for the music to do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Chapters, not just releases
&lt;/h2&gt;

&lt;p&gt;The story runs from first contact to the awakening of a machine supermind. Releases such as First Signal and Monolith sit inside that arc. The titles do some of the storytelling on their own, which is the point: you should be able to read the catalogue and feel the story moving even before you press play.&lt;/p&gt;

&lt;p&gt;The sounds meet in this world. Drum &amp;amp; bass brings the velocity. Trance brings the hypnosis. Techno brings the machinery. They aren't kept in separate rooms; the territories are where they meet.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A catalogue should read like a story even before you press play.&lt;/p&gt;

&lt;p&gt;â€” the idea behind the label&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  What the site holds
&lt;/h2&gt;

&lt;p&gt;The site is the label's home base. It holds the catalogue, the artist roster, a video archive and a demo submission form. Nothing exotic, but each piece is shaped by the world: the catalogue reads as chapters, and the territories give each release a place.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Catalogue&lt;/li&gt;
&lt;li&gt;Artist roster&lt;/li&gt;
&lt;li&gt;Video archive&lt;/li&gt;
&lt;li&gt;Demo submissions&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The first release
&lt;/h2&gt;

&lt;p&gt;The inaugural release is by Nocterion, and it's out on Bandcamp and the major streaming services. The label site doesn't try to replace those. It points at them, the same way a book's website points at where to buy the book.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Sending a demo.&lt;/strong&gt; If you make drum &amp;amp; bass, trance or techno that sounds like it belongs in this world, there's a demo submission form on the site. Read a bit of the story first. It helps.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;What I ask of every new release&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Does it move the story forward or deepen a part of it?&lt;/li&gt;
&lt;li&gt;Which territory does it belong to?&lt;/li&gt;
&lt;li&gt;Do the title and artwork read as part of the same world?&lt;/li&gt;
&lt;li&gt;Will it sit comfortably next to First Signal and Monolith?&lt;/li&gt;
&lt;li&gt;Is it out where people actually listen?&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  What's honestly early
&lt;/h2&gt;

&lt;p&gt;The label is young. With an inaugural release, the catalogue is at the beginning of its story, not the middle. That's how labels start, and I'd rather say so than dress it up with borrowed credibility.&lt;/p&gt;

&lt;p&gt;The story is also a commitment. Once you tell people a world has rules, you have to keep them. Every future release has to fit, which is harder than just putting out the next good track.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you're building a label site&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Give the catalogue a shape and not just a list&lt;/li&gt;
&lt;li&gt;Link out to where people actually listen and buy&lt;/li&gt;
&lt;li&gt;Keep a video archive in one place&lt;/li&gt;
&lt;li&gt;Make demo submission easy to find&lt;/li&gt;
&lt;li&gt;Don't invent history the label doesn't have&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note: How it's built.&lt;/strong&gt; In general terms: a content site with a structured catalogue of releases, artists and videos, each release tied to a place in the story, and outbound links to Bandcamp and streaming services for listening.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Have a listen
&lt;/h2&gt;

&lt;p&gt;Universal Rift Records lives at &lt;a href="https://universalrift.com" rel="noopener noreferrer"&gt;universalrift.com&lt;/a&gt;. My other projects are on &lt;a href="https://spicanet.net/products" rel="noopener noreferrer"&gt;spicanet.net/products&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://spicanet.dev/blog/universal-rift-records-a-label-told-as-a-story" rel="noopener noreferrer"&gt;spicanet.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>music</category>
      <category>worldbuilding</category>
      <category>webdev</category>
      <category>electronicmusic</category>
    </item>
    <item>
      <title>My money doesn't live in one country, so I built Nomad Flow</title>
      <dc:creator>Spicanet</dc:creator>
      <pubDate>Wed, 21 Oct 2026 03:40:07 +0000</pubDate>
      <link>https://dev.to/spicanet/my-money-doesnt-live-in-one-country-so-i-built-nomad-flow-3n75</link>
      <guid>https://dev.to/spicanet/my-money-doesnt-live-in-one-country-so-i-built-nomad-flow-3n75</guid>
      <description>&lt;p&gt;Every budgeting app I tried assumed I had one bank, one currency and one country. Cute. If you live across borders, your money is split between local accounts, a foreign bank, some cash in a drawer, some cards and maybe some crypto, and no app wants to see all of it at once. Nomad Flow is the app I wanted: a privacy-first personal finance tool for people whose money lives in more than one country, bank or currency. It's live on the web. The mobile story is more complicated, and I'll get to it.&lt;/p&gt;

&lt;h2&gt;
  
  
  The actual problem
&lt;/h2&gt;

&lt;p&gt;The hard part of multi-country money isn't tracking spending. Any app can add up coffees. The hard part is answering a simple question: how much do I actually have, in one currency I can reason about, right now?&lt;/p&gt;

&lt;p&gt;Most apps either force everything into one currency at the moment you enter it, which mangles history, or they don't handle foreign accounts at all. Then there are transfers between currencies, which many apps record as an expense in one place and income in another, and your net worth gets weird.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What you can put in it&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Account type&lt;/th&gt;
&lt;th&gt;How it's kept&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Cash&lt;/td&gt;
&lt;td&gt;In its own currency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Local bank accounts&lt;/td&gt;
&lt;td&gt;In its own currency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Foreign bank accounts&lt;/td&gt;
&lt;td&gt;In its own currency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Cards&lt;/td&gt;
&lt;td&gt;In its own currency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Crypto&lt;/td&gt;
&lt;td&gt;In its own currency&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Loans&lt;/td&gt;
&lt;td&gt;In its own currency&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  One net worth, many currencies
&lt;/h2&gt;

&lt;p&gt;Yes, the right-hand column of that table is deliberately repetitive. That's the whole point. Every account keeps its own currency, and Nomad Flow shows one net worth in a reporting currency you choose. You don't have to pretend your local cash is secretly dollars.&lt;/p&gt;

&lt;p&gt;Cross-currency transfers keep both legs. Moving money from one currency to another is recorded as what it is, a transfer with both sides, not as a mysterious expense followed by a mysterious income.&lt;/p&gt;

&lt;h2&gt;
  
  
  Money Chat proposes, you confirm
&lt;/h2&gt;

&lt;p&gt;Data entry is where personal finance apps go to die. So there's Money Chat: you describe a transaction in plain language and it proposes a draft entry. It only proposes. Nothing lands in your ledger until you confirm it.&lt;/p&gt;

&lt;p&gt;I'm firm about that rule. An assistant that writes directly into your financial records is an assistant that will eventually write something wrong into your financial records, and you won't notice until the numbers stop adding up.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;The assistant drafts. The ledger is yours.&lt;/p&gt;

&lt;p&gt;— the rule behind Money Chat&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Planning without breaking anything&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Plan expected income and spending.&lt;/li&gt;
&lt;li&gt;Forecast your runway from what's actually in your accounts.&lt;/li&gt;
&lt;li&gt;Test scenarios such as moving countries or losing a client.&lt;/li&gt;
&lt;li&gt;Throw the scenario away. Your real ledger was never touched.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  Privacy, in general terms
&lt;/h2&gt;

&lt;p&gt;Financial data is about as personal as data gets. Sync between your devices is end-to-end encrypted, which is the part I'd look for first in any app like this. I'm not going to go deeper into infrastructure in a public post, and frankly you shouldn't trust a finance app that's eager to.&lt;/p&gt;

&lt;p&gt;If you're coming from somewhere else, there's import from ZenMoney and from CSV, so you don't have to start your history from scratch.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Note: Why privacy-first.&lt;/strong&gt; People who live across borders often have the most fragmented and sensitive financial picture: several banks, several tax contexts, sometimes a family spread over a few countries. That's exactly the data you don't want sitting in plain text on someone else's server. So privacy wasn't a feature to add later. It's the constraint the rest of the app is built around.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Free tier exists.&lt;/strong&gt; There's a free plan and paid Nomad plans, monthly or yearly. Current prices are on the site; I'd rather link than copy numbers that may change.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  The honest part: mobile
&lt;/h2&gt;

&lt;p&gt;My portfolio lists Nomad Flow for web, iOS and Android, and marks it as active development. The web app is live. I haven't verified the store apps for this post, so I'm not going to tell you to go download them. If you're reading this hoping for a polished App Store listing, check the site first rather than taking my word for it.&lt;/p&gt;

&lt;p&gt;Active development also means the app is still changing. Planning, forecasting and Money Chat are real and usable, but expect them to keep evolving.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Who it's for&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You hold money in more than one currency&lt;/li&gt;
&lt;li&gt;You have accounts in more than one country&lt;/li&gt;
&lt;li&gt;You want one net worth figure you can trust&lt;/li&gt;
&lt;li&gt;You care where your financial data goes&lt;/li&gt;
&lt;li&gt;You prefer confirming entries over auto-import surprises&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Try it if it fits
&lt;/h2&gt;

&lt;p&gt;If your money lives in more than one place, Nomad Flow is at &lt;a href="https://nomadflow.money" rel="noopener noreferrer"&gt;nomadflow.money&lt;/a&gt;. Everything else I'm building is on &lt;a href="https://spicanet.net/products" rel="noopener noreferrer"&gt;spicanet.net/products&lt;/a&gt;.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on &lt;a href="https://spicanet.dev/blog/nomad-flow-money-across-borders" rel="noopener noreferrer"&gt;spicanet.dev&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>fintech</category>
      <category>privacy</category>
      <category>productivity</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Build the engine, not the posts</title>
      <dc:creator>Spicanet</dc:creator>
      <pubDate>Tue, 20 Oct 2026 14:32:00 +0000</pubDate>
      <link>https://dev.to/spicanet/build-the-engine-not-the-posts-oed</link>
      <guid>https://dev.to/spicanet/build-the-engine-not-the-posts-oed</guid>
      <description>&lt;p&gt;&lt;em&gt;Update (Oct 2026): CryptoCardCompass now lists 54 cards.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Around twenty of our own sites, one person deciding what they say. You can keep writing every page by hand and drown politely, or you can build the thing that writes, checks and ships them, and then spend your evenings arguing with it instead. The next months go into the second option: one typed content pipeline, one design language across the sites, and a fact-check gate that is allowed to say no. This is a roadmap, not a victory lap. The design work is out in the world. The engine and the gate are still being built and tested.&lt;/p&gt;

&lt;h2&gt;
  
  
  Why stop writing posts one by one
&lt;/h2&gt;

&lt;p&gt;Every site started as its own small kingdom. Its own CMS habits, its own idea of what a guide looks like, its own way of being slightly wrong. Fixing one meant fixing it nineteen more times, usually by memory, usually at night.&lt;/p&gt;

&lt;p&gt;The interesting work is not the next article. It is the machinery that knows what an article on this site is allowed to contain, where it gets its facts, and who has to look at it before it goes out.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Content gets a type and a schema, not a blank text box.&lt;/li&gt;
&lt;li&gt;Every generated field should carry where it came from.&lt;/li&gt;
&lt;li&gt;Publishing becomes a separate step with its own rules.&lt;/li&gt;
&lt;li&gt;Live content gets refreshed instead of quietly rotting.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Writing the twentieth guide by hand is not craft. It is a cry for help with good grammar.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;The roadmap, in order (in progress)&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Typed content storage so a review is a review and a glossary term is a glossary term.&lt;/li&gt;
&lt;li&gt;Generation directed by that schema and every field keeps its provenance.&lt;/li&gt;
&lt;li&gt;A publication step that talks to our own CMS and to WordPress or custom sites through adapters.&lt;/li&gt;
&lt;li&gt;Autopilot per content type, only where the type has earned it.&lt;/li&gt;
&lt;li&gt;Refresh of live pages and follow-ups only after publication is verified.&lt;/li&gt;
&lt;li&gt;One design language rolled across the sites so the engine is not dressing each one by hand.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;Before and the plan for after&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Site type&lt;/th&gt;
&lt;th&gt;Before&lt;/th&gt;
&lt;th&gt;Planned after&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Guides and reviews&lt;/td&gt;
&lt;td&gt;Hand-written per site&lt;/td&gt;
&lt;td&gt;Typed content with sources attached&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Glossaries and lessons&lt;/td&gt;
&lt;td&gt;Copied structures that drift&lt;/td&gt;
&lt;td&gt;One schema and many locales&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Music and artist pages&lt;/td&gt;
&lt;td&gt;Bios written from vibes&lt;/td&gt;
&lt;td&gt;Bios that only keep supported claims&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Design&lt;/td&gt;
&lt;td&gt;Each site its own mood&lt;/td&gt;
&lt;td&gt;Shared language with a local accent&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Publishing&lt;/td&gt;
&lt;td&gt;Whoever remembered last&lt;/td&gt;
&lt;td&gt;An orchestrator with its own rules&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  The test case: artist bios that refuse to guess
&lt;/h2&gt;

&lt;p&gt;DROP THE BASS is where the gate is being tested first. The artist bio pipeline we are building writes only bio fields and drops claims it cannot support. No invented residencies, no imaginary label history, no "legendary" unless something actually says so. It is not running in production yet. It is the place where we find out whether the gate is strict enough.&lt;/p&gt;

&lt;p&gt;Spotify and YouTube matching by ID instead of by name is part of the same work. Plenty of artists share a name with someone who makes very different music, and matching by name is how a jungle producer ends up linked to a wedding band. An ID ends that argument.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The gate can say no&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;A fact-check that always passes is decoration. The bio gate we are testing drops unsupported lines and leaves the field shorter. A short true bio beats a long beautiful lie every single time.&lt;/p&gt;

&lt;h2&gt;
  
  
  One design language and many accents
&lt;/h2&gt;

&lt;p&gt;This part is already out. VPNScoreLab, Brokeli, CoinFaro and ProxyLister got new design systems in the last weeks, and SpicaSEO got its own refresh. They should not look identical. They should feel like they come from the same workshop.&lt;/p&gt;

&lt;p&gt;Brokeli now speaks eight languages, with calculators, lessons and a glossary. CoinFaro grew a real glossary and guides. That volume only makes sense if the engine underneath stays honest, which is exactly why the engine comes next.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Quality gates before anything goes live&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Every factual field has a source the engine can point to.&lt;/li&gt;
&lt;li&gt;Unsupported claims are dropped and not softened.&lt;/li&gt;
&lt;li&gt;External profiles are matched by ID and not by name.&lt;/li&gt;
&lt;li&gt;The page fits the site's design language.&lt;/li&gt;
&lt;li&gt;Publication is verified before any follow-up runs.&lt;/li&gt;
&lt;li&gt;A person can see what changed and roll it back.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What is honestly still in progress
&lt;/h2&gt;

&lt;p&gt;The content engine in SpicaSEO and the new connector for our own CMS are in progress. Nothing here is shipped as a finished machine. Adapters come for our own CMS first, then WordPress and custom sites. Autopilot will be per content type and no type has earned it yet. The bio gate on DROP THE BASS is in testing, not in production.&lt;/p&gt;

&lt;p&gt;A couple of new sites will grow up on this engine from day one. SpicaVPN is prelaunch with a waitlist. CryptoCardCompass is an early catalog with nothing published yet.&lt;/p&gt;

&lt;p&gt;Every new site still gets a real review before it opens. The engine prepares. A person decides.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why roadmap and not launch&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We would rather publish where the engine is going and get corrected than announce a finished machine that still needs a babysitter. When pieces ship they go to the Friday Dev Log.&lt;/p&gt;

&lt;h2&gt;
  
  
  The bet
&lt;/h2&gt;

&lt;p&gt;Fewer hand-made posts. More time on the engine and the gates. If it works, twenty sites stay honest with the same effort as two. If it does not, at least it fails loudly and in one place.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the Spicanet blog: &lt;a href="https://spicanet.dev/blog/build-the-engine-not-the-posts" rel="noopener noreferrer"&gt;https://spicanet.dev/blog/build-the-engine-not-the-posts&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>ai</category>
      <category>cms</category>
      <category>seo</category>
    </item>
    <item>
      <title>Naming things is editorial work</title>
      <dc:creator>Spicanet</dc:creator>
      <pubDate>Tue, 20 Oct 2026 14:24:00 +0000</pubDate>
      <link>https://dev.to/spicanet/naming-things-is-editorial-work-38lk</link>
      <guid>https://dev.to/spicanet/naming-things-is-editorial-work-38lk</guid>
      <description>&lt;p&gt;Give a machine a pile of tracks and it will happily tell you what genre each one is. It will be fast, confident and wrong in ways that make a junglist want to throw a speaker out the window. Building a DnB and jungle genre taxonomy for DROP THE BASS taught us something we should have known already: naming things is not data cleanup. It is editorial work. Provider tags are hints. Every label needs a paper trail. The machine may propose. A person accepts. And when there is no evidence, the model does not get called at all.&lt;/p&gt;

&lt;h2&gt;
  
  
  Provider tags are hints, not truth
&lt;/h2&gt;

&lt;p&gt;Streaming and event platforms come with genre tags. Some are good. Some are a marketing department's idea of DnB. Until recently an import could quietly overwrite a genre someone had chosen by hand, which is the data version of a stranger rearranging your record shelf while you sleep.&lt;/p&gt;

&lt;p&gt;Now imports never wipe or overwrite genres, and a provider string never becomes a genre on its own. It gets read, interpreted and kept as a hint next to the real decision.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Imports from Spotify or RA cannot overwrite a chosen genre.&lt;/li&gt;
&lt;li&gt;No new genre is created just because a provider typed a word.&lt;/li&gt;
&lt;li&gt;Provider terms are interpreted, not obeyed.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;A tag from a platform is a rumor with metadata. Treat it like a rumor.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Provider tag versus our decision&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;What a provider might say&lt;/th&gt;
&lt;th&gt;Canonical genre&lt;/th&gt;
&lt;th&gt;Decision&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Liquid or liquid DnB&lt;/td&gt;
&lt;td&gt;Liquid Funk&lt;/td&gt;
&lt;td&gt;Restored as the canonical name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Ragga or reggae jungle&lt;/td&gt;
&lt;td&gt;Ragga Jungle&lt;/td&gt;
&lt;td&gt;Named properly and published&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Footwork&lt;/td&gt;
&lt;td&gt;Footwork&lt;/td&gt;
&lt;td&gt;Kept hidden for now&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Anything unknown&lt;/td&gt;
&lt;td&gt;None&lt;/td&gt;
&lt;td&gt;Stays a hint until a person decides&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  Every label carries a paper trail
&lt;/h2&gt;

&lt;p&gt;Each genre on an artist, release or label now records where it came from. A human editor. A provider hint. A proposal from the engine that someone accepted. If a label is wrong you can see exactly how it got there, and fix the cause instead of the symptom.&lt;/p&gt;

&lt;p&gt;The full taxonomy is visible on the genres page, so the decisions are public and arguable. That is the point. Names in a scene should be argued about by people who care, not settled by whichever API answered first.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How a label is allowed to happen&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Propose: the classifier or the label engine suggests a genre.&lt;/li&gt;
&lt;li&gt;Evidence: the suggestion must point to eligible first-party text written or approved by a person.&lt;/li&gt;
&lt;li&gt;Review: an editor sees the proposal with its evidence.&lt;/li&gt;
&lt;li&gt;Accept: only a person turns a proposal into a label.&lt;/li&gt;
&lt;li&gt;No evidence means no proposal and no model call at all.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;strong&gt;No evidence, no model call&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The classifier is review-only and its switch is off by default. Only human-written or approved first-party text may reach a model. Spotify text is blocked in code. If nothing eligible exists the system makes zero model calls instead of guessing.&lt;/p&gt;

&lt;h2&gt;
  
  
  Start from the labels
&lt;/h2&gt;

&lt;p&gt;Editors describe record labels. The engine then proposes genres for the artists and releases connected to them. Evidence is counted once per source so one loud page cannot vote ten times, and derived proposals never feed further guesses. Every proposal can be reviewed and rejected.&lt;/p&gt;

&lt;p&gt;It is a small rule with a big effect: the machine can widen what an editor knows, but it cannot invent a chain of its own assumptions.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before a machine may label anything&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The evidence is first-party text a person wrote or approved.&lt;/li&gt;
&lt;li&gt;The source is recorded on the label.&lt;/li&gt;
&lt;li&gt;Provider tags are stored as hints and never as decisions.&lt;/li&gt;
&lt;li&gt;A derived guess cannot become evidence for the next guess.&lt;/li&gt;
&lt;li&gt;A person accepts or rejects every proposal.&lt;/li&gt;
&lt;li&gt;There is a kill switch and it starts off.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  The same rule outside music
&lt;/h2&gt;

&lt;p&gt;Naming is one case of a wider habit: do not serve what is not true. VPNScoreLab stopped showing synthetic lab speeds. Its unpublished articles now actually return 404 instead of living on in cache. CoinFaro does the same for missing incidents with a real 404 and noindex rather than a cached page that says everything is fine.&lt;/p&gt;

&lt;p&gt;A missing page that admits it is missing is more useful than a confident ghost.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;A name like liquid funk is not a database value. It is a name a scene made, and we just have to write it down correctly.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Tell us&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If we got a name wrong, we would rather hear it now than after the next import.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the Spicanet blog: &lt;a href="https://spicanet.dev/blog/naming-things-is-editorial-work" rel="noopener noreferrer"&gt;https://spicanet.dev/blog/naming-things-is-editorial-work&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>data</category>
      <category>webdev</category>
      <category>music</category>
    </item>
    <item>
      <title>Handing a site over to software, honestly</title>
      <dc:creator>Spicanet</dc:creator>
      <pubDate>Tue, 20 Oct 2026 14:23:41 +0000</pubDate>
      <link>https://dev.to/spicanet/handing-a-site-over-to-software-honestly-2476</link>
      <guid>https://dev.to/spicanet/handing-a-site-over-to-software-honestly-2476</guid>
      <description>&lt;p&gt;Everyone wants a website that runs itself. Almost nobody wants to talk about what has to be true first. This is the plan for the next few weeks: what a site needs before software gets the keys, which jobs never go on auto no matter how good the software gets, and where we draw the line on AI faces and names. It is a roadmap, not a victory lap.&lt;/p&gt;

&lt;h2&gt;
  
  
  The keys are not the hard part
&lt;/h2&gt;

&lt;p&gt;Turning on automation is one switch. Living with it is the hard part. A site on autopilot with no brief, no search data and no budget is not autonomous. It is just unsupervised.&lt;/p&gt;

&lt;p&gt;So in SpicaSEO the switch now sits behind a hand-over checklist. Every item links straight to the screen where you fix it. Full Autopilot can only be turned on by the owner, and only after the list is done.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Before a site runs itself&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;The site connector works.&lt;/li&gt;
&lt;li&gt;Publishing works end to end.&lt;/li&gt;
&lt;li&gt;There is a written site brief.&lt;/li&gt;
&lt;li&gt;The editorial team is set up.&lt;/li&gt;
&lt;li&gt;A News section exists.&lt;/li&gt;
&lt;li&gt;Search Console and Bing are connected.&lt;/li&gt;
&lt;li&gt;There is a keyword strategy.&lt;/li&gt;
&lt;li&gt;There is an AI budget.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  What never goes on auto
&lt;/h2&gt;

&lt;p&gt;Outreach stays on approval. Sending a message to a real person needs a real person to press send, and no checklist changes that.&lt;/p&gt;

&lt;p&gt;Risk caps and the first-review rule still apply after hand-over. And every Monday the owner gets a digest of what the site did, so judging it is a habit and not an archaeology project.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Where the line sits&lt;/strong&gt;&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Job&lt;/th&gt;
&lt;th&gt;On autopilot&lt;/th&gt;
&lt;th&gt;Why&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;Drafting and publishing within caps&lt;/td&gt;
&lt;td&gt;Yes after the checklist&lt;/td&gt;
&lt;td&gt;Reversible and reviewed weekly&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;First pieces on a new site&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;First-review rule&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Outreach to people&lt;/td&gt;
&lt;td&gt;Never&lt;/td&gt;
&lt;td&gt;Sending needs a person&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Turning Full Autopilot on&lt;/td&gt;
&lt;td&gt;Owner only&lt;/td&gt;
&lt;td&gt;It is the owner's site&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h2&gt;
  
  
  News without making things up
&lt;/h2&gt;

&lt;p&gt;Each site now gets a daily news scan. Search answers are treated as leads, never as sources. Every cited page is actually fetched, and a story only counts if the quote is literally on that page. Stale or blocked sources get rejected.&lt;/p&gt;

&lt;p&gt;It is slower than trusting a summary. It is also the difference between news and confident fiction.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How a story earns its place&lt;/strong&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;A search answer suggests a lead.&lt;/li&gt;
&lt;li&gt;Every cited page gets fetched.&lt;/li&gt;
&lt;li&gt;The quote must appear on that exact page.&lt;/li&gt;
&lt;li&gt;Stale or blocked sources are dropped.&lt;/li&gt;
&lt;li&gt;Only then does it become a story.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;
  
  
  AI faces, honest labels
&lt;/h2&gt;

&lt;p&gt;Each site can have an AI editorial team, with roles taken from its brief. They can have portraits, and the portraits say what they are: an AI editorial persona, not a real person.&lt;/p&gt;

&lt;p&gt;What they cannot have is a fake life. Invented credentials, employers and years of experience are refused. If a site has real people, they are imported read-only and never rewritten. Pictures come from free-licence libraries first, and generation is the fallback.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The hard line&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;An AI persona can have a face and a role. It cannot have a made-up degree or a made-up career.&lt;/p&gt;

&lt;h2&gt;
  
  
  Meanwhile across the fleet
&lt;/h2&gt;

&lt;p&gt;The groundwork is already landing on our own sites.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Team and author pages plus news sections rolled out to ProxyLister, VPNScoreLab, CoinFaro, Brokeli, Samui Love, Trip2Fest and DROP THE BASS.&lt;/li&gt;
&lt;li&gt;Several sites got redesigns from the new design canvas.&lt;/li&gt;
&lt;li&gt;Zomia 1.0 left invite-only beta with open registration and an honest pricing page: no paid plans, fake tiers removed.&lt;/li&gt;
&lt;li&gt;A shared platform update rolled across the repos.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;A site that runs itself is only worth having if you can still read what it did on Monday morning.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;&lt;strong&gt;Next weeks&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Switch Autopilot on site by site, only after each checklist is done, and judge every one by its weekly digest.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;Originally published on the Spicanet blog: &lt;a href="https://spicanet.dev/blog/handing-a-site-over-to-software-honestly" rel="noopener noreferrer"&gt;https://spicanet.dev/blog/handing-a-site-over-to-software-honestly&lt;/a&gt;&lt;/em&gt;&lt;/p&gt;

</description>
      <category>seo</category>
      <category>automation</category>
      <category>ai</category>
      <category>webdev</category>
    </item>
  </channel>
</rss>
