~/portfolio · page.tsx
main
UTF-8
LF
~projectsgabpaet.devpage.tsx· 42 lines
123456789101112131415161718192021222324252627282930313233343536373839404142
// app/page.tsx — gabpaet.dev portfolio root.
// next.js 15 · react 19 · tailwind. shipped solo, 2026.

import { Metadata } from "next";
import { FileTree } from "@/components/file-tree";
import { Editor } from "@/components/editor";
import { CommandPalette } from "@/components/command-palette";
import { files, fileOrder } from "@/content/files";

export const metadata: Metadata = {
  title:       "Gabriel Joshua Paet — Senior Programmer",
  description: "9 years shipping. AI · automation · DevOps · web.",
};

export default function Page() {
  return (
    <main className="ide grid h-screen">
      <TitleBar path="~/portfolio" />

      <FileTree
        order={fileOrder}
        files={files}
        onOpen={(id) => openFile(id)}
      />

      <Editor
        active={active}
        tabs={openTabs}
        file={files[active]}
      />

      <CommandPalette
        shortcut={["mod+k", "mod+p"]}
        items={fileOrder.map((id) => files[id])}
      />

      <StatusBar where="pasay · utc+8" />
    </main>
  );
}

// see ./components/* for the actual rendering. this is the assembly.
main↑ 0 ↓ 0✓ no errors⚠ 0Ln 1, Col 1Spaces: 2UTF-8TypeScript JSX● pasay city · @ lumora capital