Skip to content

Commit 885dc54

Browse files
committed
chore: Initial commit
0 parents  commit 885dc54

59 files changed

Lines changed: 13002 additions & 0 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.editorconfig

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
root = true
2+
3+
[*.{js,ts,vue,mjs,json,yml,yaml,md}]
4+
charset = utf-8
5+
end_of_line = lf
6+
insert_final_newline = true
7+
indent_style = space
8+
indent_size = 2
9+
trim_trailing_whitespace = true
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Bug report
2+
description: Report a reproducible bug
3+
title: "bug: "
4+
labels:
5+
- bug
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Thank you for reporting a bug.
11+
Please provide enough detail to reproduce the issue.
12+
13+
- type: textarea
14+
id: summary
15+
attributes:
16+
label: Summary
17+
description: What happened?
18+
placeholder: A short description of the bug
19+
validations:
20+
required: true
21+
22+
- type: textarea
23+
id: steps
24+
attributes:
25+
label: Steps to reproduce
26+
description: Include exact commands or actions
27+
placeholder: |
28+
1. Run ...
29+
2. Open ...
30+
3. See error ...
31+
validations:
32+
required: true
33+
34+
- type: textarea
35+
id: expected
36+
attributes:
37+
label: Expected behavior
38+
placeholder: What should happen instead?
39+
validations:
40+
required: true
41+
42+
- type: textarea
43+
id: environment
44+
attributes:
45+
label: Environment
46+
description: OS, Node.js version, pnpm version, browser
47+
placeholder: macOS 14, Node 22, pnpm 10, Chrome 136
48+
validations:
49+
required: true
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Feature request
2+
description: Suggest an improvement for this starter
3+
title: "feat: "
4+
labels:
5+
- enhancement
6+
body:
7+
- type: markdown
8+
attributes:
9+
value: |
10+
Thanks for the suggestion.
11+
Please describe the problem and the proposed solution.
12+
13+
- type: textarea
14+
id: problem
15+
attributes:
16+
label: Problem statement
17+
description: What problem are you trying to solve?
18+
placeholder: It is difficult to ...
19+
validations:
20+
required: true
21+
22+
- type: textarea
23+
id: proposal
24+
attributes:
25+
label: Proposed solution
26+
description: What should be added or changed?
27+
placeholder: Add ... so users can ...
28+
validations:
29+
required: true
30+
31+
- type: textarea
32+
id: alternatives
33+
attributes:
34+
label: Alternatives considered
35+
description: Any workaround or alternative approach?
36+
37+
- type: textarea
38+
id: context
39+
attributes:
40+
label: Additional context
41+
description: Mockups, links, or examples

.github/pull_request_template.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## Summary
2+
3+
-
4+
5+
## Changes
6+
7+
-
8+
9+
## Verification
10+
11+
- [ ] `pnpm lint`
12+
- [ ] `pnpm typecheck`
13+
- [ ] `pnpm build`
14+
15+
## Checklist
16+
17+
- [ ] Documentation updated (if needed)
18+
- [ ] No secrets or credentials are included
19+
- [ ] Screenshots added for UI changes (if applicable)

.github/workflows/ci.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
name: ci
2+
3+
on:
4+
push:
5+
pull_request:
6+
7+
permissions:
8+
contents: read
9+
10+
jobs:
11+
ci:
12+
runs-on: ${{ matrix.os }}
13+
14+
strategy:
15+
matrix:
16+
os: [ubuntu-latest]
17+
node: [22]
18+
19+
steps:
20+
- name: Checkout
21+
uses: actions/checkout@v6
22+
23+
- name: Install pnpm
24+
uses: pnpm/action-setup@v6
25+
26+
- name: Install node
27+
uses: actions/setup-node@v6
28+
with:
29+
node-version: ${{ matrix.node }}
30+
cache: pnpm
31+
32+
- name: Install dependencies
33+
run: pnpm install --frozen-lockfile
34+
35+
- name: Lint
36+
run: pnpm run lint
37+
38+
- name: Typecheck
39+
run: pnpm run typecheck
40+
41+
- name: Build
42+
run: pnpm run build

