Changelog

Everything that has shipped in Setu, newest first.

August 2026

Setu is open

The waitlist is gone. Anyone can sign in and start setting up a brand, with no approval step in between.

Setu launched behind a waitlist so we could help the first group set their brands up properly. That group is set up, so the waitlist is gone.

Sign in with your email and you are in. There is no form to fill in, nothing to wait for, and no approval step. If you were on the list, you can sign in today.

Also in this release:

  • The trial is fourteen days, and the clock starts the first time you connect an AI tool rather than when you sign up, so nothing runs down while you are still setting your brand up.
  • Your referral page shows a company name again for the people your link brings, read from the workspace they create.
  • Old waitlist links still work. They take you to sign-in and keep the credit for whoever shared them.

Onboarding, rebuilt around the read

Setting up a brand is eleven smaller screens now, and the reading of your material starts before the questions rather than after them.

Setting up a brand used to be five screens and one long wait. It is eleven smaller ones now, and the wait is mostly gone, because we start reading your material the moment you hand it over instead of after you have answered everything else.

The mark at the top fills as you go, in four steps rather than eleven, so the progress you see is the progress that matters.

Also in this release:

  • A brand book can be 200MB. The old limit was 15MB, and a real set of guidelines runs to 20 or 80. People were being turned away at the door and asked to re-export a document most of us have no idea how to re-export. Up to five files, and the screen states the real limits because it reads them from the server that enforces them.
  • Four questions, each with a reader. What you do, which AI tools you use, how you found us, and what kind of brand this is. None of them are asked for the file: your role shapes the first thing Setu suggests, and your tools decide which connect guide you get at the end.
  • Setu has a wordmark, a cityscape to stand beside the mark.
  • The connect screen no longer loses your colours. It was rendering the mark unpainted at the last step, which is the one place a brand should look like itself.

Setu opens

The waitlist is the door today. Self-serve sign-up opens on 20 August.

Setu is open. The way in today is a waitlist, and that is a choice rather than a capacity problem.

The people approved through it are a cohort we are watching, not a funnel we are converting, so their trial is thirty days rather than the fourteen a self-serve sign-up gets. A month is long enough to hit the second and third problem, and those are the ones worth hearing about. Self-serve opens on 20 August.

Payments are live from today. A trial is not billed while it runs, so the first charges land when the earliest trials end rather than on launch day.

Also in today's release:

  • The studio can build a brand and hand it over. Devalok does the work, the client accepts the handover, and ownership moves with the payment.
  • An API key can be turned off. "You can revoke it any time" was in writing before it was in the product. It is in the product.
  • An Indian customer can cancel without emailing us, and the billing panel says when the money actually moves rather than only that it will.
  • Setu has its own mark, built around a bar that carries the weight of a bridge, and a public tool for placing artwork onto it.

Your own AI can hand over your brand material

Paste one line into the AI you already use, and it delivers your brand files to Setu for you.

Setting up a brand means gathering things: a guidelines PDF, the logo folder, a website, the deck with the real palette in it. They are scattered across drives and threads, and finding them is the part that stalls.

The AI you already use can do the fetching. Copy one line into it, and it collects what you point it at and hands it to Setu. It is a courier and nothing more: Setu structures the material, your AI does not.

The credential is the link, and it is built to be worth little. It can only add to one setup, for thirty minutes, and it can read nothing back. Nothing enters your brand until you look at what arrived and accept it.

The app was also rebuilt around a study of how people actually move through it. Seven sections instead of a growing header, a dashboard that leads with what needs doing, and a sandbox anybody can be handed without an account.

One paid plan

Four tiers became one. Setu is $10 per person per month, or ₹699 plus GST in India.

Setu had a four-tier price list with a seat cap, a minimum spend, and a floor that existed to stop one tier undercutting another. Every part of it was a rule the customer had to learn before they could work out what they owed.

It is one plan now.

  • $10 per person per month, or ₹699 per person plus GST for an Indian business. India is priced in rupees on an Indian payment rail, and it is not a conversion of the dollar price.
  • No seat cap and no minimum. The paid plan includes the full permission model, so roles and per-person access stop being something you upgrade for.
  • One brand included. More brands are an add-on at $99 or ₹6,999 a month each.
  • Free is the trial, and when it ends the brand stays, the published book stays live, and the AI connections stop.

The cheapest paid account went from $30 to $10. That is a deliberate bet that more people paying a smaller amount is the better business, and it is checkable rather than hopeful.

Setu also now asks which country the business is in before offering a checkout, because guessing that from an address decides which currency and which tax somebody gets.

Setu stops being one person's build

The codebase was written to be read by whoever wrote it. Four people needed it to be readable by anyone.

Nothing customer-facing shipped this day, and it was one of the more consequential ones.

Setu had been built by one person and documented for that person. Three more joined. So the repository got an entry point, a guide to changing things safely, a first-week path, and a written record of who holds which credential.

Two operational facts came out of the same pass, both uncomfortable and both worth stating: the production database was several days behind the code that expected it, and the only gate protecting the repository was switched off. Both were fixed. Deploys now say who caused them.

July 2026

An audit log you can actually read

