1. Overview
Broadsheet is a static HTML, CSS, and JavaScript portfolio and blog template.
It requires no framework, no build step, and no dependencies.
It works natively on any static hosting platform.
2. What’s Included
Portfolio and blog are independent but share the same design system.
repo/
│ index.html (Portfolio)
│ styles.css (Portfolio styles)
│ main.js (Shared theme logic)
│
├───assets/
│ └───fonts/
│ ├── eb-garamond.woff2
│ ├── ibm-plex-sans.woff2
│ ├── resume.docx (Editable template)
│ └── resume.pdf (Sample export)
│
├───blog/
│ │ index.html (Blog list page)
│ │ styles.css (Blog styles)
│ │
│ └───entries/
│ └── sample-post.html
│
└───docs/
index.html (Documentation)
3. Setup
Option 1 — Use as a Template (Recommended)
Click the green "Use this template" button at the top of the GitHub repository. This creates a fresh copy in your own GitHub account, which is the fastest way to deploy using GitHub Pages.
Option 2 — Download Manually
If you prefer not to use Git, you can Download the ZIP, extract it, and edit the files directly. This is perfect if you plan to drag-and-drop your folder into a host like Netlify.
Run Locally
Use any static server to view your site locally:
npx serve .
or
python -m http.server
Note: Avoid opening files directly with file:// in the browser, as relative paths and local storage
may not resolve correctly.
4. Customization
All visual configuration is controlled through CSS variables defined at the top of styles.css (and ).
/blog/styles.css
Modify these variables to change colors, typography, and spacing:
:root {
--bg: #FFFFFF;
--text: #1A1C1E;
--text-sec: #5F6368;
--text-muted: #555;
--accent: #f3007e;
--border: rgba(0,0,0,0.08);
--font-display: "EB Garamond", serif;
--font-body: "IBM Plex Sans", sans-serif;
--space-sm: 0.75rem;
--space-md: 1.5rem;
--space-lg: 3rem;
--radius: 4px;
}
Dark mode overrides are handled below the root variables:
html[data-theme="dark"] {
--bg: #121417;
--text: #f5f5f5;
--text-muted: #aaa;
--border: rgba(255,255,255,0.1);
}
5. Using the Blog Skeleton
To create a new blog post:
- Copy
/blog/entries/sample-post.html - Rename the file (e.g.,
my-post.html) - Update the inner text for:
- Date
- Title
- Author
- Content
- Add a link to the new post inside
/blog/index.html
That’s it.
6. Navigation Structure
All paths are relative and designed for static hosting.
index.html→ Portfolio homepage/blog/index.html→ Blog list/blog/entries/*.html→ Individual posts/assets/→ Fonts and resume files
7. Deployment
GitHub Pages
- Push your project to a GitHub repository.
- Go to Repository Settings → Pages.
- Select:
- Branch:
main - Folder:
/ (root)
- Branch:
- Save. Your site will be live in a few minutes.
AWS S3
Follow the official AWS guide for static website hosting:
AWS S3 Static Website Hosting Guide