Laura Batson’s personal site — a single-page portfolio covering career highlights, tech stack, and where to find me online.
Live: https://lulubun.github.io
It’s a plain static site: HTML, CSS, and a little vanilla JavaScript. There’s no
framework, no build step, and no bundler. Everything that gets served lives in
public/, and you can open it in a browser as-is.
The site needs to be served over HTTP rather than opened as a file:// URL —
otherwise the relative paths to CSS, JS, and the icon fonts won’t resolve.
Any static file server works. Pick whichever you have on hand:
python3 -m http.server 8000 --directory public
npx serve public
php -S localhost:8000 -t public
Then open http://localhost:8000.
If you use VS Code, the Live Server extension works too — right-click
public/index.html and choose “Open with Live Server”.
Edit the files in public/ directly and refresh the browser. There is nothing
to compile or watch.
public/ everything that gets deployed
├── index.html the entire site (one page)
├── 404.html
├── css/
│ ├── custom.css my own styles — edit this one
│ ├── freelancer.css base theme styles
│ └── freelancer.min.css
├── js/
│ ├── infinite-row.js infinite horizontal scroll for the tech-stack row
│ └── freelancer.min.js theme behavior (smooth scroll, sticky nav)
├── img/
└── vendor/ Bootstrap 3, jQuery, Font Awesome (committed, not installed)
Two notes on where to make changes:
public/css/custom.css. freelancer.css is the base
theme; custom.css loads after it and overrides what it needs to.vendor/ is committed to the repo. There’s no install step — those files
are checked in and served directly.Deploys are automatic. Pushing to master triggers
.github/workflows/firebase-hosting-merge.yml,
which publishes public/ to Firebase Hosting. Opening a pull request builds a
temporary preview channel instead.
To deploy by hand, you’ll need the Firebase CLI and access to the lulubun
project:
npx firebase-tools deploy --only hosting
Hosting config lives in firebase.json (serving public/) and .firebaserc.
A few leftovers from the original template that aren’t wired up to anything:
gulpfile.js, package.json, and less/ are stale. The gulp tasks write to
root-level css/, js/, and vendor/ directories that no longer exist —
the site moved into public/ for Firebase Hosting and the build was never
updated. Don’t run gulp; edit the CSS in public/css/ directly.mail/contact_me.php, public/js/contact_me.js, and
public/js/jqBootstrapValidation.js powered a contact form that the page no
longer has. Nothing references them.Built on the Freelancer theme by Start Bootstrap, used under the MIT license — see LICENSE. The layout, content, and custom JavaScript are my own.
Portfolio icons by Freepik, Vectors Market, and Madebyoliver via Flaticon. Technology icons by Devicon.