Skip to content

Commit 01c67bb

Browse files
committed
Add initial Awesome Developer Essentials repository.
Scaffold the full awesome-list structure with governance, automation workflows, and a curated README focused on developer news, communities, productivity, learning, and tool discovery with natural daily.dev placement. Made-with: Cursor
1 parent 9369a05 commit 01c67bb

File tree

15 files changed

+984
-0
lines changed

15 files changed

+984
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
name: Category proposal
2+
description: Suggest a new category or reorganization.
3+
title: "[Category Proposal]: "
4+
labels:
5+
- type:taxonomy
6+
- area:categories
7+
- status:triage
8+
body:
9+
- type: dropdown
10+
id: proposal-type
11+
attributes:
12+
label: Proposal type
13+
options:
14+
- Add category
15+
- Merge categories
16+
- Rename category
17+
- Split category
18+
validations:
19+
required: true
20+
21+
- type: textarea
22+
id: current-state
23+
attributes:
24+
label: Current state
25+
description: Explain the current structure and problem.
26+
validations:
27+
required: true
28+
29+
- type: textarea
30+
id: proposed-change
31+
attributes:
32+
label: Proposed change
33+
validations:
34+
required: true

.github/ISSUE_TEMPLATE/config.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
blank_issues_enabled: false
2+
contact_links:
3+
- name: Security policy
4+
url: https://github.com/dailydotdev/awesome-developer-essentials/security/policy
5+
about: Please report security issues privately when possible.
6+
- name: Code of conduct
7+
url: https://github.com/dailydotdev/awesome-developer-essentials/blob/main/code-of-conduct.md
8+
about: Please review community expectations before posting.
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
name: Report dead link
2+
description: Report a broken or redirected resource URL.
3+
title: "[Dead Link]: "
4+
labels:
5+
- type:bug
6+
- area:links
7+
- priority:high
8+
- status:triage
9+
body:
10+
- type: input
11+
id: section
12+
attributes:
13+
label: Section
14+
description: Category where the broken link appears.
15+
validations:
16+
required: true
17+
18+
- type: input
19+
id: resource-name
20+
attributes:
21+
label: Resource name
22+
validations:
23+
required: true
24+
25+
- type: input
26+
id: broken-url
27+
attributes:
28+
label: Broken URL
29+
placeholder: https://example.com
30+
validations:
31+
required: true
32+
33+
- type: input
34+
id: replacement-url
35+
attributes:
36+
label: Suggested replacement URL
37+
placeholder: https://example.com
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
name: Suggest a resource
2+
description: Propose a new resource for the awesome list.
3+
title: "[Suggestion]: "
4+
labels:
5+
- type:suggestion
6+
- area:content
7+
- status:triage
8+
body:
9+
- type: input
10+
id: resource-name
11+
attributes:
12+
label: Resource name
13+
description: Name of the resource you want to add.
14+
validations:
15+
required: true
16+
17+
- type: input
18+
id: resource-url
19+
attributes:
20+
label: Canonical URL
21+
description: Direct homepage URL.
22+
placeholder: https://example.com
23+
validations:
24+
required: true
25+
26+
- type: textarea
27+
id: description
28+
attributes:
29+
label: Suggested list description
30+
description: Use list format: [Name](URL) - Description.
31+
placeholder: "[Example](https://example.com) - One-sentence factual description."
32+
validations:
33+
required: true
34+
35+
- type: textarea
36+
id: why
37+
attributes:
38+
label: Why this belongs
39+
description: Explain scope fit and uniqueness.
40+
validations:
41+
required: true

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## Description
2+
3+
Describe what changed and why it should be included.
4+
5+
## Type of change
6+
7+
- [ ] Add a new resource
8+
- [ ] Update an existing resource
9+
- [ ] Fix formatting/typos
10+
- [ ] Improve categorization
11+
12+
## Checklist
13+
14+
- [ ] I have read `contributing.md`.
15+
- [ ] My change is specifically relevant to developer essentials.
16+
- [ ] I used the format `[Name](URL) - Description.` for list entries.
17+
- [ ] I checked for duplicate entries.
18+
- [ ] Descriptions are concise, objective, and end with a period.
19+
- [ ] I verified links are valid and not broken.
20+
- [ ] I used canonical HTTPS URLs without shorteners or tracking parameters.
21+
- [ ] I disclosed any affiliation with the added/updated resource.
22+
- [ ] This pull request contains a single logical change.
23+
24+
## Additional context
25+
26+
Add references or screenshots if they help review.

.github/dependabot.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
version: 2
2+
updates:
3+
- package-ecosystem: github-actions
4+
directory: /
5+
schedule:
6+
interval: weekly
7+
day: monday
8+
open-pull-requests-limit: 5
9+
commit-message:
10+
prefix: chore

.github/labels.yml

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
- name: type:suggestion
2+
color: "0E8A16"
3+
description: New resource suggestions.
4+
- name: type:bug
5+
color: "D73A4A"
6+
description: Broken links, factual errors, or regressions.
7+
- name: type:taxonomy
8+
color: "1D76DB"
9+
description: Category structure changes.
10+
- name: type:maintenance
11+
color: "6F42C1"
12+
description: Recurring upkeep work.
13+
14+
- name: area:links
15+
color: "5319E7"
16+
description: URL and link-quality tasks.
17+
- name: area:categories
18+
color: "0E8A16"
19+
description: Category naming and placement tasks.
20+
- name: area:content
21+
color: "FBCA04"
22+
description: Description and editorial tasks.
23+
24+
- name: status:triage
25+
color: "BFD4F2"
26+
description: Needs maintainer review.
27+
- name: status:needs-info
28+
color: "D4C5F9"
29+
description: Missing required details.
30+
- name: status:ready
31+
color: "0E8A16"
32+
description: Ready for implementation.
33+
34+
- name: priority:high
35+
color: "B60205"
36+
description: Time-sensitive quality work.
37+
- name: priority:medium
38+
color: "FBCA04"
39+
description: Important improvements.
40+
- name: priority:low
41+
color: "C2E0C6"
42+
description: Nice-to-have tasks.

