We understand selling. The software does the running. My accountContactDocs
Sokocode · WordPress plugins · first release in build

We understand selling. And how to build the stack for it.

Twenty years of engineering behind the code, and a shop of our own that taught us what the software was costing us. One subscription with everything in it — no cut of your money, and the person who answers your email wrote it.

AI-first, and agentic — every plugin ships with two agents: one facing your customer, one facing you.

You know the pattern. The plugin does eighty per cent, and the last twenty is four add-ons at $49 each. Twelve plugins from twelve vendors, so the Tuesday one of them updates is the Tuesday checkout breaks. And the day a licence lapses, a plugin that switches itself off and takes your shop with it. We are building the plugin company that refuses all of it — in public, before we have sold anything.

Refusing things is only half of a company. We have run a business that lives on its diary, so we build for the week you actually have — priced monthly so you can start long before you can afford a year, and set up with you, on a call. We stay on the line until it is running.

Nothing has been sold yet. Every number here is countable in the repository, and the things that are not built say so.

What we make
Kavita — bookingsAppointments, staff, payments and reminders.
Launched
CouponsDiscounts that do not need a second plugin.
Coming
SubscriptionsRecurring payments and memberships.
Coming

And more after that. We build fewer plugins, deeper.

sokoSwahili · market

The name

A market is the oldest software there is.

Sellers, buyers, and a set of rules everybody trusts enough to turn up for. It works when both sides leave happy — the seller who got paid on time, and the customer who got exactly what they came for. Everything a market needs is what a business needs: know who is coming, hold the goods, take the money cleanly, and be there when something goes wrong.

Sokocode is the code that runs that market for you. Not a plugin that stores a booking — the rules, the money and the follow-up, so both sides of your counter walk away wanting to come back.

The seller gets paid

Money taken cleanly and confirmed before anything is marked done, invoices that survive an audit, and not a rupee of it skimmed by us. Whatever you sell, the gap between a customer deciding and the money actually arriving is where most of it goes missing.

The buyer gets what they came for

No account to create before they can do the thing they came to do. No dark pattern hiding the way out. A page that works on the phone they actually own, and the freedom to change their mind at eleven at night without having to speak to anybody.

And the rules hold

Guarantees the database enforces, not conditions the code remembers to re-check. Careful code buys you “usually” — and a market where the rules only usually hold is a market people quietly stop coming to.

More than software

We understand the business. We will help you run it.

Most plugin companies have never run the business they sell to. We did — badly, at first, with a diary full of holes and a number we could name to the rupee every month. That is a different starting point from a feature list, and it shows up in what the software does when you are not looking at it.

We know what a week actually looks like

The customer who did not turn up. Two people sold the same thing. The three evenings lost to setup. The payment that cleared while the order never did. We build for the gaps between the features, because that is where the money actually goes — not for a comparison table.

The software does the running, not you

It notices things. It chases the ones worth chasing and closes the loop on its own. It tells you each morning what needs a decision and what is already handled — before the day starts, and without being asked.

Great UX is a refusal, not a coat of paint

Every screen hides what your data says you do not need, so nothing arrives switched on and half-set. Competing plugins are cluttered because nobody ever said no to a feature. Saying no is most of the design work.

Smooth to run, on purpose

Fifteen minutes from install to live, because sensible defaults arrive already filled in and tax arrives configured for your country. The parts that stop the software being wrong are on before you touch a single setting.

We will set it up with you

A migration is a call, not a support ticket: we sit on the dry run and read the report with you. No charge, and no sales pitch at the end of it. The fastest way to learn what a business needs is to watch somebody set one up.

And we are here for the boring years

WordPress core moves, PHP versions retire, and payment providers rewrite their APIs without asking you. That unglamorous work is most of what a licence actually pays for, and it is the part a company has to still be around to do.

Why we are different

Nine things that go wrong with WooCommerce plugins.

None of these is a bug. They are all business models — decisions somebody made on purpose, which is why complaining about them never changes anything and building differently does.

What usually happensWhat we do instead
The plugin does eighty per cent. The last twenty is four add-ons at $49 each.One subscription, everything in it. There is no module to buy for payments, coupons, custom fields or reminders.
Twelve plugins from twelve vendors, so the Tuesday one of them updates is the Tuesday checkout breaks.Fewer, deeper plugins from one team that tests them against each other before you do.
“Please deactivate all other plugins and try again.”The engineer who wrote the code reads your message, 24×7, with the source open. There is no tier one.
Renewal was half price the first year. It is not any more.No permanent fake discount. When we discount, the offer carries a real end date, and the price you saw is the price.
The licence lapses and the plugin switches itself off, taking your shop with it.Expiry never breaks your site. Bookings, payments and reminders carry on. You lose updates and support, not your business.
Every plugin loads its own CSS and JavaScript on every page, whether the page uses it or not.No framework, no build step, nothing fetched at runtime. The wizard brings one stylesheet and loads where it is used.
The plugin gets sold to a portfolio company, and the updates stop.Fifty-five dated releases, and a page listing what is not built. You can see the pace before you buy.
Forty settings to configure before anything works.Defaults over settings. A feature is implied by your data, never by a toggle — a one-person business is never asked to pick a practitioner.
They take a cut of every transaction, on top of the gateway's.Zero fees, forever. Money moves between your gateway and your bank without passing through us. There is nowhere for it to pass through.

What you are actually buying

Seven words every plugin page uses. Here is what ours mean.

Support, AI, performance, price, design and security are on every software page ever written, which is exactly why they have stopped meaning anything. Each one below says what it is, specifically enough that you could hold us to it.

Stellar support, with an SLA behind itNot a first-reply target — an autoresponder meets one of those. A published resolution target per plan, same day on anything critical, and the reply comes from whoever wrote the code. There is no tier one, because there is no tier two.Same day on critical
AI-first, and honest about itAn agent on the booking form that fills it rather than chatting, and a copilot in the admin that plans, asks, then acts — every write audited and undoable. Claims are verified in code, not in a prompt: it cannot state a price a tool did not return.Audited · undoable
Fast, because of what is not thereNo framework, no build step, one stylesheet, and nothing loaded from a remote host at runtime. Availability is decided by indexed queries rather than loops in PHP, and the admin’s daily brief is counts, not a model call.No remote requests
Affordable, and priced on the right axisPriced on practitioners, not domains — the number that means something about your business. A real rupee ladder for India rather than a converted one, a free plan that takes real payments, no add-ons and no cut of your takings.Free tier takes money
Great UX, because somebody said noA five-step wizard that hides what your data says you do not need — a one-person business is never asked to pick a practitioner. Competing plugins are cluttered because nobody ever refused a feature. Accessibility and mobile are not a later phase.Defaults over settings
Monthly, so you can actually startEvery competitor sells a year up front. ₹6,999 in one payment is a real barrier for a business that has not taken a single booking on it yet. Start at ₹299 a month, stop whenever, move to yearly when it is earning — and get two months free when you do.No lock-in
Security that is structuralParameterised SQL, a nonce and a capability check on every action, output escaped at the point of use, and the server recomputes every amount — the client only names a coupon or a card, never a price. Gateway signature schemes are pinned by known-answer vectors.Server owns the money

What we build

One plugin shipping. Two named, and honestly labelled.

sokocode · renewals
Recurring billing, and what happens when it fails
Pre-debit notice sent24 hours, as RBI requires
Card declinedretry 1 of 4 · in 3 days
Customer emailedwith a one-tap fix link
Dunning that assumes a renewal will fail sometimes, because in India it does.Planned
Kavita
v0.55Booking64 capabilities

Appointments, end to end

Multi-practitioner scheduling, thirteen payment gateways, GST invoicing, two-way WhatsApp, deposits, packages, events, clinical notes, outcome tracking, an AI agent on the booking form and a copilot in the admin. Sixty-four capabilities, thirty-three industries, and a free plan that takes real money.

