Samuel Edusa MD
Building the Azalea Report
Samuel Edusa, MD | Sept 10, 2024
Screenshot showing code from code editor
I built the Azalea Report, SGMC Health's Internal Medicine Residency Newsletter, as a web app. Here's how I put it together using Next.js and Decap CMS.
Project overview
The Azalea Report is an online newsletter for the SGMC Health Internal Medicine Residency program. It needed to look good on any device and be easy for non-technical staff to update.
Tech stack
- Next.js for the framework and static site generation
- Github for the repository (link here)
- Decap CMS so non-developers can edit content
- CSS Modules for styling
- Netlify for deployment and hosting
Built in a weekend
I put this together over a weekend. Using LLM tools integrated into VSCode sped things up considerably. Tasks like scaffolding components and writing boilerplate that would normally eat up hours got done in minutes.
Setup
- Created a new Next.js project and installed dependencies
- Set up
public/adminwith HTML and config files for Decap CMS - Defined content models in
public/admin/config.ymlfor resident spotlights, events, and program stats - Built the homepage in
pages/index.js, pulling content from Markdown files - Styled everything with CSS Modules in
styles/Home.module.css - Configured
next.config.jsfor static site generation and image optimization
Features
- Dynamic content sections: The homepage renders sections like "Resident Spotlight," "Chat With Our Chiefs," and "Things to Do in Valdosta" from Markdown files
- Responsive design: Mobile-first layout that works on phones, tablets, and desktops
- Image carousel: A simple carousel for the "Photos of the Month" section
- CMS editing: Non-technical staff update content through Decap CMS without touching code
What I ran into
- Image handling: I used Next.js's Image component configured for static exports to keep load times fast
- Content structure: Balancing flexibility with simplicity in the CMS content model took a few iterations
- Responsive layout: CSS Grid, Flexbox, and media queries got the layout working across screen sizes
Wrapping up
The newsletter is live and the residency program staff can update it on their own. Domain was purchased through Namecheap. The whole thing went from idea to production in a weekend.
