deploy
This commit is contained in:
282
frontend/app/globals.css
Normal file
282
frontend/app/globals.css
Normal file
@@ -0,0 +1,282 @@
|
||||
@import "tailwindcss";
|
||||
|
||||
:root {
|
||||
color-scheme: light;
|
||||
font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
|
||||
background: #f4f1ec;
|
||||
color: #191816;
|
||||
}
|
||||
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
body {
|
||||
margin: 0;
|
||||
min-height: 100vh;
|
||||
background:
|
||||
linear-gradient(90deg, rgba(25, 24, 22, 0.05) 1px, transparent 1px),
|
||||
linear-gradient(180deg, rgba(25, 24, 22, 0.05) 1px, transparent 1px),
|
||||
#f4f1ec;
|
||||
background-size: 44px 44px;
|
||||
}
|
||||
|
||||
main {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
p {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
p {
|
||||
color: #4d4840;
|
||||
font-size: 18px;
|
||||
line-height: 1.7;
|
||||
}
|
||||
|
||||
.hero {
|
||||
min-height: 92vh;
|
||||
display: flex;
|
||||
align-items: flex-end;
|
||||
padding: 56px 28px;
|
||||
background:
|
||||
linear-gradient(135deg, rgba(22, 82, 73, 0.14), transparent 48%),
|
||||
linear-gradient(180deg, rgba(244, 241, 236, 0.52), #f4f1ec 84%),
|
||||
url("https://images.unsplash.com/photo-1497366754035-f200968a6e72?auto=format&fit=crop&w=2200&q=85");
|
||||
background-position: center;
|
||||
background-size: cover;
|
||||
}
|
||||
|
||||
.hero-inner {
|
||||
width: min(1120px, 100%);
|
||||
margin: 0 auto;
|
||||
padding-top: 18vh;
|
||||
}
|
||||
|
||||
.eyebrow {
|
||||
margin-bottom: 14px;
|
||||
color: #0f6c5b;
|
||||
font-size: 12px;
|
||||
font-weight: 800;
|
||||
letter-spacing: 0;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
h1 {
|
||||
max-width: 980px;
|
||||
margin-bottom: 24px;
|
||||
color: #171512;
|
||||
font-size: clamp(64px, 11vw, 148px);
|
||||
line-height: 0.88;
|
||||
letter-spacing: 0;
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
|
||||
h2 {
|
||||
margin-bottom: 18px;
|
||||
color: #1c1a17;
|
||||
font-size: clamp(34px, 5vw, 68px);
|
||||
line-height: 0.98;
|
||||
letter-spacing: 0;
|
||||
}
|
||||
|
||||
.lede {
|
||||
max-width: 760px;
|
||||
margin-bottom: 18px;
|
||||
color: #1f352f;
|
||||
font-size: clamp(28px, 4vw, 48px);
|
||||
line-height: 1.08;
|
||||
font-weight: 750;
|
||||
}
|
||||
|
||||
.intro {
|
||||
max-width: 820px;
|
||||
margin-bottom: 0;
|
||||
color: #27231e;
|
||||
font-size: 21px;
|
||||
line-height: 1.65;
|
||||
}
|
||||
|
||||
.section {
|
||||
padding: 96px 28px;
|
||||
}
|
||||
|
||||
.content-grid {
|
||||
width: min(1120px, 100%);
|
||||
margin: 0 auto;
|
||||
display: grid;
|
||||
grid-template-columns: minmax(240px, 0.8fr) minmax(0, 1.2fr);
|
||||
gap: 56px;
|
||||
align-items: start;
|
||||
}
|
||||
|
||||
.copy p:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.lead-copy {
|
||||
margin-bottom: 28px;
|
||||
}
|
||||
|
||||
.question-band {
|
||||
background: #17231f;
|
||||
color: #f9f6ef;
|
||||
}
|
||||
|
||||
.question {
|
||||
width: min(980px, 100%);
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.question .eyebrow {
|
||||
color: #71d7b8;
|
||||
}
|
||||
|
||||
.question h2 {
|
||||
color: #fffaf2;
|
||||
}
|
||||
|
||||
.question p {
|
||||
max-width: 760px;
|
||||
margin-bottom: 0;
|
||||
color: #d9e2dc;
|
||||
}
|
||||
|
||||
.pill-grid,
|
||||
.interest-grid {
|
||||
display: flex;
|
||||
flex-wrap: wrap;
|
||||
gap: 10px;
|
||||
}
|
||||
|
||||
.pill-grid span,
|
||||
.interest-grid span {
|
||||
border: 1px solid rgba(25, 24, 22, 0.18);
|
||||
border-radius: 8px;
|
||||
background: rgba(255, 255, 255, 0.56);
|
||||
padding: 11px 13px;
|
||||
color: #25221d;
|
||||
font-size: 15px;
|
||||
font-weight: 700;
|
||||
}
|
||||
|
||||
.split-band {
|
||||
width: min(1120px, calc(100% - 56px));
|
||||
margin: 0 auto;
|
||||
padding-right: 0;
|
||||
padding-left: 0;
|
||||
display: grid;
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
gap: 1px;
|
||||
background: rgba(25, 24, 22, 0.18);
|
||||
}
|
||||
|
||||
.split-band article {
|
||||
min-height: 520px;
|
||||
padding: 42px;
|
||||
background: #fffdf8;
|
||||
}
|
||||
|
||||
.split-band article:first-child {
|
||||
background: #e7eee8;
|
||||
}
|
||||
|
||||
.split-band h2 {
|
||||
font-size: clamp(32px, 4vw, 54px);
|
||||
}
|
||||
|
||||
.clean-list {
|
||||
display: grid;
|
||||
gap: 12px;
|
||||
margin: 28px 0 0;
|
||||
padding: 0;
|
||||
list-style: none;
|
||||
}
|
||||
|
||||
.clean-list li {
|
||||
border-top: 1px solid rgba(25, 24, 22, 0.18);
|
||||
padding-top: 12px;
|
||||
color: #25221d;
|
||||
font-size: 17px;
|
||||
font-weight: 800;
|
||||
}
|
||||
|
||||
.interests {
|
||||
width: min(1120px, 100%);
|
||||
margin: 0 auto;
|
||||
}
|
||||
|
||||
.interests h2 {
|
||||
max-width: 760px;
|
||||
}
|
||||
|
||||
.connect {
|
||||
width: min(1120px, calc(100% - 56px));
|
||||
margin: 0 auto 56px;
|
||||
border-radius: 8px;
|
||||
background: #171512;
|
||||
padding: 56px;
|
||||
}
|
||||
|
||||
.connect .eyebrow {
|
||||
color: #71d7b8;
|
||||
}
|
||||
|
||||
.connect h2 {
|
||||
max-width: 920px;
|
||||
color: #fffaf2;
|
||||
}
|
||||
|
||||
.connect p {
|
||||
max-width: 720px;
|
||||
margin-bottom: 0;
|
||||
color: #d8d0c3;
|
||||
}
|
||||
|
||||
@media (max-width: 820px) {
|
||||
.hero {
|
||||
min-height: 86vh;
|
||||
padding: 36px 20px;
|
||||
}
|
||||
|
||||
.hero-inner {
|
||||
padding-top: 12vh;
|
||||
}
|
||||
|
||||
.section {
|
||||
padding: 64px 20px;
|
||||
}
|
||||
|
||||
.content-grid,
|
||||
.split-band {
|
||||
grid-template-columns: 1fr;
|
||||
gap: 28px;
|
||||
}
|
||||
|
||||
.split-band {
|
||||
width: min(100% - 40px, 1120px);
|
||||
}
|
||||
|
||||
.split-band article {
|
||||
min-height: auto;
|
||||
padding: 28px;
|
||||
}
|
||||
|
||||
.connect {
|
||||
width: min(100% - 40px, 1120px);
|
||||
padding: 32px 24px;
|
||||
}
|
||||
|
||||
p,
|
||||
.intro {
|
||||
font-size: 17px;
|
||||
}
|
||||
}
|
||||
14
frontend/app/layout.jsx
Normal file
14
frontend/app/layout.jsx
Normal file
@@ -0,0 +1,14 @@
|
||||
import "./globals.css";
|
||||
|
||||
export const metadata = {
|
||||
title: "Robert Seares",
|
||||
description: "Software engineer, engineering leader, founder, and product builder."
|
||||
};
|
||||
|
||||
export default function RootLayout({ children }) {
|
||||
return (
|
||||
<html lang="en">
|
||||
<body>{children}</body>
|
||||
</html>
|
||||
);
|
||||
}
|
||||
178
frontend/app/page.jsx
Normal file
178
frontend/app/page.jsx
Normal file
@@ -0,0 +1,178 @@
|
||||
const focusAreas = [
|
||||
"Artificial Intelligence",
|
||||
"Cloud Infrastructure",
|
||||
"Distributed Systems",
|
||||
"Developer Platforms",
|
||||
"Product Engineering",
|
||||
"Startup Operations",
|
||||
"Automation",
|
||||
"Technical Leadership",
|
||||
];
|
||||
|
||||
const values = [
|
||||
"Ownership over bureaucracy",
|
||||
"Speed over perfection",
|
||||
"Simplicity over complexity",
|
||||
"Learning over ego",
|
||||
"Execution over presentations",
|
||||
];
|
||||
|
||||
const interests = [
|
||||
"AI agents and autonomous systems",
|
||||
"Cloud-native platforms",
|
||||
"Scientific computing",
|
||||
"Biotechnology",
|
||||
"Startup strategy",
|
||||
"Developer experience",
|
||||
"Infrastructure automation",
|
||||
"Human-computer collaboration",
|
||||
];
|
||||
|
||||
export default function Home() {
|
||||
return (
|
||||
<main>
|
||||
<section className="hero">
|
||||
<div className="hero-inner">
|
||||
<p className="eyebrow">Software engineer, founder, product builder</p>
|
||||
<h1>Robert Seares</h1>
|
||||
<p className="lede">I build companies, software, and systems.</p>
|
||||
<p className="intro">
|
||||
I am a software engineer, engineering leader, founder, and product
|
||||
builder currently living in Brazil with my wife and two children.
|
||||
Over the last decade I have worked across startups, AI, biotech,
|
||||
consumer products, infrastructure, and automation, always gravitating
|
||||
toward difficult technical problems where software can create
|
||||
outsized leverage.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="section narrative">
|
||||
<div className="content-grid">
|
||||
<div>
|
||||
<p className="eyebrow">Today</p>
|
||||
<h2>Engineering at Ark Biotech</h2>
|
||||
</div>
|
||||
<div className="copy">
|
||||
<p>
|
||||
Today I lead software engineering at Ark Biotech, where I help
|
||||
build the infrastructure, applications, simulation tooling, and AI
|
||||
systems powering next-generation biomanufacturing.
|
||||
</p>
|
||||
<p>
|
||||
My work spans cloud infrastructure, developer platforms,
|
||||
simulation systems, machine learning applications, frontend
|
||||
architecture, backend services, and engineering leadership.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="section question-band">
|
||||
<div className="question">
|
||||
<p className="eyebrow">The question</p>
|
||||
<h2>How do we make it dramatically easier for people to build useful things?</h2>
|
||||
<p>
|
||||
That question has led me through projects ranging from AI systems
|
||||
and developer platforms to restaurant software, biotechnology
|
||||
infrastructure, and autonomous agents.
|
||||
</p>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="section">
|
||||
<div className="content-grid">
|
||||
<div>
|
||||
<p className="eyebrow">What I do</p>
|
||||
<h2>Systems that scale from idea to business</h2>
|
||||
</div>
|
||||
<div>
|
||||
<p className="copy lead-copy">
|
||||
I enjoy building systems that can scale from a single user to
|
||||
thousands, and from a proof of concept to a business. My preferred
|
||||
stack is Python, TypeScript, Kubernetes, FastAPI, React,
|
||||
PostgreSQL, cloud-native infrastructure, and AI-powered workflows.
|
||||
</p>
|
||||
<div className="pill-grid">
|
||||
{focusAreas.map((area) => (
|
||||
<span key={area}>{area}</span>
|
||||
))}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="section split-band">
|
||||
<article>
|
||||
<p className="eyebrow">Philosophy</p>
|
||||
<h2>Software should create leverage.</h2>
|
||||
<p>
|
||||
The best technology removes complexity rather than adding it. Great
|
||||
systems are understandable, maintainable, and useful. Great
|
||||
companies solve real problems. Great engineers ship.
|
||||
</p>
|
||||
<ul className="clean-list">
|
||||
{values.map((value) => (
|
||||
<li key={value}>{value}</li>
|
||||
))}
|
||||
</ul>
|
||||
</article>
|
||||
|
||||
<article>
|
||||
<p className="eyebrow">Building</p>
|
||||
<h2>A laptop, an idea, and enough persistence.</h2>
|
||||
<p>
|
||||
Outside of my day job, I spend most of my time building. I have
|
||||
launched products in AI, SaaS, developer tooling, restaurant
|
||||
technology, and automation. Some succeeded, some failed, and all of
|
||||
them taught me something valuable.
|
||||
</p>
|
||||
<p>
|
||||
What keeps me motivated is the same thing that motivated me when I
|
||||
started writing software: the ability to create something from
|
||||
nothing.
|
||||
</p>
|
||||
</article>
|
||||
</section>
|
||||
|
||||
<section className="section">
|
||||
<div className="content-grid">
|
||||
<div>
|
||||
<p className="eyebrow">Life</p>
|
||||
<h2>Countryside of Sao Paulo, Brazil</h2>
|
||||
</div>
|
||||
<div className="copy">
|
||||
<p>
|
||||
When I am not building software, I am spending time with my
|
||||
family, exploring business ideas, studying technology, lifting
|
||||
weights, reading about startups, or working on the next project
|
||||
that probably should not exist but sounds too interesting not to
|
||||
build.
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="section interests">
|
||||
<div>
|
||||
<p className="eyebrow">Current interests</p>
|
||||
<h2>Problems worth paying attention to</h2>
|
||||
</div>
|
||||
<div className="interest-grid">
|
||||
{interests.map((interest) => (
|
||||
<span key={interest}>{interest}</span>
|
||||
))}
|
||||
</div>
|
||||
</section>
|
||||
|
||||
<section className="section connect">
|
||||
<p className="eyebrow">Connect</p>
|
||||
<h2>If you are building something ambitious, I would love to hear about it.</h2>
|
||||
<p>
|
||||
I am always interested in talking with builders, founders, engineers,
|
||||
and people working on difficult problems.
|
||||
</p>
|
||||
</section>
|
||||
</main>
|
||||
);
|
||||
}
|
||||
Reference in New Issue
Block a user