Skip to content
Scriptix LabsBeyond the Stack
Product studio · Beyond the Stack

We build our own software.
Then we build yours.

Most agencies show you a portfolio of other people's products. We ship our own — a Jira time tracker live on three browser stores, two zero-dependency libraries on npm, two apps in production. That same team takes on client work.

browser stores
3
browser stores
packages on npm
2
packages on npm
apps in production
2
apps in production
runtime deps
0
runtime deps
Pulse — time tracking for Jira Cloud
The Pulse dashboard inside Jira, showing hours logged today, a weekly target, an eight-week trend, and the day's worklogs
Pulse — one of ours. pulse.scriptixlabs.com

The stack we build on

  • TypeScript
  • React
  • Next.js
  • Node.js
  • Tailwind CSS
  • JavaScript
  • PostgreSQL
  • Supabase
  • Prisma
  • Redis
  • MongoDB
  • Vercel
  • Cloudflare
  • AWS
  • Google Cloud
  • Docker
  • Kubernetes
  • Atlassian Forge
  • Salesforce Commerce Cloud
  • Shopify
  • Magento
  • Jest
  • Playwright
  • Selenium
Open source

Two libraries on npm, zero runtime dependencies

We publish the pieces we kept rewriting. Both are typed end to end, tested in CI, and run identically on Node, browsers, and edge runtimes.

@ppabari/encryptix

v1.0.0

AES-256-GCM, ChaCha20-Poly1305, RSA-OAEP, ECDH, ECDSA, AES-SIV, envelope encryption, TOTP, streaming, and key rotation — one API across Node, browsers, and edge runtimes.

import { EncryptixClient } from '@ppabari/encryptix'

const enc = new EncryptixClient() // reads ENCRYPTIX_KEY from env

const payload = await enc.encrypt('user@example.com', 'user:email')
const email = await enc.decrypt(payload, 'user:email')
  • Zero runtime dependencies
  • AES-256-GCM, ChaCha20-Poly1305, RSA-OAEP
  • AES-SIV deterministic encryption for searchable fields
  • Envelope encryption with the DEK/KEK pattern

@ppabari/strio

v1.1.0

Bias-free tokens, prefixed IDs with checksums, memorable passphrases, pattern-driven codes, and expiring tokens — plus a CLI. Zero dependencies, fully typed.

import { generateId, generatePassphrase } from '@ppabari/strio'

generateId({ prefix: 'usr' })      // → 'usr_K3xP9mQr2L4Xc'
generatePassphrase({ words: 4 })   // → 'stone-river-proud-flame'
  • Bias-free generation via rejection sampling
  • Prefixed IDs with checksums
  • Memorable passphrases and patterned codes
  • Expiring tokens with an expiry timestamp
How we work

The standards we hold our own products to, applied to yours

We are a small studio, which means we cannot afford to work in a way that generates rework. These four rules are why.

  1. 01

    Architecture before the first commit

    Every project we run starts with a written architecture and data model. It is the cheapest possible time to find out the design does not work, and the document becomes the handover doc later.

  2. 02

    A narrow stack, known deeply

    TypeScript, React, Next.js, Postgres. We do not pick a novel toolchain per project, because depth in a few tools beats shallow familiarity with many — and it makes our estimates mean something.

  3. 03

    Shipped means shipped

    Not demoed, not on a staging URL. Through store review, on a real domain, with a rollback path. Our own products went through the same gates, including the ones that took three submissions.

  4. 04

    You get the keys

    The repository, the pipeline, the infrastructure, and documentation written for whoever maintains it next. No dependency on us as a support contract.

Where we work

Sectors we know well enough to be useful in

Not a list of every industry that exists — these are the ones where we've shipped something and understand the domain constraints.

Software & SaaS

Product companies shipping to their own users — where most of our work sits.

Retail & E-commerce

Storefronts, checkout paths, and the catalogue plumbing behind them.

Professional services

Teams billing by the hour, which is how Pulse came to exist.

Community & non-profit

Directories and member platforms, like RLBH Connect.

Finance & fintech

Ledgers, reconciliation, and the encryption posture they require.

Education

Portals and internal tooling for institutions.

Contact

Tell us what you're building

A few sentences is enough to start. If it's a fit we'll come back with questions and a rough shape; if it isn't, we'll say so rather than waste your time.

We reply within one business day.