Coming nextnot started

What comes after it

Coupons & discountsplanned

Discount rules a shop owner can build without a developer — tiered pricing, buy-one-get-one, cart conditions, first-order offers and referral attribution. Every scheduled offer takes an end date, because a company that refuses permanent fake discounts should probably ship the tool that makes them expire.

Subscriptionsplanned

Recurring billing for WooCommerce, including the parts Indian sellers actually hit — RBI e-mandate rules, pre-debit notice, tokenised cards, and dunning that assumes a renewal will fail sometimes. The equivalent extension elsewhere is $199 a year.

Neither has been started, and neither has a date. They are named here because a plan you can hold us to is worth more than a wall of tiles saying coming soon. When one exists it appears here with a version number and a changelog, the same as the first.

The covenant

Eight things every Sokocode plugin promises.

These are not features, they are refusals — and they apply to everything we build, whatever it does. When the products have nothing in common, this is what does.

A promise made after the money has changed hands is a marketing message. Made before, it is a constraint.

No add-ons

One subscription with everything in it. There is no module to buy for payments, none for reminders, none for the feature you assumed was included. One invoice a year.

No cut of your money

We sell a licence, not a percentage. Money moves between your gateway and your bank without passing through us — which is also why we could not take a cut if we wanted to.

Never gated

Whatever stops the software being wrong is free in every plan, including the free one. A cheaper tier that can corrupt your data is not cheaper. It is broken.

Your data never reaches us

Everything is self-hosted, on your WordPress, on your server. No telemetry, no analytics beacon, no remote script at runtime. Our plugins do not phone home.

An SLA on the fix

Not on the first reply — an autoresponder meets a first-reply target. Same day on anything critical, on every paid plan, from the engineer who wrote the code.

Thirty days, money back

No questions, no exit interview, no form with a dropdown of reasons. Longer than anyone we compete with, because a month of real use is what it takes to know.

Expiry never breaks your site

When a licence lapses the plugin carries on exactly as before. You lose updates and support, not your business. We will never ship an update that holds your site hostage.

No permanent fake discount

Every plugin shop in this market runs “normally $499” with no end date. When we discount, the offer has a date on it and the date is real.

AI-first, structurally

Two agents in every plugin. One for your customer, one for you.

Everyone shipped an AI button this year. Almost nobody published what theirs is not allowed to do. We build every plugin agent-first — the REST route comes before the screen, so anything a person can do, an agent can do too — and the rules below apply to all of it.

Facing your customer

It answers in plain language and then does the thing — fills the form, finds the slot, applies the code. Presented as a search box rather than a chat bubble, because a bubble is trained as support and invites exactly the questions it must refuse.

Never invents a price
same rules

Facing you

Ask for it in a sentence and it plans, checks with you, then acts — the bulk reschedule, the price change, the export. Every write audited with who asked and what they said, and every one of them reversible.

Never acts unapproved

It never states what a tool did not return

Every time and money figure in a reply is extracted and checked against what a tool actually returned. The guardrail is in the code, not in the prompt — a prompt guardrail fails silently the day somebody swaps the model.

It cannot exceed the person asking

Capability is checked per tool, against the operator. An agent can never do something its user could not have done by hand, which makes the blast radius the same as the login.

It plans before it writes

Nothing irreversible happens without a human approving the plan first. Ambiguous names return a list rather than a guess, and bulk operations are capped.

Everything is undoable, and audited

Each operation is remembered so it can be reversed, and every write records who asked and what they said. An agent you cannot undo is a liability with a chat window.

Off means invisible

Switched off, an agent renders nothing at all — never an error, never a greyed-out box with an upgrade prompt. The product works without it, or it is not a product.

Your model, your key, your data

Bring your own provider. Nothing reaches a model unless you turn it on, and none of it passes through us — there is nowhere for it to pass through.

