/* Cover scale */
.notion-page-cover,
.notion-header__cover {
background-size: cover !important;
background-position: center center !important;
}
:root {
--gs-bg: #080808;
--gs-surface: #0e0e0c;
--gs-surface-2: #131310;
--gs-accent: #C9A96E;
--gs-text: #E8E4DA;
--gs-muted: #5a5548;
--gs-border: rgba(201, 169, 98, 0.16);
--gs-font: "Comic Sans MS", "Comic Sans", cursive;
--color-bg-default: #080808 !important;
--color-text-default: #E8E4DA !important;
}
*,
*::before,
*::after {
font-family: var(--gs-font) !important;
}
html,
body,
.super-root,
.super-content {
background: var(--gs-bg) !important;
color: var(--gs-text) !important;
font-family: var(--gs-font) !important;
}
body::before {
content: "";
position: fixed;
inset: 0;
pointer-events: none;
background-image: radial-gradient(circle, rgba(201, 169, 110, 0.22) 1px, transparent 1px);
background-size: 32px 32px;
opacity: 0.35;
z-index: 0;
}
.super-content,
.notion-frame,
.notion-page-content {
position: relative;
z-index: 1;
}
.notion-page-title-text,
.notion-heading,
.notion-text,
.notion-callout-text,
.notion-page-content-inner,
.notion-h,
h1,
h2,
h3,
h4,
h5,
h6,
p,
li,
span,
a,
button,
input,
textarea,
label {
color: var(--gs-text) !important;
font-family: var(--gs-font) !important;
}
.notion-divider {
border-color: var(--gs-border) !important;
}
a,
.notion-link {
color: var(--gs-accent) !important;
}
.notion-collection_view-block,
.notion-collection-item,
.notion-callout {
background: var(--gs-surface) !important;
border: 1px solid var(--gs-border) !important;
border-radius: 6px !important;
}
.super-navbar,
.notion-navbar {
background: rgba(8, 8, 8, 0.92) !important;
border-bottom: 1px solid var(--gs-border) !important;
backdrop-filter: blur(8px);
}
.notion-navbar a,
.notion-navbar button,
.notion-navbar div {
color: var(--gs-text) !important;
font-family: var(--gs-font) !important;
}
Problem Ad-hoc call notes are hard to convert into consistent end-of-day updates without manual cleanup and formatting overhead.
Approach Designed a serverless stack focused on transforming raw notes into structured reports. Used Cloudflare Workers patterns and lightweight API-first service design. Framed the product as an applied AI workflow rather than a generic note tool. Architecture snapshot ⚙️
Edge runtime: Cloudflare Workers
Workflow: Notes ingest -> transform -> summary output
Product lens: Operator-first reporting workflow
Outcome Live product narrative on Base Layer Labs with clear production use-case positioning. Strong bridge between product engineering and applied data/AI workflows. Fast iteration cycle with low operational overhead. Artifacts and proof Demo video 🎬
Loom walkthrough (~90s): Record using the script in the portfolio repo (docs/LOOM-GHOSTSTACK-SCRIPT.md), then paste the Loom share URL on the line below — Notion will embed the player automatically.
Copy// Workflow contract pattern used in the project
type DailyReportInput = {
accountName: string;
callNotes: string;
dateISO: string;
};What I learned Product clarity improves when user workflow language is explicit in the interface and copy. Operational simplicity matters as much as model sophistication. Serverless architecture keeps iteration cycles fast for solo teams.