new-page

star 347

Scaffold a new merjs page. Use when the user wants to create a new page, route, or view.

justrach By justrach schedule Updated 3/12/2026

name: new-page description: Scaffold a new merjs page. Use when the user wants to create a new page, route, or view. argument-hint: "[page-name]" disable-model-invocation: true

Create a new merjs page

Scaffold a new page at app/$ARGUMENTS.zig that follows the merjs conventions.

Steps

  1. Create app/$ARGUMENTS.zig with this template:
const mer = @import("mer");
const h = mer.h;

pub const meta: mer.Meta = .{
    .title = "PAGE_TITLE",
    .description = "PAGE_DESCRIPTION",
};

const page_node = page();

pub fn render(req: mer.Request) mer.Response {
    return mer.render(req.allocator, page_node);
}

fn page() h.Node {
    return h.div(.{ .class = "page" }, .{
        h.h1(.{}, "PAGE_TITLE"),
    });
}
  1. Replace PAGE_TITLE and PAGE_DESCRIPTION with sensible values derived from the page name
  2. Run zig build codegen to regenerate routes
  3. Confirm the new route appears in src/generated/routes.zig
  4. Tell the user the route is available at the mapped URL path

Conventions

  • Every app/ page MUST export pub const meta: mer.Meta
  • Every page MUST export pub fn render(req: mer.Request) mer.Response
  • Use the h DSL (mer.h) for HTML — prefer comptime nodes
  • For dynamic routes, use bracket syntax: app/users/[id].zig/users/:id
  • app/index.zig maps to /
  • app/foo/index.zig maps to /foo
  • Add pub const prerender = true; for static pages that don't need request data
Install via CLI
npx skills add https://github.com/justrach/merjs --skill new-page
Repository Details
star Stars 347
call_split Forks 15
navigation Branch main
article Path SKILL.md
More from Creator