.gitignore

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
# Nuxt dev/build outputs
2+
.output
3+
.data
4+
.nuxt
5+
.nitro
6+
.cache
7+
dist
8+
9+
# Node dependencies
10+
node_modules
11+
12+
# Logs
13+
logs
14+
*.log
15+
16+
# Misc
17+
.DS_Store
18+
.fleet
19+
.idea
20+
.playwright-cli
21+
22+
# Local env files
23+
.env
24+
.env.*
25+
!.env.example

AGENTS.md

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
# AGENTS.md
2+
3+
## Project Shape
4+
5+
- This is a Nuxt 4 single-app template, not a monorepo. The app lives under `app/`.
6+
- Main shell: `app/app.vue`; page entrypoint: `app/pages/index.vue`.
7+
- The changelog repository is configured in `app/app.config.ts` as `repository: "nuxt/ui"`.
8+
- Release data is fetched from `https://ungh.cc/repos/<owner>/<repo>/releases` in `app/composables/useChangelogReleases.ts` and rendered by `app/components/ChangelogTimeline.vue`.
9+
- GitHub-flavored markdown links are resolved by `remark-github` in `nuxt.config.ts`; keep its `repository` option aligned with `app/app.config.ts` when changing the demo repository.
10+
11+
## Commands
12+
13+
- Install: `pnpm install` (`postinstall` runs `nuxt prepare`).
14+
- Dev server: `pnpm dev`; for agent-run browser checks, prefer `pnpm dev --port 4000` or another free port in `4000-4100`.
15+
- Verification order used by CI and PR template: `pnpm lint`, `pnpm typecheck`, `pnpm build`.
16+
- There is no test script in this repo; do not invent one.
17+
- If `.nuxt/` is missing or stale and lint/typecheck fail to load Nuxt-generated config, run `pnpm install` or `pnpm exec nuxt prepare` first.
18+
19+
## Tooling And UI Conventions
20+
21+
- Package manager is `[email protected]`; CI runs on Node 22.
22+
- shadcn-vue components live in `app/components/ui` per `components.json` and `nuxt.config.ts`.
23+
- `components.json` includes the `@stackhacker-ui` registry at `https://ui.stackhacker.io/r/{name}.json`.
24+
- Styling uses Tailwind CSS v4 through `@tailwindcss/vite`; prefer semantic tokens/classes already used in the app.
25+
- Editor formatting is 2-space indentation, LF, final newline, and trimmed trailing whitespace.
26+
27+
## Browser And Deployment Checks
28+
29+
- Use `playwright-cli` for browser verification; do not use `chrome-devtools` for this repo's agent checks.
30+
- Check both desktop and mobile for UI changes.
31+
- Treat SSR hydration mismatches as publication blockers. Random or time-zone-dependent rendering must be deterministic on server and client.
32+
- Existing examples: `app/components/SkyBg.vue` uses seeded deterministic stars; `app/utils/changelog.ts` formats dates with `timeZone: "UTC"`.
33+
- Canonical public demo URL: `https://changelog-template.stackhacker.io/`.
34+
- Cloudflare Pages build settings are `pnpm build` -> `dist` from GitHub `stackhacker-ui/changelog` on `main`.
35+
36+
## Boundaries
37+
38+
- Keep private planning, handoff, and agent research artifacts out of the public repo.
39+
- Public docs and UI should not link to private project docs.

LICENSE

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
MIT License
2+
3+
Copyright (c) 2026 shadcn-nuxt-ui
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.

README.md

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# Stackhacker UI Changelog Template
2+
3+
[![Stackhacker UI](https://img.shields.io/badge/Made%20with-Stackhacker%20UI-00DC82?logo=nuxt&labelColor=020420)](https://ui.stackhacker.io)
4+
5+
Use this template to display GitHub release notes as a changelog with [Stackhacker UI](https://ui.stackhacker.io), Nuxt MDC, and shadcn-vue components.
6+
7+
- [Live demo](https://changelog-template.stackhacker.io/)
8+
- [Documentation](https://ui.stackhacker.io/docs/getting-started)
9+
10+
<a href="https://changelog-template.stackhacker.io/" target="_blank">
11+
<picture>
12+
<source media="(prefers-color-scheme: dark)" srcset="public/screenshots/changelog-dark.png">
13+
<source media="(prefers-color-scheme: light)" srcset="public/screenshots/changelog-light.png">
14+
<img alt="Stackhacker UI Changelog Template preview" src="public/screenshots/changelog-light.png" width="1280">
15+
</picture>
16+
</a>
17+
18+
## Quick Start
19+
20+
```bash [Terminal]
21+
pnpm dlx nuxi@latest init my-changelog -t gh:stackhacker-ui/changelog
22+
cd my-changelog
23+
pnpm install
24+
pnpm dev
25+
```
26+
27+
## Config
28+
29+
To customize the GitHub repository that the changelog fetches releases from, update the `repository` key in `app/app.config.ts`:
30+
31+
```ts [app/app.config.ts]
32+
export default defineAppConfig({
33+
repository: "nuxt/ui", // Change this to your GitHub repository (e.g. "facebook/react")
34+
});
35+
```
36+
37+
Release notes are fetched from `https://ungh.cc/repos/<owner>/<repo>/releases` and rendered with Nuxt MDC. GitHub-flavored links in markdown are resolved for the configured default repository in `nuxt.config.ts` under `mdc.remarkPlugins.remark-github.options.repository`.
38+
39+
## Environment
40+
41+
No environment variables are required for the default changelog. The app reads public GitHub release data through ungh.
42+
43+
## Setup
44+
45+
Make sure to install the dependencies:
46+
47+
```bash
48+
pnpm install
49+
```
50+
51+
## Development Server
52+
53+
Start the development server on `http://localhost:3000`:
54+
55+
```bash
56+
pnpm dev
57+
```
58+
59+
To use another port:
60+
61+
```bash
62+
pnpm dev --port 4000
63+
```
64+
65+
## Production
66+
67+
Build the application for production:
68+
69+
```bash
70+
pnpm build
71+
```
72+
73+
Locally preview production build:
74+
75+
```bash
76+
pnpm preview
77+
```
78+
79+
Check out the [Nuxt deployment documentation](https://nuxt.com/docs/getting-started/deployment) for more information.
80+
81+
## Quality checks
82+
83+
```bash
84+
pnpm lint
85+
pnpm typecheck
86+
pnpm build
87+
```
88+
89+
## Renovate integration
90+
91+
Install [Renovate GitHub app](https://github.com/apps/renovate/installations/select_target) on your repository and you are good to go.

SECURITY.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
# Security Policy
2+
3+
## Supported Versions
4+
5+
This repository is a starter template and is maintained on the `main` branch.
6+
7+
- `main`: supported
8+
9+
## Reporting a Vulnerability
10+
11+
If you discover a security vulnerability, please report it privately.
12+
13+
- Open a private security advisory on GitHub if available for this repository.
14+
- If private advisories are not enabled, contact the maintainers directly and include:
15+
- A clear description of the issue
16+
- Reproduction steps
17+
- Potential impact
18+
- Suggested mitigation (if known)
19+
20+
Please do not open a public issue for vulnerabilities before a fix is available.
21+
22+
## Response Expectations
23+
24+
- We will acknowledge reports as soon as possible.
25+
- We will validate the report and work on a fix.
26+
- We will coordinate disclosure timing with the reporter.

0 commit comments

Comments
 (0)