Skip to content

Commit 38d4827

Browse files
committed
docs: readme and contrib
1 parent f535f45 commit 38d4827

File tree

3 files changed

+52
-61
lines changed

3 files changed

+52
-61
lines changed

CONTRIBUTING.md

Lines changed: 17 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -25,42 +25,37 @@ Must be one of the following:
2525
- **refactor**: A code change that neither fixes a bug nor adds a feature
2626
- **perf**: A code change that improves performance
2727
- **test**: Adding missing tests or correcting existing tests
28-
- **chore**: Changes to the build process or auxiliary tools and libraries such as documentation generation
28+
- **chore**: Changes to the build process or auxiliary tools and libraries
29+
- **build**: Changes that affect the build system or external dependencies
30+
- **ci**: Changes to CI configuration files and scripts
31+
- **revert**: Reverts a previous commit
2932
- **content**: **(Project Specific)** Adding or updating content such as:
3033
- Blog posts (`content(blog): add new post about react`)
3134
- Logs (`content(log): add review for new movie`)
3235
- Projects (`content(project): add details for new app`)
3336
- Music/Sounds (`content(audio): add new ambient track`)
34-
- Assets (`content(assets): update avatar image`)
3537

3638
### Scope (Optional)
3739

3840
The scope provides additional context to the type. For `content` types, the scope is highly recommended (e.g., `blog`, `log`, `project`).
3941

40-
### Subject
42+
---
4143

42-
The subject contains a succinct description of the change:
43-
- Use the imperative, present tense: "change" not "changed" nor "changes"
44-
- Don't capitalize the first letter
45-
- No dot (.) at the end
44+
## Coding Standards
4645

47-
### Body (Optional)
46+
### Directory Structure
47+
To keep the codebase organized, we follow a modular pattern:
48+
- **`src/app/`**: This is where the core logic, domain-specific state, views, and complex functionality live (e.g., `src/app/achievements`, `src/app/os`).
49+
- **`src/components/`**: Only for generic, reusable UI atoms (buttons, modals, inputs).
4850

49-
Just as in the **subject**, use the imperative, present tense. The body should include the motivation for the change and contrast this with previous behavior.
51+
### Linting & Style
52+
We enforce strict whitespace rules via ESLint:
53+
- No multiple empty lines.
54+
- No padded blocks.
55+
- No trailing spaces.
56+
- **Always run `npm run format` and `npm run lint` before committing.**
5057

51-
### Footer (Optional)
52-
53-
The footer should contain any information about **Breaking Changes** and is also the place to reference GitHub issues that this commit closes.
54-
55-
## Example
56-
57-
```
58-
content(log): add corrupted blood incident rant
59-
60-
- Added new text file for the post
61-
- Updated posts.json with metadata
62-
- Added unique category color for 'rant'
63-
```
58+
---
6459

6560
## Git Hooks
6661

@@ -77,4 +72,3 @@ In an emergency (if the hook is broken), you can bypass verification:
7772
```bash
7873
git commit --no-verify -m "your message"
7974
```
80-
**Note:** Please use this sparingly and only if you are sure your message format is correct.

README.md

Lines changed: 35 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,41 @@
11
# Fezcodex
22

33
![Fezcodex Card](public/images/fezcodex-card.jpg)
4+
45
### What is this?
5-
Imagine you have a giant digital toy box. Inside, you keep the cool things you've built, the stories you've written, and a diary of all the interesting things you've learned. Fezcodex is that toy box. It is a special website that works like a personal museum on the internet. It is not just a boring page; it has moving parts, secret "Easter eggs," and little mini-apps like a sound mixer and a stopwatch.
6+
Imagine you have a giant digital toy box. Inside, you keep the cool things you've built, the stories you've written, and a diary of all the interesting things you've learned. Fezcodex is that toy box. It is a special website that works like a personal museum on the internet. It is not just a boring page; it has moving parts, secret "Easter eggs," and little mini-apps like a sound mixer and a knowledge graph.
67

78
---
89

9-
## What can it do?
10-
- Digital Garden: A place where blog posts and "logs" (mini-diaries about books, movies, or games) grow.
11-
- Project Archives: A showcase of all the coding experiments and software I've built.
12-
- Mini-Apps: Built-in tools like an Atmosphere Mixer (for focus sounds), a Typing Tester, and a Stopwatch.
13-
- Visual Magic: You can change how the whole site looks using the "Visual Matrix" in Settings—make it look like an old computer, a blueprint, or even a comic book.
14-
- Achievements: Just like a video game, you get little trophies for exploring the site and finding hidden things.
10+
## Key Features
11+
- **Digital Garden**: A space where blog posts and "logs" (mini-diaries about books, movies, or games) grow.
12+
- **Knowledge Graph**: A 3D interactive visualization of how all content on the site is interconnected.
13+
- **Project Archives**: A showcase of all the coding experiments and software I've built.
14+
- **Mini-Apps**: Built-in tools like an Atmosphere Mixer, Cloud Music Player, Typing Tester, and a digital Rotary Phone.
15+
- **Visual Magic**: Change how the whole site looks using the "Visual Matrix"—make it look like an old computer (CRT), a blueprint, or even a comic book.
16+
- **Achievements**: Just like a video game, you get little trophies for exploring the site and finding hidden things.
1517

