Skip to content

Vite + React SPA for Portfolio Template #37

@Josephat-S

Description

@Josephat-S

What to build

Create the Vite + React 18 SPA architecture for the Portfolio template. This gives users a lightweight, client-side-only option for portfolios that don't need SSR/SEO (e.g., internal portfolios, creative showcases with heavy animations).

Files to create

  • templates/portfolio/vite-react/package.json
  • templates/portfolio/vite-react/index.html
  • templates/portfolio/vite-react/vite.config.ts
  • templates/portfolio/vite-react/tsconfig.json
  • templates/portfolio/vite-react/tsconfig.node.json
  • templates/portfolio/vite-react/postcss.config.js
  • templates/portfolio/vite-react/src/main.tsx
  • templates/portfolio/vite-react/src/App.tsx
  • templates/portfolio/vite-react/src/index.css
  • templates/portfolio/vite-react/src/components/Layout.tsx
  • templates/portfolio/vite-react/src/pages/Home.tsx
  • templates/portfolio/vite-react/src/pages/Projects.tsx
  • templates/portfolio/vite-react/src/pages/About.tsx
  • templates/portfolio/vite-react/src/pages/Contact.tsx

Specs

  • Use react-router-dom for client-side routing.
  • Same theme system (CSS variables, data-theme attribute on <html>).
  • Same Handlebars tags: {{projectName}}, {{variant}}, {{design}}, {{includeSidebar}}.
  • Pages should mirror the Next.js portfolio content.

Acceptance criteria

  • package.json has "name": "{{projectName}}" and includes react-router-dom.
  • src/App.tsx uses BrowserRouter with routes for Home, Projects, About, Contact.
  • Layout component conditionally renders Sidebar or Navbar based on {{includeSidebar}}.
  • All pages use theme CSS variables.
  • npx vite build passes without errors.
  • Test with node index.js selecting Portfolio + Vite.

Dependencies

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfeatureRequest for a new feature

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions