E-MyR Portfolio (Astro Rebuild)
TL;DR: Rebuilt a single-file EMR-style resume into a structured Astro application with real routing, modular components, and deployable infrastructure… while preserving the clinical interface as a functional system, not just a visual theme.
Updated April 1, 2026
Problem
The original site was a single HTML application with embedded data, UI, and logic.
It worked… but it did not scale:
- All content (resume, experience, documents, blog) lived inside one file :contentReference[oaicite:1]{index=1}
- UI rendering, data structure, and interaction logic were tightly coupled
- No real routing → nothing was linkable or indexable
- Any change risked breaking unrelated parts of the system
- “Cool interface” existed, but no underlying content architecture
Diagnosis
The issue wasn’t visual—it was structural.
The system lacked:
- Separation of concerns (data, UI, routing)
- Stable content primitives (projects, posts, documents)
- Addressability (URLs that can be shared, indexed, or referenced)
- Deployment reliability (build pipeline vs static file drop)
In practice:
It behaved like a demo… not a system.
Treatment
Full rebuild using Astro as a structured content system.
Architectural shift
From:
- Single HTML file
- Embedded JSON + DOM rendering
- Runtime composition
To:
- File-based routing
- Componentized UI
- Static build output (dist/)
- Content collections (blog + projects)
System design
1. EMR interface preserved as shell
/remains the “chart”- Tabs (Demographics, History, Meds, Labs, Notes, Documents)
- Now backed by modular Astro components, not injected HTML
2. Real routing layer introduced
/blog/[slug]→ individual posts/projects/[slug]→ case studies- Eliminates “dead-end UI” problem
3. Content becomes first-class
- Markdown-driven blog + project entries
- No longer hardcoded into UI
- Supports iteration without layout risk
4. Asset layer normalized
- PDFs (resume, credentials) moved to
/public/assets/ - Direct download paths (
/assets/*.pdf) - Eliminates runtime link ambiguity
5. Deployment pipeline
- GitHub Actions build →
dist/ - GitHub Pages hosting
- Transition from static file hosting → build-driven deployment
What changed (materially)
Before (HTML system)
- UI, data, and logic tightly coupled
- Resume stored as embedded JSON + HTML rendering
- Links were indirect and sometimes inconsistent
- No reliable extension model
After (Astro system)
- UI = components
- Data = content files / assets
- Routing = file-based
- Build = deterministic output
What this demonstrates
1. Translation layer thinking
You are not just “building a site” — you are:
- Taking a domain (clinical EMR structure)
- Mapping it into UI architecture
- Then mapping that into a maintainable system
That is informatics thinking, not frontend styling.
2. Structure over surface
The key shift:
From “interface that looks like a system”
→ “system that happens to have an interface”
3. Constraint-aware design
The rebuild directly addresses:
- content drift
- scaling friction
- deployment reliability
- linkability / credibility
4. Real-world production concerns
- Static build pipeline (Astro)
- GitHub Actions deployment
- Asset path correctness (
/public/assets) - Handling integration failures (e.g., sitemap build issues)
Status
Active.
- Core architecture complete
- Content system operational (blog + projects)
- Deployment pipeline functional (with minor integration tuning)
- Ongoing work:
- expanding project case studies
- refining content density
- stabilizing build integrations (e.g., sitemap)
Bottom line
This project is no longer a “creative resume.”
It is a structured, deployable system that demonstrates:
- clinical → technical translation
- workflow thinking applied to software
- ability to turn an idea into a maintainable architecture
That is the actual signal.