1618
---
1719

18-
## How is it built? (The Lego Bricks)
19-
- React and Tailwind CSS: These are the main building blocks that make the site work and look professional.
20-
- Framer Motion: This is the tool that makes everything move smoothly and animate.
21-
- Markdown and PIML: These are special ways of writing text so the computer knows how to turn them into beautiful pages.
22-
- Local Storage: The site remembers your settings and trophies right in your own browser, so it does not need a large database.
20+
## Tech Stack (The Lego Bricks)
21+
- **Frontend**: React 19, Tailwind CSS, and Framer Motion for smooth animations.
22+
- **3D & Graphics**: Three.js and react-force-graph-3d for the knowledge graph.
23+
- **Content**: Markdown and **PIML** (Plain Old Markup Language) for structured content.
24+
- **Build Tools**: Craco (CRA Configuration Override) for custom build pipelines.
25+
- **Persistence**: Local Storage for settings, achievements, and persistent state.
2326

2427
---
2528

26-
## Where is everything?
27-
- src/components/: The small parts (like buttons and cards) used to build pages.
28-
- src/pages/: The main areas of the house (Home, Blog, Settings, Apps).
29-
- public/: This is the pantry where all the actual content (text files for posts, images, and sounds) is stored.
30-
- scripts/: Helper programs that help build the sitemap and RSS feeds.
29+
## Project Structure
30+
- `src/app/`: Domain logic, core features, and views (Achievements, OS, Command Palette, etc.).
31+
- `src/components/`: Reusable UI components (Buttons, Modals, Cards).
32+
- `src/context/`: Global state management (Visual Settings, Toast, Animation).
33+
- `public/`: The "pantry" where all actual content (PIML files, text, images, sounds) is stored.
34+
- `scripts/`: Helper programs for generating RSS, sitemaps, and wallpapers.
3135

3236
---
3337

34-
## For the Grown-ups (Technical Setup)
38+
## Technical Setup
3539

3640
### Prerequisites
3741
Make sure you have Node.js installed on your computer.
@@ -53,31 +57,30 @@ npm start
5357
```
5458
This will open the site at http://localhost:3000.
5559

56-
## Routing and SEO
57-
58-
This project uses `BrowserRouter` for clean URLs (e.g., `/apps/markdown-table-formatter`) instead of hash-based URLs (`/#/apps/...`).
59-
60-
To support this on GitHub Pages (which is a static file host), we use `react-snap` to pre-render all routes into static HTML files during the build process.
60+
---
6161

62-
- **Pre-rendering:** `react-snap` crawls the application and generates a directory structure that matches the routes (e.g., `build/apps/markdown-table-formatter/index.html`). This allows GitHub Pages to serve the correct file for each route directly.
63-
- **SEO:** This approach ensures that every page has unique, server-side rendered metadata (title, description, open graph tags) for social media previews and search engines.
64-
- **Fallback:** A `404.html` is generated to handle unknown routes.
62+
## Routing and SEO
63+
This project uses `BrowserRouter` for clean URLs. To support this on static hosts like GitHub Pages, we use `react-snap` to pre-render routes into static HTML files during the build process.
6564

6665
### Deployment
67-
6866
The standard `npm run deploy` command handles the build, pre-rendering, and deployment to GitHub Pages automatically.
69-
7067
```bash
7168
npm run deploy
7269
```
7370

71+
### Content Syncing
72+
Stories are managed via git subtrees:
73+
- `npm run pull-stories`: Sync stories from the remote repository.
74+
- `npm run push-stories`: Push local story changes to the remote repository.
75+
7476
---
7577

7678
## Rules of the House
7779
- **Contributing:** Please read our [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines on commit messages and content updates.
78-
- Styling: We use Tailwind. Keep it Brutalist yet polished.
79-
- Icons: We use @phosphor-icons/react. Always use the ones ending in Icon (for example, CpuIcon).
80-
- Logic: Keep it simple. Use Context for global settings like Visual Effects and Animations.
80+
- **Styling**: We use Tailwind. Keep it **Brutalist** yet polished.
81+
- **Components**: Always use `CustomDropdown`, `BrutalistDialog`, and `CustomSlider` for UI consistency.
82+
- **Icons**: We use `@phosphor-icons/react`. Always use the ones ending in `Icon` (e.g., `CpuIcon`).
83+
- **Logic**: Use Context for global settings like Visual Effects and Achievements.
8184

8285
---
83-
Created by Ahmed Samil Bulbul.
86+
Created by [Ahmed Samil Bulbul](https://fezcode.com).

public/media_player/musics.piml

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -39,9 +39,3 @@
3939
(title) Dose of Reality
4040
(artist) Nonak
4141
(url) https://github.com/fezcode/fcdx.cdn/releases/download/TheTag/Dose_of_Reality-Nonak.mp3
42-
43-
> (track)
44-
(title) Bilmem Mi
45-
(artist) DJ Mahmut
46-
(url) https://github.com/fezcode/fcdx.cdn/releases/download/TheTag/Bilmem.Mi.mp3
47-
(cover) https://images.unsplash.com/photo-1555680202-c86f0e12f086?w=500&auto=format&fit=crop&q=60

0 commit comments

Comments
 (0)