Personal portfolio site for Emily Smithson — Flutter Developer, Bristol.
Live site: https://emilysmithson.github.io
Built with Astro, Tailwind CSS, and deployed to GitHub Pages.
npm install
npm run devnpm run build
npm run preview- Create
src/content/projects/your-app.mdwith frontmatter (copy an existing file). - Add screenshots to
public/images/projects/. - Push to
main— GitHub Actions deploys automatically.
cd /path/to/flutter/app
flutter build web --base-href "/demos/your-app/"Copy build/web/ to public/demos/your-app/, then set demo: /demos/your-app/ in the project markdown file.
| File | Description |
|---|---|
public/images/emily-headshot.jpg |
Your portrait photo |
public/images/projects/*-hero.png |
App screenshots (many are placeholders) |
Project markdown PLACEHOLDER links |
Store URLs, blog links, etc. |
Your site uses one deploy method: the custom GitHub Actions workflow (.github/workflows/deploy.yml).
If you see a failed "pages build and deployment" workflow (Jekyll build error), GitHub Pages is still set to Deploy from a branch from the old HTML site. That conflicts with Astro.
- Open Settings → Pages
- Under Build and deployment → Source, select GitHub Actions (not "Deploy from a branch")
- Save — the Jekyll workflow will stop running on each push
The "Deploy to GitHub Pages" workflow is the correct one. When it shows green, https://emilysmithson.github.io is updated.
- Go to Settings → Environments → github-pages
- Under Deployment branches, choose All branches (or add
main) - Re-run the failed workflow from the Actions tab
Or push to master — this repo's Pages environment may still be restricted to master from the old site setup.
src/
content/
projects/ # one .md file per app
experience/ # one .md file per role
data/
site.json # contact info, skills, education
Edit src/data/site.json to update contact details or skills without touching layout code.