.github/workflows/lint.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
name: Lint
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
9+
jobs:
10+
guard-internal-files:
11+
runs-on: ubuntu-latest
12+
steps:
13+
- name: Checkout repository
14+
uses: actions/checkout@v6
15+
16+
- name: Block internal planning files
17+
run: |
18+
if [ -f "PLAN.md" ] || [ -f "PROMOTION.md" ]; then
19+
echo "Internal planning files must not be committed."
20+
echo "Remove PLAN.md and PROMOTION.md from git."
21+
exit 1
22+
fi
23+
24+
awesome-lint:
25+
needs: guard-internal-files
26+
runs-on: ubuntu-latest
27+
steps:
28+
- name: Checkout repository
29+
uses: actions/checkout@v6
30+
with:
31+
fetch-depth: 0
32+
33+
- name: Setup Node.js
34+
uses: actions/setup-node@v6
35+
with:
36+
node-version: 20
37+
38+
- name: Run awesome-lint
39+
run: npx awesome-lint

.github/workflows/maintenance.yml

Lines changed: 117 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,117 @@
1+
name: Maintenance
2+
3+
on:
4+
workflow_dispatch:
5+
schedule:
6+
- cron: "0 9 * * 1"
7+
- cron: "0 9 1 * *"
8+
9+
permissions:
10+
contents: read
11+
issues: write
12+
13+
jobs:
14+
link-check:
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout repository
18+
uses: actions/checkout@v6
19+
20+
- name: Run link checker
21+
id: lychee
22+
continue-on-error: true
23+
run: |
24+
npx lychee \
25+
--verbose \
26+
--no-progress \
27+
--max-concurrency 8 \
28+
--accept 200,429 \
29+
--format markdown \
30+
README.md > lychee-report.md
31+
32+
- name: Count dead links
33+
id: dead-links
34+
run: |
35+
if [ "${{ steps.lychee.outcome }}" = "success" ]; then
36+
echo "dead_count=0" >> "$GITHUB_OUTPUT"
37+
exit 0
38+
fi
39+
dead_count=$(awk '/^\s*\[✗\]/{count++} END {print count+0}' lychee-report.md)
40+
echo "dead_count=${dead_count:-0}" >> "$GITHUB_OUTPUT"
41+
42+
- name: Open or update dead-link issue
43+
if: steps.dead-links.outputs.dead_count != '0'
44+
uses: actions/github-script@v8
45+
with:
46+
script: |
47+
const fs = require("fs");
48+
const title = "Automated dead link report";
49+
const report = fs.readFileSync("lychee-report.md", "utf8");
50+
const body = [
51+
"## Dead links detected",
52+
"",
53+
`Detected by scheduled maintenance run on ${new Date().toISOString()}.`,
54+
"",
55+
`Dead links found: ${process.env.DEAD_COUNT}`,
56+
"",
57+
"### Report",
58+
"",
59+
report
60+
].join("\n");
61+
62+
const { data: issues } = await github.rest.issues.listForRepo({
63+
owner: context.repo.owner,
64+
repo: context.repo.repo,
65+
state: "open"
66+
});
67+
68+
const existing = issues.find((issue) => issue.title === title);
69+
70+
if (existing) {
71+
await github.rest.issues.update({
72+
owner: context.repo.owner,
73+
repo: context.repo.repo,
74+
issue_number: existing.number,
75+
body
76+
});
77+
} else {
78+
await github.rest.issues.create({
79+
owner: context.repo.owner,
80+
repo: context.repo.repo,
81+
title,
82+
body,
83+
labels: ["type:maintenance", "area:links", "priority:high"]
84+
});
85+
}
86+
env:
87+
DEAD_COUNT: ${{ steps.dead-links.outputs.dead_count }}
88+
89+
monthly-stale-entry-review:
90+
if: github.event_name == 'workflow_dispatch' || (github.event_name == 'schedule' && github.event.schedule == '0 9 1 * *')
91+
runs-on: ubuntu-latest
92+
steps:
93+
- name: Open monthly stale-entry review issue
94+
uses: actions/github-script@v8
95+
with:
96+
script: |
97+
const now = new Date().toISOString().slice(0, 10);
98+
const title = `Monthly stale entry review (${now.slice(0, 7)})`;
99+
const body = [
100+
"## Monthly stale entry review",
101+
"",
102+
"Review the list for stale entries and open targeted cleanup PRs.",
103+
"",
104+
"### Checklist",
105+
"- [ ] Verify links for recently changed websites.",
106+
"- [ ] Remove or replace deprecated entries.",
107+
"- [ ] Refresh outdated descriptions.",
108+
"- [ ] Re-check category fit for recent additions."
109+
].join("\\n");
110+
111+
await github.rest.issues.create({
112+
owner: context.repo.owner,
113+
repo: context.repo.repo,
114+
title,
115+
body,
116+
labels: ["type:maintenance", "priority:medium", "status:triage"]
117+
});

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
PLAN.md
2+
PROMOTION.md

0 commit comments

Comments
 (0)