
A Personal Website Built with Next.js and Firebase. This repository contains the source code for my personal website.
The r0yce.com
website leverages Next.js to serve MDX content in a flexible environment, supporting both static site generation and on-demand server rendering. The application tracks content for each page, including projects, blog posts, and other resources, using MDX files to store metadata and content.
It also includes a realtime text editor for collaborative editing, built with Firebase. To access the editor, visit the src/app/(app)/kanjou
route on the website.
To install the project, follow these steps:
- Clone the repository.
- Install dependencies using your preferred package manager. For example:
• npm install
• pnpm install
• yarn install - Run the development server using the
dev
command. - To build the application for production, use the
build
command.
Common commands are defined in the package.json
file. You can run these commands using your preferred package manager.
• dev
: Runs Next.js in development mode.
• build
: Builds the application for production.
• start
: Runs the compiled production build.
• lint
: Runs ESLint to check for code issues.
• lint:fix
: Attempts to automatically fix lint issues.
• format
: Formats the code with Prettier.
To set up the development environment, follow these steps:
- Create a
.env.local
file in the root directory. Use the.env.example
file as a template. - Create a Firebase project and enable Google and Github authentication.
- Add your Firebase configuration to the
.env.local
file. - Add Google OAuth and Github OAuth credentials to the
.env.local
file.
This project uses Conventional Commits for commit messages. You can use the commit
command to create a commit message using the commitizen CLI.
It uses husky
and lint-staged
to run linting and formatting checks before committing changes.
./src/
├─ content/ # Markdown content
│ ├─ projects/ # Project pages in MDX format
│ │ └─ r0yce.mdx
│ └─ ...
└─ app/ # Application components
├─ auth/ # Authentication
│ └─ ...
├─ projects/ # Projects folder
│ └─ [slug]/ # Slug for each project. Dynamically loads the MDX content for the project.
└─ ...
Licensed under the GNU Affero General Public License v3.0.