Portfolio
Project grid, about section and contact details. Typical of a freelance or studio site.
- Components
- 34
- Files exported
- 15
- Lines of code
- 371
- Runtime dependencies
- next, react, react-dom, lucide-react
Live render — this is real DOM, not a screenshot
Alex Morgan
Product Designer & Frontend Developer
I craft thoughtful digital experiences that live at the intersection of design and engineering. Currently building tools for creative teams.
Selected Work
Flowstate
A productivity app designed to help creative professionals manage deep work sessions.
Palette
An open-source design system and component library built for React and Tailwind CSS.
Relay
End-to-end encrypted team messaging with built-in project management and file sharing.
Canopy
A real-time analytics dashboard for monitoring application performance and user behavior.
Interaction is disabled on this page. In the builder the same tree is fully editable.
The code you get
Generated by the same exporter the Export button calls. Standard Next.js App Router and Tailwind — no InBuild runtime, no proprietary imports, nothing to license.
app/page.tsximport type { Metadata } from "next"
export const metadata: Metadata = {
title: "Home",
description: "Home — Portfolio",
openGraph: {
title: "Home",
description: "Home — Portfolio",
},
}
export default function Page() {
return (
<div className="min-w-0 min-h-screen bg-gray-950 text-white">
<section className="w-full py-28 px-6 text-center">
<img src="https://www.inbuild.io/images/avatar.svg" alt="Profile photo" className="max-w-full h-auto rounded-md object-cover w-24 h-24 rounded-full mx-auto mb-6 object-cover bg-gray-800" />
<h1 className="text-4xl font-bold text-5xl font-bold mb-3">Alex Morgan</h1>
<p className="text-base text-xl text-gray-400 mb-6">Product Designer & Frontend Developer</p>
<p className="text-base text-gray-400 max-w-lg mx-auto mb-8">I craft thoughtful digital experiences that live at the intersection of design and engineering. Currently building tools for creative teams.</p>
<div className="flex flex-row flex-wrap items-start flex gap-4 justify-center">
<a href="https://github.com" className="text-gray-400 hover:text-white transition">GitHub</a>
<a href="https://twitter.com" className="text-gray-400 hover:text-white transition">Twitter</a>
<a href="https://linkedin.com" className="text-gray-400 hover:text-white transition">LinkedIn</a>
</div>
</section>
<hr className="border-gray-800 mx-6" />
<section className="w-full py-20 px-6 max-w-6xl mx-auto">
<h2 className="text-3xl font-bold text-3xl font-bold text-center mb-12">Selected Work</h2>
<div className="grid min-w-0 grid grid-cols-2 gap-6">
<div className="rounded-xl overflow-hidden border border-gray-800 hover:border-gray-600 transition">
<img src="https://www.inbuild.io/images/project-1.svg" alt="Flowstate app screenshot" className="max-w-full h-auto rounded-md object-cover w-full h-56 object-cover bg-gray-800" />
<div className="min-w-0 p-5">
<h3 className="text-2xl font-semibold text-lg font-semibold mb-1">Flowstate</h3>
<p className="text-base text-gray-400 text-sm">A productivity app designed to help creative professionals manage deep work sessions.</p>
</div>
</div>
<div className="rounded-xl overflow-hidden border border-gray-800 hover:border-gray-600 transition">
<img src="https://www.inbuild.io/images/project-2.svg" alt="Palette design system screenshot" className="max-w-full h-auto rounded-md object-cover w-full h-56 object-cover bg-gray-800" />
<div className="min-w-0 p-5">
<h3 className="text-2xl font-semibold text-lg font-semibold mb-1">Palette</h3>
<p className="text-base text-gray-400 text-sm">An open-source design system and component library built for React and Tailwind CSS.</p>
</div>
</div>
<div className="rounded-xl overflow-hidden border border-gray-800 hover:border-gray-600 transition">
<img src="https://www.inbuild.io/images/project-3.svg" alt="Relay messaging app screenshot" className="max-w-full h-auto rounded-md object-cover w-full h-56 object-cover bg-gray-800" />
<div className="min-w-0 p-5">
<h3 className="text-2xl font-semibold text-lg font-semibold mb-1">Relay</h3>
<p className="text-base text-gray-400 text-sm">End-to-end encrypted team messaging with built-in project management and file sharing.</p>
</div>
</div>
<div className="rounded-xl overflow-hidden border border-gray-800 hover:border-gray-600 transition">
<img src="https://www.inbuild.io/images/project-4.svg" alt="Canopy analytics dashboard screenshot" className="max-w-full h-auto rounded-md object-cover w-full h-56 object-cover bg-gray-800" />
<div className="min-w-0 p-5">
<h3 className="text-2xl font-semibold text-lg font-semibold mb-1">Canopy</h3>
<p className="text-base text-gray-400 text-sm">A real-time analytics dashboard for monitoring application performance and user behavior.</p>
</div>
</div>
</div>
</section>
</div>Truncated — 3 more lines in the exported file.
Every file in the export
- .env.local.example
- .gitignore
- README.md
- app/api/contact/route.ts
- app/globals.css
- app/layout.tsx
- app/page.tsx
- app/robots.ts
- app/sitemap.ts
- eslint.config.mjs
- next-env.d.ts
- next.config.ts
- package.json
- postcss.config.mjs
- tsconfig.json
package.json{
"name": "portfolio",
"version": "0.1.0",
"private": true,
"scripts": {
"dev": "next dev",
"build": "next build",
"start": "next start",
"lint": "next lint",
"typecheck": "tsc --noEmit"
},
"dependencies": {
"next": "^15.0.0",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"lucide-react": "^0.456.0"
},
"devDependencies": {
"typescript": "^5.6.0",
"@types/node": "^22.0.0",
"@types/react": "^19.0.0",
"@types/react-dom": "^19.0.0",
"tailwindcss": "^4.0.0",
"@tailwindcss/postcss": "^4.0.0",
"postcss": "^8.4.0",
"autoprefixer": "^10.4.0",
"eslint": "^9.0.0",
"eslint-config-next": "^15.0.0"
}
}