Samuel Edusa MD
SamuelEdusaMD
Status: Active
Timeline: January 2022 - present
Visit site: samueledusa.com
Technologies: Next.js 12, React 17, TypeScript, Styled-Components & Netlify
My personal website and portfolio. It's where my medical career and my software work sit side by side, as a running resume, a blog, and a place to show projects.
I'm a physician who also builds software, and I wanted one site that could hold both halves of that without picking a side. This is it.
How it's built
It's a Next.js 12 app that statically generates its pages, so it's fast and cheap to host. Pages live under src/pages/ (medicine, software, blog, presentations, projects, contact), reusable components under src/components/, blog posts as Markdown with YAML front matter under src/posts/, and nearly all of the resume and project content sits in a single siteconfig.json so I can change content without touching components.
The frontend is React 17 with TypeScript and Styled-Components for theming, using next/image for images and react-icons for icons. Posts are parsed with gray-matter, rendered with react-markdown plus rehype-raw, and code blocks are highlighted with react-syntax-highlighter in a custom dark theme. Reading time comes from the reading-time library, and the RSS feed is generated with Feed.
Look and extras
There's a full light and dark mode that remembers your choice. Light is a warm cream (#fff1e5), dark is near-black (#111), and the accent is a tropical-rainforest teal (#0a5e66). Type is Lora for titles, Lato for body, and Yellowtail for the script header.
A few things beyond the basics: a built-in PDF viewer (via @react-pdf-viewer) for slides and certificates, a set of Netlify serverless functions that push messages and files to Telegram, PWA support through next-pwa, and privacy-friendly analytics with next-plausible. It deploys to Netlify from Bitbucket and exports statically for the CDN, and the only server-side bits are those Telegram functions.