Skip to content
@amwaredotdev

AMWARE

A Masterpiece Will Always Require Effort
                                  ●
                                ● ● ●
                                ● ● ●
                              ● ● ● ● ●
    ● ●                     ● ● ● ● ● ● ●                     ● ●
      ● ● ●                 ● ● ● ● ● ● ●                 ● ● ● ●
      ● ● ● ● ●           ● ● ● ●   ● ● ● ●           ● ● ● ● ●
      ● ● ● ● ● ● ●       ● ● ●       ● ● ●       ● ● ● ● ● ● ●
        ● ● ● ● ● ● ● ● ● ● ●           ● ● ● ● ● ● ● ● ● ● ●
        ● ● ● ● ● ● ● ● ● ● ●           ● ● ● ● ● ● ● ● ● ● ●
        ● ● ●     ● ● ● ● ● ●           ● ● ● ● ● ●     ● ● ●
          ● ●       ● ● ● ● ● ● ●   ● ● ● ● ● ● ●     ● ● ●
          ● ● ●   ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●     ● ● ●
          ● ● ●   ● ● ●       ● ● ● ● ●       ● ● ●   ● ● ●
            ● ● ● ● ● ●           ● ●         ● ● ● ● ● ●
            ● ● ● ● ●                           ● ● ● ● ●
            ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
              ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
              ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
              ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●
              ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ● ●

  ● ● ●     ●       ●   ●       ●     ● ● ●     ● ● ● ●     ● ● ● ● ●
●       ●   ● ●   ● ●   ●       ●   ●       ●   ●       ●   ●
●       ●   ●   ●   ●   ●       ●   ●       ●   ●       ●   ●
● ● ● ● ●   ●       ●   ●   ●   ●   ● ● ● ● ●   ● ● ● ●     ● ● ● ●
●       ●   ●       ●   ●   ●   ●   ●       ●   ●   ●       ●
●       ●   ●       ●   ● ●   ● ●   ●       ●   ●     ●     ●
●       ●   ●       ●   ●       ●   ●       ●   ●       ●   ● ● ● ● ●

A Masterpiece Will Always Require Effort

👑 AMWARE

A Masterpiece Will Always Require Effort.

We build developer tooling for teams shipping software inside NetSuite.

NetSuite is where a lot of businesses actually run, and it is one of the least pleasant places to be a developer. The platform has React-shaped problems and 1990s-shaped answers. We are closing that gap.

🧰 What we make

Project What it is Status
🛠️ warekit-cli The CLI and MCP server. Scaffolds SuiteScript, SDF objects and deployments. Open source, MIT
📦 WareKit React NetSuite (Lite) The starter kit. A React 19 SPA — TypeScript, Tailwind v4, Playwright — served to your users by a Suitelet. Private beta
💎 WareKit React NetSuite (Pro) Licensing and entitlement, role mapping, typed data layer, bundle pipeline, admin center. In development
WareKit Next NetSuite (Lite) The hybrid kit. A Next.js app on Vercel that reaches NetSuite from its API routes, shipping the same SDF project for the SuiteScript backend. Private beta
🗄️ WareKit Next NetSuite (Pro) Adds NetSuite-backed session storage — sessions in a custom record instead of Postgres, built to survive NetSuite's account-wide concurrency limit. In development

⚡️ The CLI

Inside a WareKit project, one command scaffolds a whole endpoint:

npx warekit new restlet customers --methods get,post

It writes the SuiteScript file, the SDF object named after its scriptid, the deploy.xml <path> when the folder is new, and the runtime registration — then tells you the governance budget you just signed up for. A RESTlet gets 5,000 usage units and a Suitelet 1,000, which is the whole reason the choice matters.

The same generator is exposed over MCP, so an agent and a human produce identical output:

{ "mcpServers": { "warekit": { "command": "npx", "args": ["-y", "warekit-mcp"] } } }

🧠 Two shapes, and the tradeoff between them

Embedded. A React app served by a Suitelet comes off the NetSuite application domain, which makes it same-origin with the session cookie:

  • 🔐 No OAuth dance, no token-based auth, no API keys in the browser
  • 🌐 No CORS proxy and no second thing to host
  • 👤 The user is already who NetSuite says they are, with their roles and permissions

Endpoints resolve at runtime through url.resolveScript(), so one build runs in sandbox, production and every customer account without a rebuild. The cost is that you live inside NetSuite: its page chrome, its release cycle, its limits.

Hybrid. A Next.js app on Vercel that reaches NetSuite from its API routes — OAuth 2 against an integration record to sign users in, or token-based auth for server-to-server calls. Either way the credential stays on the server and the browser never sees one. You get server components, your own domain and your own deploy cadence.

The backend does not move. The hybrid kit ships the same SDF project as the embedded one: your RESTlets, Suitelets and other SuiteScript still deploy to the File Cabinet, and the same CLI scaffolds them. What changes is where the frontend lives and how it proves who the user is — which means you now own an auth flow, a token lifecycle, and a userinfo RESTlet answering from N/runtime.

Neither is the right answer twice. Pick by where the frontend has to live; the NetSuite half of the work is the same either way.

🧭 Elsewhere


👑 A Masterpiece Will Always Require Effort.

Popular repositories Loading

  1. warekit-cli warekit-cli Public

    The CLI for WareKit — scaffold and manage NetSuite apps built with React.

    TypeScript

  2. .github .github Public

    Organization profile and shared GitHub defaults for AMWARE.

Repositories

Showing 2 of 2 repositories

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Most used topics

Loading…