All portfolio content can be customized by editing the JSON files in this directory.
Personal information, bio, social links, and professional details.
Structure:
{
"personal": {
"name": "Your display name",
"fullName": "Your full legal name",
"role": "Your job title",
"tagline": "Your professional tagline",
"location": "City, Country",
"email": "[email protected]",
"phone": "+1234567890",
"website": "https://yoursite.com",
"avatar": "/path/to/image.jpg",
"initials": "YN",
"status": "Available for Work",
"statusColor": "green"
},
"bio": {
"short": "One-line bio",
"long": "Detailed paragraph about you",
"mission": "Your professional mission statement"
},
"stats": {
"projects": "20+",
"experience": "3+ Years",
"coffee": "β",
"commits": "5000+",
"clients": "15+",
"technologies": "30+"
},
"social": {
"github": { "url": "", "username": "", "icon": "github" },
"linkedin": { "url": "", "username": "", "icon": "linkedin" }
}
}Portfolio projects with details, tech stack, and links.
Structure:
{
"projects": [
{
"id": 1,
"name": "Project Name",
"description": "Project description",
"techStack": ["React", "Node.js"],
"liveUrl": "https://demo.com",
"repoUrl": "https://github.com/user/repo",
"image": "/images/project.jpg",
"featured": true,
"category": "Web App"
}
]
}Skills organized by category with proficiency levels.
Structure:
{
"skills": {
"languages": [
{ "name": "JavaScript", "level": 95, "icon": "code" }
],
"frameworks": [...],
"tools": [...],
"databases": [...]
}
}Custom terminal commands for your OS.
Structure:
{
"customCommands": [
{
"command": "mycommand",
"description": "What this command does",
"output": "Text to display when run",
"action": "none"
}
]
}Supported actions:
"none"- Just display output"open:windowId"- Open a specific window"matrix"- Toggle matrix rain"theme:themeName"- Change theme
System-wide configuration.
Structure:
{
"system": {
"osName": "SUDHI OS",
"version": "3.0",
"bootDelay": 300,
"defaultTheme": "green"
},
"features": {
"matrixRain": true,
"crtEffect": true,
"soundEffects": false
}
}Music player playlists and tracks.
Structure:
{
"playlists": [
{
"id": "1",
"name": "Playlist Name",
"tracks": [
{
"id": "t1",
"title": "Song Title",
"artist": "Artist Name",
"duration": "3:45",
"album": "Album Name"
}
]
}
]
}Browser bookmarks and browsing history.
Structure:
{
"bookmarks": [
{
"id": "1",
"title": "Site Name",
"url": "https://example.com",
"category": "Development",
"icon": "github"
}
],
"history": [...]
}Email inbox, sent items, and drafts.
Structure:
{
"inbox": [
{
"id": "1",
"from": "[email protected]",
"subject": "Email Subject",
"preview": "First line preview...",
"date": "2024-03-14T10:30:00",
"read": false,
"starred": true,
"body": "Full email content..."
}
],
"sent": [...],
"drafts": [...]
}Calendar events and reminders.
Structure:
{
"events": [
{
"id": "1",
"title": "Event Name",
"date": "2024-03-15",
"time": "10:00",
"duration": 60,
"type": "meeting",
"description": "Event details",
"color": "#00FF88"
}
],
"reminders": [...]
}Game high scores and settings.
Structure:
{
"snake": {
"highScores": [
{ "score": 450, "date": "2024-03-10", "player": "SUDHI" }
],
"settings": {
"speed": "medium",
"gridSize": 20
}
},
"minesweeper": {...},
"tetris": {...}
}Virtual file system structure for File Explorer.
Structure:
{
"folders": {
"Home": {
"files": [
{
"name": "README.txt",
"type": "file",
"icon": "π",
"size": "2.4 KB",
"content": "File contents here"
}
],
"folders": {
"Documents": {...}
}
}
}
}Paint app canvas templates and tools.
Structure:
{
"templates": [
{
"id": "1",
"name": "Template Name",
"width": 800,
"height": 600,
"background": "#FFFFFF"
}
],
"tools": [...]
}All accent colors are controlled by CSS variables:
--accent- Main accent color--accent-rgb- RGB values for transparency
Supported themes: green, blue, amber, purple
You can use:
- Emoji (π, π΅, etc.)
- Lucide React icon names
- Custom SVG paths
- Add to
terminal-commands.json - Use
actionfield for special behaviors - Commands auto-appear in
helpoutput
- Add to
projects.json - Include all required fields
- Use relative paths for images (place in
/public/images/) - Set
featured: truefor homepage showcase
- Keep JSON files properly formatted
- Use consistent date formats (ISO 8601)
- Validate JSON before deploying
- Backup data files before major changes
To add completely new window types, you'll need to:
- Add entry to
WIN_DEFAULTSinApp.tsx - Create window component
- Add to
renderWindowContentswitch case - Add desktop icon in
data.ts
Edit BOOT_MESSAGES in data.ts to customize boot text.
Edit DESKTOP_ICONS in data.ts to add/remove icons.
- All dates should use ISO 8601 format:
YYYY-MM-DDTHH:mm:ss - URLs must include protocol (https://)
- Image paths are relative to
/public/directory - File sizes can use KB, MB, GB notation
- Colors support hex codes only (#RRGGBB)
- Edit
about.json- Add your personal info - Edit
projects.json- Add your projects - Edit
skills.json- List your skills - Customize
terminal-commands.json- Add custom commands - Deploy - All changes auto-load on refresh!
| File | Status | Required | Auto-loads |
|---|---|---|---|
| about.json | β Active | Yes | Yes |
| projects.json | β Active | Yes | Yes |
| skills.json | β Active | Yes | Yes |
| terminal-commands.json | β Active | No | Yes |
| settings.json | β Active | No | Yes |
| music-library.json | β Created | No | Future |
| browser-bookmarks.json | β Created | No | Future |
| email-messages.json | β Created | No | Future |
| calendar-events.json | β Created | No | Future |
| games.json | β Created | No | Future |
| file-system.json | β Created | No | Future |
| paint-templates.json | β Created | No | Future |
SUDHI OS v3.0 - The Most Complete Virtual Desktop Portfolio