Custom software · Workflow automation · Brand · Growth

We build the system, then the demand that fills it.

Most of what follows is something you can open and check yourself, in this browser, before you ever speak to us. That is deliberate.

Custom software · Workflow automation

The part of your business that still runs on someone remembering

A weekly report that a person runs, reads, and turns into messages by hand. A queue that only moves when somebody opens it. A rule that lives in one employee's head and leaves when they do. We rebuild those as systems.

  • The hard part is the deciding, not the sending

    Anyone can generate a thousand messages. Knowing who is supposed to receive each one — and being able to prove that answer before anything leaves the building — is the work.

  • It refuses to guess

    When the data cannot answer who owns a row, the system does not pick the nearest plausible person. It puts the row in a named queue with a reason attached, and that list goes to whoever owns the data.

  • It runs at full scale before it touches anyone

    Every outward message computes its real recipient, shows it, and then deliberately does not use it — until you personally flip the switch. You watch it work on your own data first.

Rows in, one decision, two exits — and the exit nobody builds is the one on the bottom.

Built by KORYSE

Things we made, not companies that hired us

The usual version of this band is a row of client logos. We would rather show you the work. Every entry below is something that exists on disk, with the kind of proof we could actually put in front of you named beside it.

  • live

    KORYSE CRM

    The pipeline system KORYSE runs its own business on: prospects, an append-only activity trail, and the Lead Scout discovery and enrichment pipeline behind it.

    What we can show youRunning production system with a versioned release history and a schema file proven to reproduce production exactly.

  • live

    koryse.com

    This site: the Smoked Glass design system, coded end to end, with every visual drawn in SVG and CSS rather than shot or bought.

    What we can show youThe page you are reading. Every claim on it is checkable in the browser you are already using.

    Open it
  • in development

    Paperdrop

    Drag an invoice or receiving document in and it comes back read, checked by a person, filed under a permanent reference code, and searchable for good.

    What we can show youScroll-driven product story on this site, a product overview deck, and a standalone HTML walkthrough.

    Open it
  • in development

    Tapback

    The fourth receipt option at a checkout counter: tap the phone, the receipt appears — no app, no email address, no phone number, no typing.

    What we can show youCoded concept register screen on this site, plus a full architecture and phase plan.

    Open it
  • live

    Lead Scout

    An evidence-first prospecting pipeline: nothing enters the list without a screenshot of the problem it is being contacted about.

    What we can show youRunning inside KORYSE CRM, with dated sweep logs and per-prospect evidence screenshots on file.

    Open it
  • delivered

    Follett

    Weekly open purchase-order follow-up, rebuilt as a routed system that reaches the store which can act on the order instead of a report that goes up the management chain. 248 stores that could not be routed to an owner at the data gate were worked down to zero.

    What we can show youA build log with pinned expected-versus-actual assertions at every phase gate, a routing decision recorded for all 1,074 stores, and the routed columns read back from the live directory rather than trusted from the write.

  • delivered

    Humber campus store (operated by Follett)

    A full click-through QA pass of a live campus bookstore storefront, run against the real site with test data only.

    What we can show youA written QA report of ten findings graded by severity, each reproduced by driving the live site, plus a bug tracker the client's team can work from.

  • in development

    Coconut Dates Daal

    A manual meal-subscription business run entirely through one messaging number, rebuilt as a customer ordering site with an admin side for menus, prep sheets, delivery runs and invoicing.

    What we can show youA client proposal document, wireframes, three interactive standalone prototypes, and a built phase-one website.

  • delivered

    Build 4 Outdoors

    A finished social post pack generated from the client's own before-and-after job photos by a script they can re-run themselves whenever they swap the photos.

    What we can show youTen static before-and-after posts, ten animated reveals and a three-panel carousel, plus the generator script that produced them.

  • in development

    Program Sweater group-order tool

    A white-label group-order portal for branded program apparel: students sign up individually, staff take payment and export the vendor order form, one campaign at a time.

    What we can show youA running application with separate public, staff and admin surfaces, and a verification stack checked in beside it — unit tests written before the code, a mutation battery, a static-analysis pass and driven browser tests.

  • delivered

    ScaleDaddy

    The complete operating documentation for a growth consultancy: positioning, pricing, sales system, operations handbook and a signed-ready legal suite.

    What we can show youSix document sets covering strategy, business foundation, sales, service pricing, operations and legal — including a master service agreement, statement of work, NDA, data-processing agreement and contractor agreement.

