Interactive EMR-style portfolio and blog for Paul Peck, RN.
- Astro - Static site framework
- TypeScript - Type safety
- Markdown/MDX - Blog content
- CSS Custom Properties - Theming system
- Node.js 18+ installed
- npm or yarn package manager
-
Install dependencies
npm install
-
Start development server
npm run dev
Visit
http://localhost:4321in your browser -
Build for production
npm run build
-
Preview production build
npm run preview
ppeck-me-v2/
├── src/
│ ├── components/ # Reusable components
│ │ ├── tabs/ # EMR tab components
│ │ ├── IntroSequence.astro
│ │ ├── ThemeToggle.astro
│ │ └── Dock.astro
│ ├── content/ # Content collections
│ │ ├── blog/ # Blog posts (Markdown)
│ │ └── projects/ # Project case studies
│ ├── layouts/ # Page layouts
│ ├── pages/ # Routes
│ │ ├── index.astro # Main EMR interface
│ │ └── blog/[slug].astro # Blog posts
│ └── styles/ # Global styles
├── public/ # Static assets
└── astro.config.mjs # Astro configuration
Create a new file in src/content/blog/:
---
title: "Your Post Title"
description: "Brief description"
date: 2026-02-09
tags: ["tag1", "tag2"]
draft: false
---
Your content here...Create a new file in src/content/projects/:
---
title: "Project Name"
description: "What this project does"
date: 2026-02-09
tags: ["clinical", "systems"]
github: "https://github.com/yourusername/repo"
status: "active"
---
Project details...Edit src/styles/global.css to modify the color palette:
:root {
--color-teal: #009688; /* Primary accent */
--color-orange: #C46B3B; /* Warm accent */
--color-green: #4CAF50; /* Success/active */
}Place PDFs, images, and other static files in public/assets/
-
Update
astro.config.mjsif your repo name isn'tppeck.me:export default defineConfig({ site: 'https://yourusername.github.io', base: '/your-repo-name', // Only if not using custom domain });
-
Build the site:
npm run build
-
Push to GitHub and enable GitHub Pages in repository settings
- Theme preference saved in
localStorageasemr-theme - Last active tab saved as
emr-last-tab - Intro sequence flag saved as
emr-intro-seen
- Use
npm run devfor hot-reloading during development - Blog posts auto-appear in the Notes tab
- Projects auto-appear in the Diagnosis tab
- All content is type-checked via TypeScript
Questions or issues? Contact paultpeck@gmail.com