#+title: phundrak.com #+html: #+html: #+html: #+html: * Introduction This is the repository for my website [[https://phundrak.com][phundrak.com]] which contains the code available on the =main= branch. Code available on the =develop= branch is available at [[https://beta.phundrak.com][beta.phundrak.com]]. * Architecture The website follows a modern full-stack architecture: - *Backend*: Rust using the [[https://github.com/poem-web/poem][Poem]] web framework (located in [[file:backend/][backend/]]) - *Frontend*: Nuxt 4 + Vue 3 + TypeScript (located in [[file:frontend/][frontend/]]) ** Backend The backend is written in Rust and provides a RESTful API using the Poem framework with OpenAPI support. *** Running the Backend To run the backend in development mode: #+begin_src shell cd backend cargo run #+end_src To run tests: #+begin_src shell cd backend cargo test #+end_src For continuous testing and linting during development, use [[https://dystroy.org/bacon/][bacon]]: #+begin_src shell cd backend bacon #+end_src *** Building the Backend To build the backend for production: #+begin_src shell cd backend cargo build --release #+end_src The compiled binary will be available at =backend/target/release/backend=. ** Frontend The frontend is built with Nuxt 4, Vue 3, and TypeScript, providing a modern single-page application experience. *** Installing Dependencies First, install the required dependencies using =pnpm=: #+begin_src shell cd frontend pnpm install #+end_src *** Running the Frontend To run the frontend in development mode: #+begin_src shell cd frontend pnpm dev #+end_src *** Building the Frontend To build the frontend for production: #+begin_src shell cd frontend pnpm build #+end_src The compiled version of the website can then be found in =frontend/.output=.