Entries with no link are behind a client's sign-in, delivered into a client's own systems, or not finished. We would rather say that than link you to a page that does not exist.

Operate it yourself

Everything below is a thing you can go and use right now

Not a screenshot, not a walkthrough video, not a case-study PDF. Open one in a new tab, do the thing in the "try this" line, and decide for yourself whether we can build.

  • Watch a document get filed

    Try thisScroll the story section and watch the stage change under you — the pile, the drop, the read, the human confirmation, the stamp — six beats, each one a different coded panel.

    That KORYSE builds explanations out of working code rather than a voiceover over stock footage.

    NeedsA viewport of 768px or wider, with reduced-motion not requested. Below that width, or with reduced motion on, the same six beats render as a plain readable column — the content is never withheld, only the motion.

  • Watch a brand assemble itself

    Try thisScroll the chapter and watch the wireframe build: a mark, then a system, then a site, then a presence — the paths draw themselves as each beat arrives.

    That the service is described by showing the work happening, not by listing deliverables.

    NeedsA viewport of 768px or wider, with reduced-motion not requested. Otherwise it collapses to a single readable column carrying the same beats.

  • Watch a broken process get rebuilt

    Try thisScroll the chapter and watch the tangle of manual steps resolve into one system, beat by beat.

    The workflow-automation wedge, shown rather than claimed — this is the category a commerce agency does not compete in.

    NeedsA viewport of 768px or wider, with reduced-motion not requested. Otherwise it collapses to a single readable column carrying the same beats.

  • Watch a pipeline fill

    Try thisScroll the chapter and watch the line rise as each growth beat lands.

    That the growth story is drawn from a described method, with no results figures attached to it.

    NeedsA viewport of 768px or wider, with reduced-motion not requested. Otherwise it collapses to a single readable column carrying the same beats.

  • Try to break the contact form

    Try thisType an obviously wrong email address and move to the next field. The form names the problem on that field before anything is sent, and it does the same for an empty name, an unselected service and a too-short message.

    That validation here is real logic with its own unit tests, not an HTML attribute that sets a flag nobody reads.

    NeedsJavaScript enabled. With JavaScript off the form still submits and is validated by the receiving service; the inline field errors are the enhancement.

The case study

Open PO follow-up, automated across 909 stores

A weekly purchase-order chase that took 31 minutes and reported up the chain, rebuilt to reach the store that can act — and 248 unroutable stores taken to zero.

ClientFollettStatusdelivered

248 → 0

stores that could not be routed to an owner — at the phase-1 gate, and at handover

Read the whole engagementthe constraint, the routing, the exceptions, and where it stands today

Most process automation fails in the same place. Not the sending — the deciding. Anyone can generate a thousand emails. The hard part is knowing, for each one, who is supposed to receive it, and being able to prove that answer is right before a single message leaves the building.

The problem

The client, Follett, chases open purchase orders every week. Someone runs a report, works through it, and asks the stores with outstanding orders what happened to them.

The version we inherited did work. It also took 31 minutes to complete a run, because it wrote back to the source system once per purchase-order line, and there are a great many lines.

The deeper problem was direction. The report went up the management chain rather than out to the stores, so the person who could actually resolve an open order was not the person receiving it.

The constraint

Two rules were fixed before any code was written, and neither was ours to relax.

No per-PO-line writes anywhere. The 31 minutes were not a performance nuisance to be tuned later; they were a design verdict on the previous architecture. The rebuild was not allowed to write per line at any point, which ruled out the obvious implementation and forced the run to be shaped around bulk reads and a single queue row per run.

Every email goes to one test address until the client flips the switch. The real recipient is computed for every message, shown inside the body of that message, and then deliberately not used. The system runs at full scale against real data and delivers nothing to a real store until a person makes that decision explicitly.

That second rule is the one worth stealing. It means the question “does the routing work” gets answered by looking at a thousand real messages, not by trusting a diagram.

What was built

A routing layer, then a run engine on top of it.

The routing layer resolves, for every store, which named person owns it — and refuses to guess. The directory it was built against holds 1,074 stores, of which 826 carried a routable marker when the phase-1 data gate was measured, alongside a 162-person responsibility chain.

Only 50 of those 162 people had a verified contact status at that same gate. The gate required at least 50 and logged the actual figure, which was exactly 50 — so it passed on its floor, with no margin. That number is in this case study because it is where the work started, not where it finished: by handover the chain stood at 153 known of 162, with one probable and eight people confirmed to have left.

