Built with VivekUI
This entire website is built with VivekUI, a free React component library with zero runtime dependencies.
No Tailwind, no shadcn, no CSS framework, no config file. One npm install, one CSS import in app/layout.tsx, and the 38 components and 2 charts listed below were all that was needed. The rest of this page is the receipts.
npm i @the_viveksingh/vivek-uiEvery component on this site
| Component | What it powers here | Where to see it |
|---|---|---|
| Navbar | Sticky site navigation, with the mobile sheet | Every page |
| ThemeProvider | Theme state, persistence and the anti-flash script | Every page |
| ThemeToggle | Light / dark / system switch in the navbar | Every page |
| Footer | Credit block and the three link columns | Every page |
| Section | Every band on every page, plus its header | Every page |
| Heading | Page and section headings at the right level | Every page |
| Text | Body copy, captions and muted secondary lines | Every page |
| Button | Every call to action, as a link where it navigates | Every page |
| Badge | Tech tags, project tags and the navbar credit | Every page |
| Hero | The split hero holding the oversized headline | Home |
| Marquee | The tech-stack ticker under the hero | Home |
| Stats | The four headline figures, as a description list | Home |
| AnimatedCounter | Each figure counting up when scrolled into view | Home |
| Sparkline chart | Twelve-week OSS download trend under the figure | Home |
| BentoGrid | The six-tile featured-project wall | Home |
| Card | Each project tile | Home · Projects |
| Avatar | Reference portraits, grouped in the hero | Home |
| Timeline | Work history, and education on the about page | Home · About |
| Testimonials | Three quotes as figure / blockquote / figcaption | Home |
| FAQ | The questions section, on native details / summary | Home |
| CTA | The closing ask above the footer | Home |
| Grid | The three-column case-study index | Projects |
| Stack | Vertical and horizontal groupings, on the token scale | Home · Contact |
| EmptyState | What renders if you delete every project from the data | Projects |
| Skeleton | Loading placeholders while a route streams in | Projects |
| Breadcrumb | The trail on every inner page | Inner pages |
| Carousel | Screenshots, on CSS scroll-snap | Case study |
| ButtonGroup | The Live site / GitHub pair | Case study |
| Prose | Problem / Approach / Result, and the about bio | Case study · About |
| BarChart chart | Projects shipped per year, 2019 to 2026 | About |
| Divider | Rules between blocks in the contact sidebar | Contact |
| Field | Labels, hints and errors wired to every control | Contact |
| Input | Name and email | Contact |
| Select | Project type, as a native select | Contact |
| Textarea | The brief | Contact |
| TagInput | Services you are interested in | Contact |
| Toast | Submit confirmation, and the résumé button | Contact · Home |
| Code | The install command, in the footer and here | Every page |
| CopyButton | Copying that install command to the clipboard | Every page |
| Table | This table | Built with |
What that bought
Accessible focus handling, a keyboard model per component, light and dark themes from one set of CSS custom properties, server components wherever interaction did not demand otherwise, and two charts that render as inline SVG with a real table underneath for screen readers. None of it was written in this repository.
The template repository is intellectwithvivek/devfolio, MIT licensed. Keep the footer credit if you like it; a GitHub star is appreciated either way.