https://github.com/raideno/awesome-website
A tool to generate and deploy a visually appealing, filterable website from a YAML file of curated resources. Ideal for creating and sharing "awesome lists".
https://github.com/raideno/awesome-website
Last synced: 5 months ago
JSON representation
A tool to generate and deploy a visually appealing, filterable website from a YAML file of curated resources. Ideal for creating and sharing "awesome lists".
- Host: GitHub
- URL: https://github.com/raideno/awesome-website
- Owner: raideno
- Created: 2025-07-22T18:51:02.000Z (11 months ago)
- Default Branch: main
- Last Pushed: 2025-10-28T10:00:21.000Z (8 months ago)
- Last Synced: 2025-10-28T11:34:16.497Z (8 months ago)
- Language: TypeScript
- Homepage: https://raideno.github.io/awesome-website/
- Size: 6.95 MB
- Stars: 2
- Watchers: 0
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Awesome Website
**NOTE:** To easily deploy an awesome list; Use the [**Template Repository**](https://github.com/raideno/easy-awesome-website).
This repository contains the source code for "Awesome Website", a project that transforms a simple YAML file into a beautiful, interactive, and easily deployable website. It's the perfect solution for creating and maintaining "awesome lists" with a polished and professional look.
**Demo:** [https://raideno.github.io/awesome-website](https://raideno.github.io/awesome-website/)

## Getting Started
To create your own awesome list website, you'll need to fork this repository and modify the `example.list.yaml` file.
### Usage
```yaml
name: Deploy Awesome Website to GitHub Pages
on:
push:
branches: [main]
workflow_dispatch:
jobs:
build-and-deploy:
runs-on: ubuntu-latest
permissions:
contents: read
pages: write
id-token: write
steps:
- name: checkout repository
uses: actions/checkout@v4
- name: build awesome website
uses: raideno/awesome-website@main
with:
# Formatted according to the structure specified below
yaml-path: 'example.list.yaml'
- name: upload build artifact
uses: actions/upload-pages-artifact@v3
with:
path: awesome-website-src/dist
name: github-pages
- name: deploy to github pages
id: deployment
uses: actions/deploy-pages@v4
with:
artifact_name: github-pages
```
1. **Create a GitHub repository.**
2. **Create List File:** Copy [`example.list.yaml`](./example.list.yaml) into your repository.
3. **Customize your list:** Edit the `example.list.yaml` file to add your own title, description, and list of resources. See the [YAML File Structure](#yaml-file-structure) section below for a detailed explanation of the available fields.
4. **Enable GitHub Pages:** In your repository's settings, go to the "Pages" section and select "GitHub Actions" as the source. This will trigger the deployment workflow.
5. **Create Workflow file:** Copy [.github/workflows/deploy-awesome-website.yml](./.github/workflows/deploy-awesome-website.yml) into your repository.
6. **Finally:** Push your changes and wait for the github action to complete in order to see your changes.
Your new awesome list website will be available at `https://.github.io//`.
## YAML File Structure
The `example.list.yaml` file has a clear structure that's easy to understand and modify. Below is a breakdown of each section and its purpose.
| Field | Type | Description |
| :------------ | :------------------- | :---------------------------------------------------------------------- |
| `title` | String | The main title of your awesome list. |
| `description` | String | A short description of your list that will appear in the header. |
| `author` | String | The name of the primary author of the list. |
| `thumbnail` | URL | An optional URL for a thumbnail image to be displayed in the header. |
| `links` | Array of Url Strings | A list of additional links to be displayed in the header. |
| `elements` | Array of Objects | The core of your awesome list, where each object represents a resource. |
### Element Object Structure
| Field | Type | Description |
| :------------ | :--------------- | :---------------------------------------------------------------------- |
| `name` | String | The name of the resource. |
| `description` | String | A short description of the resource. |
| `link` | Url | A relevant URL for the resource (e.g., website, GitHub, documentation). |
| `tags` | Array of Strings | A list of tags specific to this resource for filtering. |
| `notes` | String | A long detailed notes that support markdown and latex. |
| `group` | String | The group to which belongs this element. |
## Deployment
This project includes a GitHub Actions workflow that automatically builds and deploys your website to GitHub Pages. The workflow is triggered every time you push a change to the `main` branch.
To enable automated deployments, make sure to configure GitHub Pages to use the "GitHub Actions" source in your repository's settings.
## Contribution & Development
Copy the [`.env.example`](./.env.example) file to `.env` and fill in the required values.
- Development: `npm run dev`
- Build: `npm run build`
- Start Build: `npm run start`
Do your changes in a separate branch and create a pull request to merge them into the `main` branch or `develop` branch if you are working on a feature.