Skip to content

Getting Started ​

sku is a front-end toolkit for SEEK apps. It provides builds, local development, testing, and linting that follow SEEK practice.

To start, choose a project type:

👋 Goodbye Webpack

We will stop supporting Webpack. sku will remove Webpack and Webpack SSR project types when Vite-based solutions have full support.

What sku does ​

sku configures a local development environment. It includes a fast development server, linting and testing frameworks, and a production build.

It also integrates styling with Vanilla Extract CSS and localisation with Vocab.

What sku doesn't do ​

sku builds a production bundle. After that, you host static assets or you serve Node.js code with common practices.

See the instructions for your project type to deploy the app.

Static vs Server-Side Rendering (SSR) ​

When you start a new sku project, you choose how the site is rendered and served: Static Rendering or Server-Side Rendering (SSR). Each method fits different app needs.

Static Rendering ​

  • Fast and Simple: sku generates HTML, CSS, and JS at build time. A CDN or server then serves those files.
  • Low Maintenance: You do not need a custom server. You can deploy anywhere that supports static files.
  • Modern Features: The app can use client-side routing, code splitting, and dynamic imports.

Server-Side Rendering (SSR) ​

  • Personalized Initial Loads: The server can generate each page request per user. This fits personalisation, authenticated content, or A/B testing.
  • SEO and Performance: The server renders content for each request. This can improve SEO and first-contentful paint, especially for dynamic pages.
  • Advanced Use Cases: The server can run computation, API calls, or user-specific data at page load.

Choose the rendering method that fits the app. sku applies its standard configuration for either method.

Creating a new project ​

sh
$ pnpm dlx @sku-lib/create my-app --template=vite
$ cd my-app
$ pnpm start
sh
$ pnpm dlx @sku-lib/create . --template=vite
$ pnpm start

By default, a new project installs dependencies with the package manager that you used to run the command.