Terminal-style visuals: green phosphor color scheme, ASCII art hero, typewriter text, and scanline effects
portfolio-website — React Portfolio Template
By rugbedbugg
A terminal-style React + TypeScript personal portfolio using Tailwind CSS and shadcn/ui, featuring interactive components such as an ASCII art hero, archive panel, transmission log, world map tracking, and IEEE paper showcase.
Explore the design
Compare the page layouts and mobile experience. Open any screenshot for a closer look.
Actual screenshot captured by the server browser.
All pages & views 2
Screenshots show visual appearance; interactive behavior may differ.
What stands out
A quick read of the recorded project description.
Interactive components: collapsible archive panel, timestamped transmission log, interactive world map
Research paper showcase area supporting IEEE papers and DOI links
Three.js ambient background and audio visualization, with postprocessing for bloom and noise effects
Component system based on shadcn/ui and Tailwind CSS, including over 40 UI base components
Component and utility function testing with Vitest and Testing Library
Template Details
This is a terminal-themed personal portfolio website built with React, TypeScript, and Vite, styled with Tailwind CSS and shadcn/ui, animated with Framer Motion, and with ambient background effects implemented using Three.js and postprocessing. The page is a purely client-rendered single-page application, using React Router for routing, with no SSR.
Visually, it uses a green phosphor color scheme, typewriter text, ASCII art, and scanline effects, and offers only dark mode. The main interactive components include: a collapsible archive panel (showing skills, links, and contact information), a timestamped transmission log (activity stream), an interactive world map (drawn with Canvas/SVG), and an IEEE paper showcase area with DOI links. There is also a "Now Playing" audio visualization module, which relies on Three.js and postprocessing.
The project structure is clear: src/components contains over 40 shadcn/ui base components and several feature components, src/hooks and src/lib store custom hooks and utility logic respectively, and src/pages contains the home page and 404 page. Tests use Vitest and Testing Library, running in a jsdom environment. Build output goes to dist/ and can be deployed to Cloudflare Pages; public/_headers and public/_redirects are copied to dist/ at build time and take effect natively on Cloudflare. The DepartureMono font is self-hosted in public/fonts/, and audio and project thumbnails are placed in public/assets/ and public/dispatches/ respectively.
In terms of limitations: the project is a pure SPA, with all rendering done on the client side and no server-side rendering; it only supports dark mode, which is an intentional design choice; the licensing of third-party assets such as demo images, fonts, and icons must be checked separately, while the code itself is under the MIT license.
Is it right for your project?
Use Cases
- Building a personal developer portfolio website to showcase projects, skills, and contact information
- A personal homepage that needs a terminal or retro-tech style interface
- A researcher's personal page displaying academic papers and DOI links
- As a learning reference for React + TypeScript + Tailwind CSS project structure
Suitable For
- Front-end developers familiar with React and TypeScript
- Developers who want to quickly build a terminal-style personal portfolio
- Individual users who need to display papers and project activity streams
- Static site projects planned for deployment to Cloudflare Pages
Getting started & customization
Use these recorded setup notes alongside the repository instructions for your chosen version.
- 1
Requires Node.js 18 or higher, npm 9 or higher (or pnpm/yarn)
- 2
Run npm install to install dependencies, npm run dev to start the development server (default http://localhost:5173)
- 3
npm run build generates a production build to dist/, npm run preview for local preview
- 4
npm run lint runs ESLint, npm run test runs Vitest tests
- 5
When deploying to Cloudflare Pages, public/_headers and public/_redirects are copied to dist/ during the build and take effect
License & source material
Usage conditions & limitations
Free to use · keep license noticeThis entry covers the free version under the MIT license from the public repository; the free scope is the code of this version and does not mean that external services or third-party assets are free.
Must comply with when using
- Free use, modification, commercial use, and distribution of this version's code are permitted.
- When distributing copies or substantial portions of the code, retain the original author's copyright notice and the full MIT license notice.
- The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.
Additional costs & items to verify
- Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
- External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis
https://github.com/rugbedbugg/portfolio-website/blob/main/LICENSEhttps://github.com/rugbedbugg/portfolio-website/blob/main/README.mdPermission is hereby granted, free of charge
Original License Text
Compiled by DeepSeek based on repository license and README ·2026-10-02. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.
Project checks & description sources
Template Information
- Source platforms
- GitHub
- Documentation and maintenance reference score
- More documented · 87 / 100
- Technologies
- React
- Website type
- Portfolio
How this score is calculated
Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.
What to verify for this project
- Repository update recorded
- 2026-08-25
- Screenshot last checked
- 2026-10-02
A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.
The catalog identifies React as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.
Use a selection guide →How this description was prepared
AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.
Automatically checked against source and license rules; no manual editorial review.
Inspect the recorded source material
SHA-256: c7d1fbdcda3db48f8e5ee7366901bf2a2a3e4eaa10990ea80db9456049e3d864
2026-10-02T22:03:32.781Z
Source file / repository# Portfolio Website    Personal portfolio site - terminal-themed, React + TypeScript + Vite. Features an ASCII-art hero, animated background, dossier panel, transmission log, and research publications section. Built with shadcn/ui, Tailwind CSS, Framer Motion, and Three.js for ambient effects. ## Status **Active** ## Features | Feature | Description | |---------|-------------| | Terminal aesthetic | Green-phosphor palette, typewriter text, ASCII art, scanline effects | | Interactive components | Dossier panel (profile), Transmission log (activity feed), Global trace (world map) | | Research publications | IEEE paper showcase with DOI links | | Now Playing | Audio visualization with Three.js/postprocessing | | Responsive | Mobile-first, handles narrow viewports gracefully | | Dark mode only | Intentional design choice | ## Tech Stack | Component | Version | Purpose | |-----------|---------|---------| | React | 18 | UI framework | | TypeScript | 5.8 | Strict mode | | Vite | 5 | Fast dev server, optimized builds | | Tailwind CSS | 3.4 | Utility-first styling | | shadcn/ui | Radix UI primitives | Component library | | Framer Motion | 12 | Animations, transitions | | Three.js | 0.183 + postprocessing | WebGL ambient background | | React Router | 6 | Client-side routing | | TanStack Query | 5 | Server state (if needed) | | Zod | 3 | Schema validation | | Vitest | 3 + Testing Library | Unit/component tests | | ESLint | 9 + TypeScript ESLint | Linting | ## Architecture ### Project Structure ``` portfolio-website/ ├── public/ # Static assets (served at root) │ ├── assets/ # Audio files (mp3) │ ├── dispatches/ # Project thumbnails (png) │ ├── fonts/ # DepartureMono woff2 │ ├── _headers # Cloudflare headers (security, caching) │ ├── _redirects # Cloudflare redirects │ └── robots.txt ├── src/ │ ├── components/ │ │ ├── demos/ # Demo-specific components │ │ ├── ui/ # shadcn/ui components (40+) │ │ ├── AmbientBackground.tsx # Three.js animated backdrop │ │ ├── AsciiArt.tsx # Hero ASCII art │ │ ├── DossierPanel.tsx # Profile sidebar │ │ ├── GlobalTrace.tsx # World map visualization │ │ ├── Terminal.tsx # Terminal-style container │ │ ├── Transmission.tsx # Activity feed log │ │ └── TypewriterText.tsx # Character-by-character typing │ ├── hooks/ │ │ ├── use-mobile.tsx # Mobile breakpoint hook │ │ ├── use-subject-layout.tsx # Layout coordination │ │ └── use-toast.ts # Toast notifications │ ├── lib/ │ │ ├── relays.ts # Event relay system │ │ ├── trace.ts # Trace logging │ │ ├── useRelay.ts # Relay hook │ │ ├── utils.ts # ClassName merge, etc. │ │ ├── viewer.ts # Media viewer logic │ │ └── worldMap.ts # Map data + rendering │ ├── pages/ │ │ ├── Index.tsx # Main portfolio page │ │ └── NotFound.tsx # 404 page │ ├── test/ # Vitest setup + example tests │ ├── App.tsx # Root component │ ├── main.tsx # Entry point │ └── index.css # Tailwind imports + globals ├── scripts/ │ └── gen-worldmap.mjs # Generates world map data ├── index.html ├── package.json ├── vite.config.ts ├── tailwind.config.ts ├── tsconfig.json / .app.json / .node.json ├── eslint.config.js ├── postcss.config.js ├── vitest.config.ts └── README.md ``` ### Key Components | Component | Purpose | |-----------|---------| | `AmbientBackground` | Three.js scene with postprocessing (bloom, noise) | | `AsciiArt` | Hero banner: "OXIDE 1-6" in green phosphor | | `DossierPanel` | Collapsible profile: skills, links, contact | | `Transmission` | Timestamped log entries (GitHub, research, etc.) | | `GlobalTrace` | Interactive world map (Canvas/SVG) | | `Terminal` | Styled container with scanlines, cursor blink | | `TypewriterText` | Configurable typing animation | ## Install / Run ### Prerequisites | Requirement | Details | |-------------|---------| | Node.js | ≥ 18 (LTS recommended) | | npm | ≥ 9 (or pnpm/yarn) | ### Development ```bash npm install npm run dev # Opens http://localhost:5173 ``` ### Build | Script | Command | Description | |--------|---------|-------------| | `build` | `vite build` | Production build → dist/ | | `build:dev` | `vite build --mode development` | Dev-mode build | | `preview` | `vite preview` | Preview production build locally | ### Lint & Test | Script | Command | Description | |--------|---------|-------------| | `lint` | `eslint .` | Lint all source | | `test` | `vitest run` | Run tests once (headless) | | `test:watch` | `vitest` | Watch mode | ### Development Server | Script | Command | Description | |--------|---------|-------------| | `dev` | `vite` | Start dev server | ## Deployment Deployed on **Cloudflare Pages** (`partha-pg.pages.dev`). The `public/_headers` and `public/_redirects` files are copied to `dist/` on build and work natively on Cloudflare. ```bash npm run build # Deploy dist/ to Cloudflare Pages (connect repo in dashboard, or use Wrangler) ``` Headers include: `X-Frame-Options: DENY`, `X-Content-Type-Options: nosniff`, `Referrer-Policy: strict-origin-when-cross-origin`, CSP-ready. > `wrangler pages deploy dist/` also works for CLI deployments. ## Configuration ### Tailwind (`tailwind.config.ts`) | Setting | Value | |---------|-------| | Custom colors | `phosphor` palette (green terminal theme) | | Font | `DepartureMono` (woff2, self-hosted) | | Animations | `scanline`, `typewriter`, `pulse-glow` | ### TypeScript | Config | Purpose | |--------|---------| | `tsconfig.json` | Base config | | `tsconfig.app.json` | App code (strict) | | `tsconfig.node.json` | Vite/config files | ### ESLint (`eslint.config.js`) | Plugin | Purpose | |--------|---------| | TypeScript ESLint | Recommended rules | | React Hooks | Hooks linting | | Import sorting | Optional | ## Project Structure (Simplified) ``` src/ ├── components/ # React components │ ├── ui/ # 40+ shadcn/ui primitives │ └── *.tsx # Feature components ├── hooks/ # Custom React hooks ├── lib/ # Utilities, shared logic ├── pages/ # Route pages ├── test/ # Test setup ├── App.tsx # Root ├── main.tsx # Entry └── index.css # Tailwind + globals ``` ## Testing ```bash npm run test ``` Covers: component rendering (Testing Library), utility functions, hook behavior. Uses `jsdom` environment. ## Notes / Gotchas | Note | Details | |------|---------| | Font | `DepartureMono-Regular.woff2` self-hosted in `public/fonts/` - no external font requests | | Audio | MP3 files in `public/assets/` - loaded on demand for "Now Playing" | | Images | Project thumbnails in `public/dispatches/` - referenced by name | | Headers/Redirects | `_headers` and `_redirects` auto-copied to `dist/` on build | | Rendering | No SSR - pure SPA, all rendering client-side | ## License MIT, see [LICENSE](LICENSE). ## Links - **Repo:** https://github.com/rugbedbugg/portfolio-website - **Live:** https://partha-pg.pages.dev - **Issues:** https://github.com/rugbedbugg/portfolio-website/issues
Explore similar templates
Compare previews and descriptions within the same stack and category.

react-portfolio-template
A React-based developer portfolio template for showcasing projects, work history, and skills. It offers a multi-component layout, dark and light modes, and responsive mobile adaptation, with text and images editable in src/components.
React · Portfolio

personal-website-react
A single-page developer portfolio template built with React and Material-UI, driven by a JSON Resume-compliant resume.json. It offers light/dark theme switching with localStorage persistence, a clean responsive layout, and Create React App tooling for simple builds and static deployment.
React · Portfolio

karngyan.com
A personal website and blog template for developers, built with TanStack Start, React 19, Tailwind CSS v4, and shadcn/ui. It uses MDX for articles with Shiki highlighting and GFM tables, and automatically generates RSS, sitemap, robots.txt, llms.txt, and OG images.
React · Portfolio

react-portfolio-template
A React portfolio template by Ryan Balieiro with a fixed sidebar and page-turn transitions on desktop, bottom navigation on mobile, multilingual support, light/dark themes, and content components for experience, education, skills, projects, and testimonials.
React · Portfolio

portfolio
A data scientist personal portfolio template built with React and MUI, with content centrally managed through configuration files in the assets directory.
React · Portfolio

react-portfolio
A React 16 and Material-UI developer portfolio template that centralizes personal information in a JSON Resume-compliant resume.json, with light/dark theme switching saved to local storage. It currently provides portfolio display only; resume page templates and structured data enhancements are still planned.
React · Portfolio
