What is this?
CodeKitchen is a custom‑built web application composed of: A PHP REST API with JWT authentication Two seperate frontends: a minimalistic vanilla JS version and a more customized React version A production deployment on a Linux VPS It demonstrates how modern web apps function internally — not just how to use tools, but how to design and reason about them.
Why build it this way?
Many portfolio projects rely heavily on frameworks that abstract away critical concepts. Nothing wrong with that - it makes life easier and production faster. But The CodeKitchen serves a different purpose: It is,in itself, a learning project. The author of the Codekitchen intentionally confronted herself with every possible obstacle to grow a solid skillset. The goal was to: Understand authentication flows instead of copy‑pasting themLearn HTTP, CORS, headers, and content types by implementing them
Separate concerns clearly between frontend, API, and infrastructure
Build confidence debugging real production issues
Frameworks are powerful — but fundamentals scale better.
What you can explore here
You’re currently in the "general public" area. Here, you can: Read about the project’s architecture and decisions. Read about technical details. You can enter the main site from the landing page. It is designed as a blog with the posts featuring demo projects. While the post list is accessible to anyone, the detailed post pages require authentication. Not because they contain sensitive information, but but because the project intentionally implements real authentication and authorization constraints. The same applies to the images on this site.
Technical highlights (short version)
Custom PHP MVC framework (routing, controllers, middleware)Stateless JWT authentication (access + refresh tokens)
Vanilla JavaScript frontend with automatic token refresh
PHPUnit tests (unit + integration) Apache on Debian VPS with SSL and CORS configuration
Who built this?
Built by Pingolu, a developer transitioning from a sysadmin background into software development, with a strong focus on fundamentals, testing, and long‑term maintainability.