Skip to content
szmytyPublic

About

Personal portfolio website – systems, AI workflows, and creative technology

Resources

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

530 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alan Szmyt — Portfolio

Personal portfolio of Alan Szmyt — software engineer building reliable developer platforms, local-first systems, and AI-assisted workflows.


Getting Started

First, install dependencies and run the development server:

pnpm install
pnpm dev

Open http://localhost:3000 with your browser to see the result.


Environment Variables

Optional configuration:

ORCID_ID=0009-0008-5291-9795

If ORCID_ID is missing, the /research page still renders with a non-blocking setup message.


Project Structure

src/
├── app/              # Next.js App Router: pages, layouts, metadata, route handlers
├── components/       # Reusable UI components, organized by subdomain
│   ├── animation/    #   Lottie and motion-based display components
│   ├── debug/        #   Development-only diagnostic panels
│   └── ui/           #   Generic layout primitives (Container, Section, Center, Footer)
├── config/           # App-wide configuration and environment validation
│   ├── env.ts        #   Typed, validated environment variables and feature flags (isDev, isProd)
│   ├── site.ts       #   Site metadata (title, description, author, URLs)
│   └── index.ts      #   Public barrel export (@portfolio/config)
├── content/          # Content abstraction layer: types and static data
│   ├── types.ts      #   TypeScript interfaces (Project, CreativeWork, …)
│   ├── projects.ts   #   Software project entries
│   ├── creative.ts   #   Creative work entries
│   └── index.ts      #   Public barrel export (@portfolio/content)
├── features/         # Self-contained feature modules, one folder per feature
│   └── landing/      #   Semantic homepage and progressive visual enhancement
│       └── animation/ #     Animation hooks and visual layer components (isolated from layout)
├── i18n/             # Internationalization setup (next-intl)
├── lib/              # Shared utilities and design token constants
│   └── tokens.ts     #   TypeScript references for CSS custom properties
└── animations/       # Lottie JSON animation assets

Conventions

Directory What belongs here
app/ Next.js pages, layouts, metadata, viewport, error/sitemap/robots files
components/ Stateless or lightly-stateful reusable UI pieces; no business logic
config/ Environment variable validation and app-wide static config
content/ Content types (interfaces) and static data arrays; no UI logic
features/ Co-located components, hooks, and logic for a single product feature; animation sub-directories isolate visual logic from layout
lib/ Pure utility functions and shared constants used across multiple modules
animations/ Raw animation data files (Lottie JSON) consumed by animation components
i18n/ next-intl configuration and locale message loading

Rules of thumb:

  • A component is reusable across features. A feature owns its own components when they are not shared.
  • Configuration and secrets go in config/; never inline them in application code.
  • lib/ is for pure, side-effect-free helpers. Anything with side-effects belongs in a feature or a component.
  • Each features/<name>/ directory exports a public API through its index.ts file.

Scripts

Command Description
pnpm dev Start the development server
pnpm build Build for production
pnpm lint Run ESLint
pnpm test:shell Verify the recruiter-safe homepage and visual fallback contract
pnpm test:three-composition Verify the infinity composition and measured floppy camera fit
pnpm test:responsive-shell Verify the mobile navigation and safe-area contract
pnpm format Format source files with Prettier

Launch validation is documented in docs/application-readiness.md. Its static checks remain network-free; deployed routes and external destinations are verified only by the manually dispatched release workflow.


Tech Stack

About

Personal portfolio website – systems, AI workflows, and creative technology

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages