GioJSdocs
Get StartedReleasesGitHub ↗
Getting Started

Project Structure

A tour of the files and folders in a GioJS app.

A new project is intentionally small. Everything is driven by file conventions under app/.

text
my-app/
  app/
    layout.tsx        # root layout (wraps every page)
    page.tsx          # the / route
    about/page.tsx    # the /about route
    posts/[id]/page.tsx  # dynamic route -> /posts/:id
  components/          # your shared components
  public/              # static assets served as-is
  gio.toml             # server configuration

The app directory

Routes are folders. A page.tsx (or .jsx) makes a folder a route; a layout.tsx wraps the pages beneath it. Dynamic segments use [brackets].

public/

Files in public/ are served directly by the Rust layer at /public/* — images, stylesheets, fonts. Static files never touch Node.