Setu had been recording everything and showing none of it. Now the record has a screen.

An audit trail that only a database query can reach is a compliance answer, not a feature. It had been recording faithfully for a month with nowhere to look at it.

The record got a screen: who did what, when, and to which brand, filterable, with the staff view-as sessions in it rather than beside it. A customer sees the entries that concern them.

Seats also started being counted for real. The subscription follows the number of people who have actually connected a tool, so the bill matches the use rather than an estimate of it.

What Devalok can and cannot see

Studio access to a customer's brand became a permission somebody grants, a session with a clock, and a recorded event.

Devalok builds brands inside Setu, so Devalok staff can reach customer data. Left implicit, that is a promise nobody can check.

Reading a brand stopped being part of being staff. It is a permission, granted per person, and a staff member without it opens the studio and sees nothing. Every read of a brand that a staff member does not belong to is recorded with their name against it.

Support can look at Setu as a named customer, and that session is deliberately narrow: read-only unless raised, thirty minutes, revocable, and four kinds of action are refused at any permission level. Money cannot move. Consent cannot be given on someone's behalf. Nothing can be destroyed. No credential can be read.

A customer can see that it happened, and why.

Workspaces, seats, trials, and the first money

Accounts became real: a workspace that owns brands, people you invite, a trial clock, and a way to pay.

Setu had brands and no accounts around them. This release built the container: a workspace that owns the brands, holds the people, and carries the bill.

  • A seat is a person. Somebody using Claude and Cursor and ChatGPT is one seat. Inviting a colleague costs nothing; they become a seat when they connect a tool.
  • The trial runs from your first connection, not from the day you signed up, because a trial that starts before the product does is a trial you spend reading documentation.
  • Checkout, and a way out. Card payments, an invoice history, and a cancel path that does not require writing to us.
  • Export and deletion. Your brand leaves in a readable format, and deleting an account deletes it.
  • A consent record. What you agreed to and which version of it.

The pages people needed before any of that arrived too: pricing, the connect guides for each AI tool, and a help centre written to the questions people actually ask.

The parts nobody sees

A week on the foundations: tests, error monitoring, required checks, and one whole product retired.

None of this is visible in the product and all of it decides whether the product keeps working.

  • Tests, and then required tests. The store's invariants got a suite that runs against a real database. Nothing merges now without the checks passing, and that applies to the people who own the repository too.
  • Error monitoring. Both halves of Setu report their own failures instead of waiting for somebody to notice.
  • A secret scanner over the whole history, and dependency updates on a schedule rather than on alarm.
  • The readiness tool was retired. It was a second product sharing one database with the first, which is one accident away from losing the data that matters. Its scoring work lives on as reference.

The same week produced the vocabulary the rest of this list uses: what a workspace is, what a seat is, what a brand tier means, written down once so two people cannot mean different things by the same word.

Setu holds itself to its own rules

The interface standards Setu serves to other people became the standards Setu is built to.

Setu tells an AI how to build an on-brand interface. Setu's own interface was drifting from that advice, which is a difficult position to argue from.

So the interface rules moved into the brand file itself and are now served the same way voice and colour are. Type sizes come from a named ramp rather than a hand-picked pixel value. Cards separate by tone rather than by a drawn line. One colour carries the single most important action on a screen, and it is not used on three things at once.

Then every existing screen was rebuilt against them. Some of what came out was worse before and looked fine, which is the usual shape of this work.

The public brand book

Every brand in Setu can be published as a page you send to anyone, set in its own fonts and colours.

A brand guide that lives behind a login is a brand guide the freelancer never reads. So every brand in Setu can be published as a page with its own address, set in the brand's real fonts, on the brand's real colours, with the logos downloadable by the people entitled to them.

It is a page, not an export. It reflects the version that is live, and the footer says when it was published and which version it is, so an argument from a screenshot taken in March has an answer.

  • Curated or complete. The owner chooses whether the public page leads with the essentials or shows everything.
  • Unlisted and password-protected. For a brand that is real but not announced.
  • Findable. Sitemap, canonical URLs and structured data, because a brand guide people cannot find has the same value as one that does not exist.
  • A brand kit. Members download the assets; the public page does not hand them out.

Publishing is free, and stays free.

The addresses also settled this week. The app and the published books live at setu.dv.lk, and every AI connection is served from mcp.setu.dv.lk.

Anti-slop rules that know the surface

The tells that give away AI work differ by medium, so the rules split by medium too.

The rule that saves a landing page ruins a billboard. Most AI tells are specific to where the work lands: the stacked triplet belongs to copy, the uniform card grid to interfaces, the centred glow to graphics.

The anti-slop layer split by surface. Ask for the rules for a web interface and you get the interface tells. Ask for a document and you get the document tells. The universal set is still there underneath, and a brand's own rule still overrides both.

Two other things arrived in this release:

  • A Figma path for logos. Figma's design agent cannot read a URL, so it used to draw an approximation of a wordmark. Setu now returns a recipe that places the real asset on the canvas first.
  • Per-person usage. Which brand, which tool, which person, so an owner can see where their brand is actually being read.

Nothing changes your brand without you

