Newsletter
Join the Community
Subscribe to our newsletter for the latest news and updates
A starter HTML/CSS/JS website template created for a two-part USC workshop on building personal websites.

Portfolio library replicating the GitHub UI, built with Next.js, TypeScript, and Tailwind CSS.
Website Workshop is a starter website template built entirely with plain HTML, CSS, and JavaScript, created by Niraj Ganesh for a two-part USC workshop that teaches attendees how to build and deploy a personal website. The template takes a repository clone as input and produces a five-page personal site — home, projects, resume, interests, contact — that can be deployed for free on GitHub Pages.
Website Workshop is a hand-written, dependency-free website template that uses only HTML, CSS, and JavaScript, with no build tools or frameworks required. It is distributed as a GitHub repository that can be cloned with Terminal or GitHub Desktop, and the finished site is served as static files from the index.html home page. The template was authored by Niraj Ganesh and used in a two-part workshop at the University of Southern California (USC).
index.html, projects.html, resume.html, interests.html, contact.html, 404.html, plus navigation.html and footer.html fragments.nav_footer.js injects the shared navigation and footer into every page, and index.js controls opening and closing the mobile navigation bar.style.css file, so global changes to colors, fonts, and spacing are made in one place.images folder ships with eight sample images: a gallery image, three profile pictures, and three project sub-images, ready to be swapped for personal photos.username.github.io URL.index.html to introduce yourself, then deploy to GitHub Pages for a public URL.project2_sub1.jpg, project2_sub2.jpg, and project2_sub3.jpg placeholders to showcase three projects with images.nav_footer.js and index.js to see how JavaScript can inject shared HTML components and toggle the mobile menu.The intended workflow starts with cloning the repository to your local machine using either git clone in Terminal or the GitHub Desktop "Clone repository" dialog. After editing content in the HTML files and visuals in style.css, you open index.html directly in a browser to preview on localhost. When ready, you commit changes with git add ., git commit -m "message", and git push, then enable GitHub Pages in the repository Settings to publish the site.
The template is free to use, clone, and modify. The only cost involved is optional — a custom domain — because deployment on GitHub Pages is included with a free GitHub account.
No. The template uses only HTML, CSS, and JavaScript, so there is no Node.js, React, Vue, or other framework installation. Any code editor, including VS Code, can open and edit the files, and the site runs by opening index.html in a browser.
Rename your cloned repository to match your GitHub username, go to Settings, then Pages, choose "Deploy from a branch" and select the main branch, and keep HTTPS enforced. Your site will appear at username.github.io — the README covers this process step by step.
No. GitHub Desktop can replace most Terminal commands: you can clone the repository, view changes, and push updates through its graphical interface. Terminal is only needed if you prefer using git clone, git add, git commit, and git push directly.
All visible text lives in the HTML files, while all visual styling lives in style.css. The JavaScript files nav_footer.js and index.js handle shared navigation/footer injection and the mobile menu toggle, so content changes generally do not require touching JavaScript.
No. The repository ships with index, projects, resume, interests, and contact pages, plus a 404 page, but no blogging functionality. It is designed as a personal profile and portfolio site rather than a blog.