Every gate in the build worked the same way: a pinned expected value, the actual value measured against live data, and a halt if the two disagreed. One of them did disagree — a file-size assertion that could never have been satisfied, because the platform rewrites the file on upload. The build stopped rather than proceeding past a failing check, the assertion was rewritten to test the thing it had actually been trying to prove, and the revised criterion was approved by the plan’s author before the run continued.

What it produced

A weekly sweep of 909 stores, in which every store has a resolved destination.

The headline is the one number that moved furthest. 248 stores could not be routed to an owner when the data gate was measured. At handover that number is zero, and 881 stores reach a named person, up from 826.

That did not happen by loosening the rule. It happened by working the exceptions one at a time, and the breakdown is the part worth reading.

55 of the 248 had a market leader or a regional manager recorded even though the store-level owner was blank. Those were routed to the manager who already owned them, which is the whole of the 826 → 881 movement.

193 had nobody at any of the three levels — not a missing address, a missing owner. Those were classified by what the store actually sells: 28 sell course materials and now receive their own report at the store’s own mailbox instead of via a manager who does not exist, and 165 do not sell course materials at all and are excluded from the sweep entirely rather than being mailed something irrelevant every week. That exclusion is why the sweep covers 909 stores and not 1,074.

Classification was not done by keyword alone. The obvious cases went by category, and the 101 stores that were not obvious were researched individually against store and university websites, with the finding and its source recorded per store. It changed real answers: two of them turned out to sell course materials despite having no owner assigned at all, and one was excluded on the client’s own rule that online book sales generate no purchase-order follow-up — an online-only textbook brand that no longer trades.

Routing them is not the same as fixing them, and the difference was written down rather than smoothed over. 21 of those ownerless stores are still trading and still have nobody at any level — not a separate group, a named subset of the 193 above — and they went back to the Store Directory owner as a list, each with its retail market leader and regional manager as a starting point. They are routed today and they are still a data problem, and the data problem belongs with the people who own the data.

Those 21 stores also surfaced a hole nobody had asked about: because the app resolves a runner’s scope by matching against the store’s own manager fields, a store with all three fields blank matches nobody and cannot be selected from the interface at all. Picking it by hand is not a fix either — if no one owns a store, no one thinks to select it. So the ownerless stores ride along automatically on every full run instead.

None of this was accepted on the strength of a spreadsheet. The routing columns were written to the live directory and then read back to check them — all 1,074 rows populated with no errors, no blank routing decisions, no store queued to send without a destination, and no address outside the client’s own domain.

Where it stands

Delivered and handed over, still in test mode. Every one of those 909 stores has a computed destination, and not one of them has been emailed, because the switch that turns real delivery on belongs to the client and has not been flipped.

If your process looks like this

You have one of these if a weekly report gets run by a person, read by a person, and turned into messages by a person — and if the answer to “who should get this one” lives in somebody’s head rather than in a column.

The work is rarely the sending. It is establishing that the routing is correct, in writing, before anything sends. That means a directory that can be checked, a rule for every case the directory cannot answer, a named list of the cases no rule can answer, and a switch that keeps the whole thing pointed at a test inbox until you personally decide otherwise.

Facts you can check

Numbers with a source, and things you can verify in this browser

Every figure here was read out of a file from real delivered work, and there is no on-time percentage or return-on-spend figure anywhere on this site because nobody ever measured one. Most agencies ask you to trust them. We would rather you checked.

  • 248 → 0

    stores that could not be routed to an owner — at the phase-1 gate, and at handover

  • 909

    stores in the weekly sweep, every one with a resolved destination

  • 881

    of them reaching a named person, up from 826

  • 153 of 162

    people in the responsibility chain with a verified contact, up from 50

Read from Follett's own build log and directory exports during the engagement.

  • Nothing on this page phones home.

    No analytics vendor, no advertising pixel, no third-party tag, no cookie banner — because there is nothing to consent to.

    Check itDevTools → Network → reload → every request is either this domain or the Google Fonts files.

  • The security headers are ours and you can read them.

    HSTS, a hash-based Content-Security-Policy with no unsafe-inline, and the standard hardening set. We are not quoting a third-party grade.

    Check itDevTools → Network → click the document request → Response Headers.

One more, stated once rather than argued: every visual on this site is code. The hero is a rendered scene, the diagrams are drawn in markup, and there is no stock photography or footage anywhere on the domain.

The method

We do not have a badge. We have a method you can argue with.