An AI can propose an edit to your brand. A person accepts it, looking at what it would do.

An AI that can read your brand will eventually want to correct it. It will be right sometimes. That is not a reason to let it write.

Proposing became the only write an AI can make. It appends a suggested version and stops there. Nothing is live until a person accepts it, and the review queue shows the proposal rendered rather than described: the actual fonts, the actual logos, the actual colours, next to what is live now.

Alongside it, the anti-slop rules became something you can run before generation instead of after. The linter is client-side, so it steers the writing rather than only marking it.

A clean check is a floor, not a clearance

The pre-ship check now states what it did not look at, so a green result cannot be read as "ship it".

The check was working and that was the problem. It returned a clean verdict on a paragraph, and a clean verdict looks like permission. It was never permission. It had read some text. It had not seen the layout, the canvas the text would sit on, or whether the words it was handed were the words that would actually ship.

Every result now carries a coverage envelope: what was assessed, and what was not. A clean check on retyped copy says so. A check with no canvas passed to it says the canvas is unassessed.

This makes the tool less satisfying to use and more honest about what it knows. A check that overstates itself is worse than no check, because it moves the confidence without moving the correctness.

Edit your brand in the app

Every dimension got a real form, so a rule can be changed without hand-writing a brand file.

A brand you can only change by editing a structured file is a brand only one person can change. That person is always busy, so the rules go stale, and stale rules are read by an AI with total confidence.

Every dimension got a form. Colour has swatches. Type has a font uploader that converts what you give it into the web format and keeps the fallbacks honest. Lexicon has chips for the words you want and the words you have banned. Voice and exemplars take prose, several segments at a time.

Validation happens where the write happens, not on the screen. A field that would produce an invalid brand cannot be saved, and the error says which field and why. Content is rejected, never quietly corrected into something you did not write.

Fonts that would have been too large to embed now shed their least-used weights first, so a heavy family degrades in a chosen order rather than failing.

One check before you ship

Voice, claims and colour contrast collapsed into a single free call that runs no AI model.

Fetching your brand rules is not the same as obeying them. An AI can read your voice guide and reach for a word you banned three paragraphs later, because reading and complying are different acts.

So Setu got a gate. One call, run at the end, that audits what is about to ship:

  • Voice. Banned words, the em dash where the brand forbids it, register against the channel.
  • Claims. Superlatives, guarantees, health and financial statements, missing disclaimers.
  • Contrast. Every colour on every colour, with the WCAG ratio and a replacement when it fails.

The whole check is deterministic. No model runs, which is why it is free and why it gives the same answer twice. Setu does not pay to judge.

The tool surface shrank in the same release, from nineteen tools to nine. A model choosing between nineteen options chooses badly, and most of the nineteen were one idea split three ways.

A store, and a front door

Brands moved into a versioned database, and connecting an AI tool became a real sign-in.

Until now a brand was a file somebody edited and a server somebody redeployed. That works for one brand and fails at two.

Brands moved into a versioned store. Every change appends a new version rather than overwriting the last one, exactly one version is live at a time, and the numbering has no gaps. Rolling back is picking an earlier version, not restoring a backup. The engine stopped holding brand content of its own and started reading the store, so what an AI sees and what you see in the app are the same bytes.

Connecting a tool became a proper sign-in. Setu issues its own OAuth credentials, scoped to one brand, so authorising Claude for one brand does not hand it another. Access can be withdrawn.

The Tuner shipped in the same release: the studio-side surface where a brand is authored, reviewed and published, with the version history visible next to it.

June 2026

The Brand File gets its shape

Version 0.3 of the schema separated what a brand is from how it should be judged.

A brand file has to hold two different kinds of thing. There is the brand itself, which is voice and colour and type and the words you refuse to use. And there is judgment about the brand: which parts matter most for you, how mature each one is, how strictly to read a gap.

Mixing them made both worse. Version 0.3 split them. The anatomy holds the brand. The profile holds the judgment, and most of it is worked out rather than asked, because a form with forty questions about your own weighting is a form nobody finishes.

The same release dropped the industry presets. A preset guesses your brand from your category, which is the assumption the whole product exists to argue with.

One rule from this version has not moved since: a gap is stated, never filled. If Setu does not know your imagery rules, it says so. It does not write plausible ones and let an AI treat them as yours.

A brand, served to an AI

The first Setu server went up, holding one brand and answering questions about it over MCP.

Every brand already exists in writing. It sits in a PDF nobody opens, a Figma file two people can find, and the heads of the people who are busiest. When someone asks an AI to write a launch email, none of that is in the room, so the AI invents something plausible. That is where drift starts.

The first version of Setu answered one question: what if the AI could ask?

It held Devalok's own brand and served it over MCP, so a tool like Claude could request the voice rules before writing a sentence and the palette before choosing a colour. We tested it against ourselves first, on real studio work, judged blind against the same briefs written without it.

Two things shipped alongside it, and both survived everything since:

  • The anti-slop layer. A universal ruleset for the tics that make AI output recognisable, served to every brand. A brand's own rule overrides it on conflict.
  • Per-brand isolation. One deployment, many brands, and a token that can only read the brand it was issued for.