Jhatu Website — Full Documentation
Jhatu Website — Full Documentation
Your complete guide to updating and growing the site. No code knowledge needed for most tasks.
Table of Contents
- Architecture Overview
- How to Update Your Info
- Socials & Email
- Profile Photo
- Writing & Publishing Blog Posts
- Adding a New Page
- Design System (colors, fonts, layout)
- Opening Animation
- Running Locally
- Deploying to GitHub Pages
1. Architecture Overview
This is a Jekyll static site. Jekyll takes simple text files and turns them into a full website.
site/
├── _config.yml ← 🔑 Master settings (name, socials, URL)
├── index.html ← Homepage
├── about.md ← About page (plain text / Markdown)
├── blog.html ← Blog listing page (auto-generated, don't edit)
│
├── _posts/ ← 📝 YOUR BLOG POSTS LIVE HERE
│ └── 2024-01-15-my-first-post.md
│
├── _layouts/
│ ├── default.html ← Wraps every page (header, footer, loader)
│ ├── page.html ← Used for About and similar static pages
│ └── post.html ← Used for every blog post
│
├── _includes/
│ ├── social.html ← Social icon links (auto-reads _config.yml)
│ └── post-list.html ← The post list component on homepage & blog page
│
└── assets/
├── profile.png ← 📸 Your profile photo
└── css/
└── style.css ← All visual styling
How it all connects:
- Every page uses
layout: defaultorlayout: pagein its front matter default.htmlinjects `<section class="hero">I break AI systems
and teach others how.I'm Darshan Naik, a Security Researcher, Trainer and Content Creator. My work covers AI security and offensive security: finding how models, agents and the applications around them fail, and turning that into research, training and writing.
X </a>
Instagram </a>
Medium </a>
Topmate </a>
Email </a>
</div>
</div>
<div class="hero-avatar">
</div>
</div>
</section>
AI Security
Prompt injection, agent and tool abuse, model and pipeline risks, and how to test LLM applications properly.
Offensive Security
Web, API and infrastructure testing, adversary thinking, Red Teaming and practical tradecraft.
Training and Content Creation
Workshops, courses, talks and write-ups that make hard topics hands-on and easy to follow.
Latest writing
All posts-
LLM Hacking - Part 3 - Supply Chain | Data & Model Poisoning | Improper Output Handling
AI is getting stronger we all are known this condition, as far as many companies are realign with the base models from so that they can use that...
-
LLM Hacking - Part 2 - Sensitive Data Disclosure
We explored all the crazy shit about how to create the payload and again different types of the prompt injection vulnerability Where we have performed the live ai...
-
LLM Hacking - Part 1 - AI Security, Prompt Injections
AI not a big term and its an old technology just now came to boom…. Hahaha confused na.. Yes , for the first time I was also in...
-
Is It Possible to hack paytm soundbox ?
welcome to new article my ethical hacker kiddo. Here your friend , security researcher Darshan Naik aka darshanhackz, Yeah in the last article we have seen how to...
-
IoT Hacking is Damnn Crazyyy!!!
As a security researcher, I always love to learn new hacking techniques and always tries to research on the topics those are trending within the cybersecurity so that...
` — the page’s body goes there
_config.ymlis the single source of truth for your name, socials, and site URL
2. How to Update Your Info
Open site/_config.yml and change these lines:
title: Darshan Naik # Browser tab title
tagline: Security researcher… # Short tagline (used by SEO plugin)
description: AI security… # Meta description for Google
author: Darshan Naik # Your name — shown in header, footer, hero
email: you@example.com # Used on the About page contact line
url: "https://your-site.com" # Your live site URL (for SEO)
Save the file. If running locally, the change is instant.
3. Socials, Topmate & Email
Open site/_config.yml and fill in your handles:
social:
linkedin: "darshnahackz" # LinkedIn username or full URL
x: "darshnahackz" # Your X / Twitter handle (no @)
instagram: "darshanhacks" # Your Instagram handle (no @)
medium: "darshnahackz" # Your Medium handle (e.g. username)
topmate: "darshnahackz" # Your Topmate handle (e.g. darshnahackz)
email: "darshanhackz@gmail.com" # Full email address
Rules:
- Leave a field as
""(empty quotes) to hide that icon entirely. - The icons appear in two places: the hero section on the homepage, and the footer on every page.
- Topmate booking also links automatically in the About page under “Work with me”.
- Important: Whenever you edit
_config.yml, restart the Jekyll local server (Ctrl+Cthen re-run) so Jekyll loads the updated settings. - You don’t need to touch
social.html— it reads from this config automatically.
4. Profile Photo
Your photo is at site/assets/profile.png.
To replace it:
- Name your new photo
profile.png - Drop it into
site/assets/, replacing the existing file - That’s it — the homepage will automatically pick it up
Tip: The photo is displayed as a circle (160 × 160 px on desktop). For best results, use a square image with your face centred.
To use a different filename:
Open site/index.html and change this line:
src="/assets/profile.png"
to e.g.
src="/assets/darshan-photo.jpg"
5. Writing & Publishing Blog Posts
Create a new post
- Go to the
site/_posts/folder - Create a new file. The filename format is required and must be:
YYYY-MM-DD-url-friendly-title.mdExample:
2025-03-20-prompt-injection-deep-dive.md - Paste this template at the top of the file (called front matter):
---
layout: post
title: "Your Post Title Here"
date: 2025-03-20
---
Your content starts here. Use normal Markdown.
## Section Heading
Write your paragraphs normally. Links work like [this](https://example.com).
### Sub-heading
- Bullet list item
- Another item
```python
# Code blocks work too
print("Hello!")
4. Save the file. Your post will instantly appear on:
- The homepage "Latest writing" section (up to 5 posts)
- The `/blog/` page (all posts, grouped by year)
### Markdown Quick Reference
| What you want | How to write it |
|---|---|
| **Bold** | `**bold**` |
| *Italic* | `*italic*` |
| [Link](url) | `[text](https://url.com)` |
| `inline code` | `` `code` `` |
| ## Heading 2 | `## Heading 2` |
| Image | `` |
| Blockquote | `> Your quote here` |
---
## 6. Adding a New Page
1. Create a `.md` file in `site/`, e.g. `speaking.md`
2. Add front matter at the top:
```markdown
---
layout: page
title: Speaking
permalink: /speaking/
---
Your page content here in Markdown.
- Add it to the nav by editing
site/_layouts/default.html:
<nav aria-label="Main">
<a href="/blog/">Blog</a>
<a href="/speaking/">Speaking</a> ← add this line
<a href="/about/">About</a>
</nav>
7. Design System
All colours, fonts, and spacing live as CSS variables in site/assets/css/style.css at the very top.
Colours
:root {
--bg: #f6f7f9; /* Page background */
--ink: #15171c; /* Main text */
--muted: #5d6370; /* Secondary text, timestamps */
--line: #dcdfe5; /* Borders and dividers */
--accent: #2f3fd6; /* Links, highlights */
--code: #eceef2; /* Code block background */
}
Dark mode overrides are directly below — the browser applies them automatically based on system preference.
To change the accent colour, just replace #2f3fd6 (light) and #8c9bff (dark) with your new colour.
Fonts
- Headings & UI — Inter Tight (loaded from Google Fonts)
- Body prose / blog posts — Source Serif 4 (loaded from Google Fonts)
To change fonts, update both the <link> in _layouts/default.html and the --sans / --serif variables in style.css.
8. Opening Animation
The loader runs automatically on every page load:
- A full-screen overlay appears with your name typing out
- A blinking cursor appears briefly
- After the page fully loads, the overlay fades out
- The page content fades in underneath
To adjust the animation speed, find this block in style.css:
.loader-name {
animation: typing 0.9s steps(20, end) both, …
}
Change 0.9s to make the typing faster or slower.
To turn the loader off, remove the <div id="page-loader"> block from _layouts/default.html and delete the #page-loader CSS block.
9. Running Locally
You need Ruby and Jekyll installed. Then:
cd "Jhatu Website v1/site"
bundle install # first time only
bundle exec jekyll serve
Open http://localhost:4000 in your browser. Changes to files auto-reload instantly (except _config.yml — restart the server for those).
10. Deploying & Updating via GitHub
Your site is connected to GitHub and automatically deployed on GitHub Pages:
- Repository: https://github.com/darshanhackz/darshanhackz.github.io
- Live Website: https://darshanhacks.com/ (also redirects from https://darshanhackz.github.io/)
How to push updates in the future (3 simple steps)
Whenever you edit a file, write a new blog post, or update your info:
# 1. Move into the site directory
cd "/Users/darshannareshnaik/Desktop/Jhatu Website v1/site"
# 2. Stage and commit your changes
git add .
git commit -m "Add new blog post / update site"
# 3. Push to GitHub
git push origin main
Within 30–60 seconds, GitHub automatically builds and updates your live site!
Last updated: October 2026