npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

create-oxy-app

v0.3.0

Published

Scaffold a new Oxy ecosystem app — an Expo/React Native + Express monorepo wired to the Oxy SDK (@oxyhq/services, @oxyhq/app-preset) with the canonical provider stack, device-first auth, Bloom theming, and AWS deploy. Run with `bun create oxy-app` or `bun

Readme

create-oxy-app

Scaffold a new Oxy ecosystem app — an Expo / React Native + Express monorepo wired to the Oxy SDK (@oxyhq/services, @oxyhq/app-preset) with the canonical provider stack, device-first auth, Bloom theming, and an AWS deploy workflow.

Usage

bun create oxy-app            # interactive
bun create oxy-app my-app     # into ./my-app
bunx create-oxy-app my-app --yes

Options

--name <name>        App display name
--slug <slug>        Package/workspace slug (kebab-case)
--scheme <scheme>    Expo URL scheme
--bundle-id <id>     iOS/Android bundle identifier
--domain <domain>    Backend API domain
--no-backend         Skip the Express + Socket.IO backend
--no-deploy          Skip the AWS deploy workflow
--minimal            Skip the example authenticated screen
--no-install         Do not run `bun install`
--no-git             Do not initialize a git repository
--no-register        Do not register an Oxy client
-y, --yes            Accept all defaults (non-interactive)

What you get

my-app/
  packages/
    frontend/       Expo Router · NativeWind · Bloom · @oxyhq/services
    shared-types/   Shared TypeScript types
    backend/        Express · PostgreSQL (drizzle) · Socket.IO · @oxyhq/core/server  (optional)
  docker-compose.postgres.yml     Local Postgres for the backend                     (optional)
  .github/workflows/deploy-aws.yml                                                   (optional)

All Expo config comes from @oxyhq/app-preset — the config plugin, createOxyMetroConfig, the Babel/ESLint configs, base.css, and the tsconfig bases — so apps track the ecosystem with a version bump instead of copy-pasting.

The frontend ships the canonical provider stack (GestureHandlerRootView → KeyboardProvider → SafeAreaProvider → BloomThemeProvider → OxyProvider → ImageResolver → LocaleProvider) with the root Stack as the sole (auth)(app) authority, keyed on the device-first session.

The backend's datastore

Generated backends run on PostgreSQL via drizzle-orm + postgres.js, built through @oxyhq/db — the same substrate every Oxy backend uses, so a new app inherits the ecosystem's column builders, casing authority, migration ledger and deploy-phase planner rather than reinventing them.

docker compose -f docker-compose.postgres.yml up -d postgres
cp packages/backend/.env.example packages/backend/.env
bun run db:migrate --target-database=myapp_dev
bun run dev:backend

The scaffold ships one example table (notes) with its migration 0000 already generated and phase-marked, so db:migrate applies a real schema from zero before you have written anything. Editing src/db/schema/ and running bun run db:generate produces the next migration; add its -- oxy:deploy-phase=pre|post marker before applying it.

The local compose file uses plain postgres:17-alpine. Apps that need PostGIS add postgis to REQUIRED_EXTENSIONS in packages/backend/src/db/migrate.ts and swap the compose image to postgis/postgis:17-3.5; on a managed database the extension additionally needs a privileged role to install it once (see oxy-infra docs/runbooks/30-postgres-database-provisioning.md).

Oxy client registration

By default the CLI offers to register an Application + public credential with Oxy and write the resulting clientId into packages/frontend/.env. Skip it with --no-register and register manually at https://console.oxy.so.