Web, mobile & desktop software. Pick what you need. One small studio across the stack, so the front end, the API, and the deploy fit together. 01 Front end ↓ jump 02 Back end ↓ jump 03 Mobile ↓ jump 04 Desktop ↓ jump 01 / FRONT END Front-end development that survives the second feature. Type-safe by default. Componentized so it doesn't ossify. Performance budgets held to in CI. Product UIs react · next · svelte Customer-facing apps. Accessibility and i18n are first-class. The performance budget holds. Design systems tokens · primitives · docs Versioned package, documented components. One token layer for theme, density, and brand. Internal tools forms · tables · workflows The boring software that runs your company. Fast, keyboard-first, and not miserable to use. Marketing sites ssr · static · cms Fast by default. Editable by non-engineers. Shipped on push. React Next.js Svelte TypeScript Tailwind // 01 → 02 · interfaces meet systems › 02 / BACK END Back-end systems that prefer to be boring. Postgres-first. Idempotent jobs, well-typed boundaries, observable from day one. APIs & services rest · typed clients Versioned contracts and generated clients. Types that hold at the boundary. Data modeling postgres · schema · migrations Schema-first, migration-aware. We say "let's normalize that" without irony. Pipelines & jobs queues · workers · cron Long-running, scheduled, retried. Idempotent, because production is rude. Deploy & edge cloudflare · workers · ci Push to deploy, a preview per branch, rollbacks in one command. Rust Node TypeScript Postgres SQLite Cloudflare GitHub Actions // 02 → 03 · server meets device › 03 / MOBILE Mobile apps: one codebase, two stores. Cross-platform, with native modules only where the experience earns them. Cross-platform apps react native · flutter Shared logic, native primitives where they earn it. CI signs and ships to both stores. Offline-first sqlite · sync Works on a train. Real conflict resolution, not "last write wins." Release engineering eas · ota updates Phased rollouts and over-the-air updates. Store metadata lives in the repo. Backend integration auth · push · payments The plumbing every app needs, wired to the same API we built for your web app. React Native Expo Flutter TypeScript SQLite // 03 → 04 · server meets device › 04 / DESKTOP Desktop apps that respect the operating system. Tauri for small, fast cross-platform binaries. Rust underneath when performance matters. Tauri / Electron cross-platform · web ui Web-stack UI, native shell. Tauri for small binaries; Electron when the team is in JS. CLIs & tooling rust · node Command-line tools and background agents your team keeps reaching for. Auto-update & signing notarization · installers Apple notarization, Windows code-signing, Linux packaging. Web-to-desktop shared ui · one codebase Ship your existing web app as a real desktop app without maintaining two front ends. Tauri Rust Electron TypeScript Good questions, short answers. Do you take single-discipline work, or only full-stack engagements? Both. oxlabs is one small studio across the stack, but you can engage just the front end, back end, mobile, or desktop — or thread several disciplines together into one build. What does "production as default" mean in practice? There is no throwaway prototype. Work lands in your repository behind a feature flag, on the same CI as everything else, from the first commit — so what you see in the demo is real software, not a staging-only mock. Do you work async and remote? Yes — async by default. Long-form writing over standups, considered comments over reactions, weekly demos and deploys. The work happens in the writing and the code, not in meetings. How do I start a project? Email is the most direct line; GitHub and the socials work too. Every message gets a real reply from an engineer who writes code, usually within a business day. Need just one of these? Or all of them, threaded together? Start a project See things we've shipped How we work