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 configurationThe 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.