Manifest
Five products, all real and still moving — no mockups, nothing finished.

- STATUS
- LIVE_CLOSED_BETA
- BUILT_FOR
- SMALL BUSINESSES / RETAIL
- STACK
- Next.jsTypeScriptPostgresVercel
Tag Hero
Design a tag once, connect your product list, and print the whole run — every label carrying its own name, price and code, straight from the sheet you already keep.
Small businesses end up doing this by hand: one label template, duplicated and retyped for every product, until a price changes and the whole sheet is wrong. Tag Hero splits the two halves apart. You lay out the tag once and drop dynamic fields into the design, then point it at a Google Sheet or a CSV and map the columns onto those fields. Every row becomes its own tag, and reprinting after a price change is a re-import rather than an afternoon.
- STATUS
- LIVE_CLOSED_BETA
- BUILT_FOR
- FOUNDERS / KNOWLEDGE WORKERS
- STACK
- .NET CoreNext.jsPostgresKubernetes
Pippet
Pick a style, tweak its personality and write your slides — Pippet hands you good design decisions instead of a blank canvas, and your AI can build the deck with you.
Presentation software makes everyone a graphic designer before they can write a single idea: a blank slide, a text box that will not line up, a font size nobody chose on purpose. Pippet starts from the other end. A deck takes a style — editorial, minimal, bold, or a personality dressed for the occasion — and the style owns the type scale, the margins and the palette, so the words are the only thing left to write. Arrange a slide by hand and it keeps your layout while still following the deck's colours and type. Pippet is also a remote MCP server, so Claude, ChatGPT or Cursor can stage a whole deck, with elements that morph from one slide to the next.

- STATUS
- LIVE_CLOSED_BETA
- BUILT_FOR
- ENGINEERING / PLATFORM TEAMS
- STACK
- .NET CoreNext.jsPostgresKubernetes
OrcaKey
Keep every secret and token in one place — organisation, project, environment — and let it reach GitHub, Vercel and Kubernetes on its own, instead of being pasted into each of them.
Secrets leak through the gaps between tools: a token typed into a CI settings page, a connection string copied into a chat thread, an .env file that four people hold four versions of. OrcaKey gives them one home — organisations hold projects, projects hold environments, environments hold secrets — and connectors project each value into GitHub, Vercel and Kubernetes, so where a secret is kept and where it runs stop being different places. It is encrypted at rest and in transit with an audit trail behind every read, and the encryption boundary, the tenant boundary and that trail all land before the first endpoint that hands back a secret, because none of the three can be retrofitted. It is running at orcakey.sh now, on invitation rather than sign-up.
- STATUS
- ALPHA
- BUILT_FOR
- LANGUAGE TUTORS / LEARNERS
- STACK
- .NET CoreNext.jsPostgresKubernetes
Tutable
Meet your tutor in a live classroom built around a shared page — every word they correct becomes a flashcard you keep, and the lesson carries on long after the call ends.
Most online lessons are a video call and a document nobody opens again: the tutor fixes a sentence, the learner nods, and the correction is gone by next week. Tutable puts both people on one canvas. The tutor drives — switching between the board, a shared dictionary, sentence assembly and a Speed Match round — and every correction is diffed word by word and dropped straight into the learner's spaced-repetition deck. Around the classroom sit the parts a tutor actually runs a practice on: a lesson studio, bookable hours, bundles sold through Stripe, and a directory where learners find them.

- STATUS
- LIVE
- BUILT_FOR
- SELF-HOSTERS / PLATFORM TEAMS
- STACK
- .NET CoreNext.jsPostgresKubernetes
Kaisin
Install it into a Kubernetes cluster you already own, connect a Git repository, and deploy — builds, domains, TLS, databases and a preview environment for every pull request, without writing a Deployment or an Ingress by hand.
Renting a platform is comfortable right up to the point where the bill, the region list or a data-residency rule stops matching the business — and owning the cluster instead gives you every primitive and none of the experience. Kaisin closes that gap from the inside. It builds your repository in an isolated Kubernetes Job with rootless BuildKit, keeps the image in a registry running in your own cluster, and then reconciles the cluster toward the state you asked for, so the Deployment, Service, route and certificate all exist without you writing one. A pull request can take its own namespace, hostname and build, and hand all three back when it closes. Every deployment records its commit, image and digest, which is what turns a rollback into a re-point rather than a rebuild. The platform experience, on hardware you already pay for.

- STATUS
- IN_DEVELOPMENT
- BUILT_FOR
- PUBLISHERS / BRAND TEAMS
- STACK
- .NET CoreReactPostgresKubernetes
BarkPublish
Plan, approve and publish your brand’s content from one place — the assets, the campaign, and the people who sign it off, all in the same workspace.
Most teams run their content out of three tools that do not speak to each other: a drive full of assets, a spreadsheet of deadlines, and a chat thread where approval quietly happens. BarkPublish collapses that into one workspace, so the asset, the campaign it belongs to, and the person who signed it off are never more than one click apart.
Built on modern primitives, chosen because I have worked with them extensively rather than because they were new: .NET Core services on Kubernetes, React and Tailwind on the front, Postgres underneath.