Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
56 changes: 26 additions & 30 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,51 +1,47 @@
# vviswaroop.github.io
# Viswaroop Vadlamudi — Personal Website

This repository is the source for a personal website built with **Jekyll** and intended to be hosted on **GitHub Pages**.
This repository contains the source for my personal website and blog, built with **Jekyll**.

## Local development
Live site: https://vviswaroop.github.io

## Quick start 🔧

Prerequisites: Ruby and Bundler installed.

Install dependencies and run a local dev server:
Run the site locally:

```bash
# Install dependencies
bundle install

# Run the dev server
bundle exec jekyll serve
# Open http://127.0.0.1:4000
```

Open http://127.0.0.1:4000 locally.

## Deployment

You can use GitHub Pages to serve the site. This repo includes an Actions workflow that automatically builds the site on push to `main` and deploys the generated static site to the `gh-pages` branch.

To enable the site after the first deploy:

1. Go to the repository Settings → Pages. Select the **gh-pages** branch as the source and save. The site should become available at the URL in `_config.yml` once the workflow completes.
## Writing posts ✍️

The repository also includes an additional workflow (`.github/workflows/jekyll-build.yml`) that runs a build check on push and PRs.
- Add a Markdown file to `_posts/` using the filename format `YYYY-MM-DD-title.md`.
- Include front matter with at least `title:` and `date:`. `tags:` is optional.
- Posts use the `post` layout by default.

Blog development:
## Content & pages 💡

- Posts live under `_posts/` using standard Jekyll filenames (YYYY-MM-DD-title.md).
- The blog index is at `/blog/` and uses pagination (`paginate: 5`).
- Plugins included: `jekyll-feed`, `jekyll-sitemap`, `jekyll-seo-tag`, `jekyll-paginate`.
- Key site pages: `about`, `blog`, and topic pages like `/developer/`, `/product/`, and `/infrastructure/`.
- Top tags are generated by `scripts/generate_top_tags.rb` into `_data/top_tags.yml` and used by the homepage.

New features:
## Contact 📬

- Topic pages: `/developer/`, `/product/`, `/infrastructure/` — lists posts filtered by tag.
- Top tags pipeline: a small script `scripts/generate_top_tags.rb` generates `_data/top_tags.yml` (run in CI) so the homepage can display popular tags safely.
- Homepage: redesigned to a minimal, content-first layout (compact recent-post list and CTA).
- Email: hello@viswaroop.dev
- LinkedIn: https://linkedin.com/in/viswaroopvadlamudi

Testing tips (CI):
## Contributing 🤝

- The `jekyll-build` workflow runs a non-blocking HTML link check using `html-proofer`.
- PRs for content, typo fixes, and small styling changes are welcome.
- For larger changes, please open an issue first to discuss scope.

If deploy fails with a 403 (permission denied)
---

- Cause: GitHub Actions' `GITHUB_TOKEN` may be restricted from creating or pushing the `gh-pages` branch depending on repository-level Actions permissions. The deploy job will report a 403 like: `Permission to ... denied to github-actions[bot]`.
- Quick fixes:
1. Easiest: In the repo **Settings → Actions → General**, set **Workflow permissions** to **Read and write** and save. Then re-run the "Deploy to GitHub Pages" workflow.
2. More controlled (recommended for locked-down repos): Create a personal access token (PAT) with **repo** scope, then add it as a repository secret named `GH_PAGES_DEPLOY_TOKEN` (Settings → Secrets and variables → Actions → New repository secret). The deploy workflow is already configured to use this secret if present.
Content © Viswaroop Vadlamudi. All rights reserved.

If you want, I can (A) make the workflow use a PAT secret (already done), and commit instructions to the README (done), or (B) guide you through enabling the repo-level Actions write permission so you can re-run the deploy — tell me which you prefer and I'll proceed.
If you'd like the README to have a different tone, additional images, or badges, tell me and I will update it.
Loading