Four stages, and each one ends in something you can hold us to. This is how the work in the case study above actually ran, not a diagram drawn afterwards.

  1. Audit — count it before you believe it

    Before anything is designed, the current process is inventoried against its own data rather than against how it is described. Most of what a first meeting establishes turns out to be untrue in a way nobody was hiding.

    You will get the real shape of your process in writing, including the parts that contradict what you told us.

  2. Build — gates, not milestones

    The work is cut into phases, and each phase ends at a gate: a list of pinned expectations re-measured against live data. A gate that fails stops the build rather than becoming a note in a status report.

    Nothing moves to the next phase on someone's judgement that it is probably fine.

  3. Run — full scale, aimed at nobody

    The system runs against real data, at real volume, with every outward action redirected to a test destination — and stays that way until you personally decide otherwise.

    You will watch it work on your real data before it can touch a single one of your customers.

  4. Refine — the exceptions are the deliverable

    What the system cannot handle gets named, listed and handed to whoever owns that data, instead of being absorbed into a default that hides it. A fix counts when the check that failed passes again.

    You get the list of what did not fit, with a reason per row — not a system that quietly guesses.

What we do

Build the brand. Wire the systems. Grow the revenue.

Three categories and two named engagements — the brand that gets you taken seriously, the systems that run the work, and the demand that grows it.

  • Build Your Brand

    An identity, assembled.

    A mark, a voice, a site and a presence that hold together, instead of a business that looks improvised.

    Read the page
  • Business Solutions

    A system that does the busywork.

    Automations, integrations and internal tools built around how the work already runs — so the repetitive parts stop needing a person.

    Read the page
  • Grow Your Brand

    Demand that turns into revenue.

    Ads, content, search and follow-up that fill a pipeline, and a process that keeps warm leads from going cold before the sale.

    Read the page
  • CRM Dashboards

    One dashboard your team actually opens.

    Pipeline status in one place, scoped to how your team sells, rather than a platform default nobody trusts.

    Read the page
  • Lead Conversion

    Every lead gets worked while it's still warm.

    Follow-up run as a process rather than a mood, so an enquiry does not sit in a shared inbox until somebody has time.

    Read the page

Who this is for

You will recognise one of these

We are not going to guess your industry at you. These are the three shapes of business this work fits, described the way you would describe them.

  • The follow-up is done by whoever gets to it

    Enquiries arrive faster than anyone can work them, so they wait. By the time somebody calls back, the person has already spoken to whoever answered first. Nothing is broken, exactly — it is just that nobody owns the next step.

  • The whole thing runs out of one inbox

    Orders, questions, changes, invoices, the standing weekly job — all in one thread, held together by one person who knows what is outstanding. It works right up until that person takes a week off.

  • The software does not match how you actually work

    You bought the platform everyone recommended and now half your process lives in spreadsheets beside it, because the tool has opinions about a business that is not yours.

Our own products

What we build when the client is us

These are not case studies and they are not shipping yet — each one says exactly where it stands. They are here because the fastest way to judge a firm's software is to look at the software it writes for itself.

  • Paperdrop

    in development

    Drag an invoice or receiving document in and it comes back read, checked by a person, filed under a permanent reference code, and searchable for good.

    See it
  • Tapback

    in development

    The fourth receipt option at a checkout counter: tap the phone, the receipt appears — no app, no email address, no phone number, no typing.

    See it
  • Lead Scout

    live

    An evidence-first prospecting pipeline: nothing enters the list without a screenshot of the problem it is being contacted about.

    See it

FAQ

Common questions, answered directly

How does pricing work?

Pricing depends on scope — a lead-conversion engagement, a CRM dashboard build, or both. After a first call, you get a fixed proposal for what you actually need, not an hourly guess.

What's the timeline?

Timelines depend on scope and how quickly we get access to your current tools and data. You get a specific schedule after scoping, not a generic promise up front.

Do you require long-term contracts?

No open-ended retainers by default. Engagements are scoped to an outcome — a dashboard build, or a lead-conversion engagement you can revisit on a schedule that fits your business.

What tools do you work with?

We build on the CRM and lead sources you already use, or help you choose one if you don't have one yet. Dashboards are built around your process, not a platform's default template.

What happens on the first call?

We ask how leads currently reach you, where they stall, and what your team's day-to-day sales process looks like. You leave with a clear next step, not a pitch.

Do we have to switch CRMs to work with you?

Usually no — we build the dashboard on top of what you already run. If your current tool genuinely can't support what you need, we'll say so plainly before recommending a change.

Free lead-flow audit

Get a plain review of how you're handling leads today

We look at how leads reach you and what happens after they do, then send you what we find — free, no pitch deck required to get it.