Nothing is trained on your data

Your bookings, your customers and your notes are never used to train anything — not by us, because we never receive them, and not by the provider you chose, because that is a setting you control on your own account.

It hands over rather than guesses

When it is not sure it says so and passes you to a person. An agent that would rather be wrong than silent is the one that costs you a customer, and confidence is the cheapest thing a model produces.

The question worth asking is not what the AI can do. It is what happens when it is confidently wrong at 8pm on a Friday.

Try the one on this page

The agent in the corner is ours, running every rule above. It answers from the documentation, routes you to the right page, and hands you to an engineer the moment it is not sure rather than inventing something plausible.

Or see both of Kavita’s

A booking assistant that fills the form for your customer, and an admin copilot that plans, asks, then acts for you. Plus a third that uses no model at all, which is the one that speaks first.

1plugin, so far
55releases, every one dated
200+automated checks
10years of engineering
670+projects shipped
15countries

No customer count, no star rating, no trusted by 100,000 businesses — because nobody has bought anything yet, and a badge you cannot back is the cheapest thing on any software page.

Why we exist

We were the customer first.

Not a market study. Not a gap in a category matrix. We paid for software to run a working practice, it lost money every morning, and when it broke the answer was a ticket queue and four days of silence. Every refusal above is that experience turned into a rule.

How we build

Ten rules we actually follow.

When the products have nothing in common, the method is the quality guarantee.

The customer’s experience comes first

Every feature earns its place in the screen your customer sees and the screen you work in. Competing plugins are cluttered because nobody ever said no. We say no.

A feature is implied by data, never by a toggle

The practitioner step disappears below two practitioners. The coupon box appears when a live coupon exists. If the software can work it out from your data, it should not be asking you.

Prefer deleting to adding

The best version of a change removes a branch rather than adding one. The smartest solution is almost always the shortest correct one, not the most general one.

Guarantees belong in the database

Constraints the database enforces under its own locking, not conditions PHP re-checks afterwards. A unique index makes a thing impossible; careful code only makes it unlikely.

Security is structural, never bolted on

Parameterised SQL, a nonce and a capability check on every action, output escaped at the point of use, and money recomputed on the server every single time.

Abstract on the third case, not the first

No interface with one caller. Two similar things are a coincidence; three are a pattern. Building the abstraction early is how a codebase becomes elaborate before it becomes useful.

Make a wrong assumption visible

A guard that fails loudly beats defensive code that hides the problem. The importer refuses by name when a column is missing rather than importing nothing and calling it success.

Reuse a setting before inventing a second one

Two settings that mean the same thing will disagree eventually, and the person who has to work out which one won is you, at the worst possible moment.

Say what is not built

Roadmap items are labelled as roadmap, and there is a page on this site listing what has never run in production. We would rather tell you than let you find out on a Tuesday.

Refuse the tempting things

Some features sell well and should not exist. No symptom triage, no dark patterns in a cancellation flow, no add-on shelf. Saying no to those is most of what makes the rest trustworthy.

One account

Every licence, one login.

Everything we ever release lands in one account, on one licence, at one price. Buy a second plugin and it lands in the account you already have — same invoice, same renewal date if you want it, same engineer answering. No second shop, no second password, no second support address.

sokocode · account · licences
Kavita — Teamactive · renews 4 Sep 2027
5 domains2 in use · manage
Your next pluginnot released
All licencesone invoice

Nobody can buy this yet.

Leave an address and you get one email when the first plugin ships and one when the pricing is final. Not a newsletter, and never a drip sequence.

Two emails, then nothing. We do not sell lists.

Start somewhere

The one thing you can use today is Kavita.

Appointments end to end, on your own WordPress, free for one practitioner with no card and no clock. Every promise on this page applies to it.

30-day money backNo booking fees No paid add-onsExpiry never breaks it
Kavita — free until you hire somebodyStart free
Our first plugin: Kavita — bookings and appointmentsTake a look