Skip to content

Commit e0bb23d

Browse files
committed
chore: full opensource cleanup and repo polish
- Add LICENSE (MIT, Nadim Tuhin 2024-2025) - Add CODE_OF_CONDUCT.md (Contributor Covenant v2.1) - Add GitHub issue templates: bug report, feature request, new tool - Add pull request template with checklist - Add CI workflow (lint + test + build on push/PR to main) - Rewrite README: centered hero, 5 badges, tools table, screenshots, clean structure - Remove security scanning docs from README (too internal-facing)
1 parent 475682a commit e0bb23d

8 files changed

Lines changed: 368 additions & 219 deletions

File tree

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
---
2+
name: Bug Report
3+
about: Report a bug to help us improve
4+
title: "[Bug] "
5+
labels: [bug]
6+
assignees: ''
7+
---
8+
9+
## Describe the bug
10+
11+
A clear and concise description of what the bug is.
12+
13+
## Steps to reproduce
14+
15+
1. Go to '...'
16+
2. Click on '...'
17+
3. Enter value '...'
18+
4. See error
19+
20+
## Expected behavior
21+
22+
A clear and concise description of what you expected to happen.
23+
24+
## Actual behavior
25+
26+
A clear and concise description of what actually happened.
27+
28+
## Browser / OS
29+
30+
- Browser: [e.g. Chrome 124, Firefox 125, Safari 17]
31+
- OS: [e.g. macOS 14, Windows 11, Ubuntu 22.04]
32+
33+
## Screenshots (optional)
34+
35+
If applicable, add screenshots to help explain your problem.
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: Feature Request
3+
about: Suggest an idea or improvement
4+
title: "[Feature] "
5+
labels: [enhancement]
6+
assignees: ''
7+
---
8+
9+
## Is your feature request related to a problem?
10+
11+
A clear and concise description of what the problem is. Example: I'm always frustrated when [...]
12+
13+
## Describe the solution you'd like
14+
15+
A clear and concise description of what you want to happen.
16+
17+
## Describe alternatives you've considered
18+
19+
A clear and concise description of any alternative solutions or features you've considered.
20+
21+
## Additional context
22+
23+
Add any other context, mockups, or screenshots about the feature request here.

.github/ISSUE_TEMPLATE/new_tool.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
---
2+
name: New Tool Request
3+
about: Suggest a new developer tool to add to devutils
4+
title: "[New Tool] "
5+
labels: [new-tool, enhancement]
6+
assignees: ''
7+
---
8+
9+
## Tool name
10+
11+
What should this tool be called?
12+
13+
## What does it do?
14+
15+
A clear and concise description of what the tool does and how it works.
16+
17+
## Why is it useful for developers?
18+
19+
Explain the use case and why developers would benefit from having this tool in devutils.
20+
21+
## Any existing online version of this tool?
22+
23+
Link to any existing online implementations of this tool (e.g. on other sites) so we can understand the expected behavior and UX.

.github/pull_request_template.md

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
## Description
2+
3+
<!-- A clear and concise description of what this PR does. -->
4+
5+
## Type of change
6+
7+
- [ ] Bug fix
8+
- [ ] New feature
9+
- [ ] New tool
10+
- [ ] Documentation update
11+
- [ ] Other (describe):
12+
13+
## Checklist
14+
15+
- [ ] All tests pass (`npm test` or equivalent)
16+
- [ ] Lint passes with no new errors (`npm run lint` or equivalent)
17+
- [ ] Screenshots included for any UI changes
18+
- [ ] No `console.log` statements left in production code
19+
- [ ] Tool (if applicable) works fully offline without external network requests

.github/workflows/ci.yml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
lint-and-test:
11+
name: Lint & Test
12+
runs-on: ubuntu-latest
13+
14+
steps:
15+
- name: Checkout
16+
uses: actions/checkout@v4
17+
18+
- name: Setup pnpm
19+
uses: pnpm/action-setup@v4
20+
with:
21+
version: latest
22+
23+
- name: Setup Node.js
24+
uses: actions/setup-node@v4
25+
with:
26+
node-version: 20
27+
cache: pnpm
28+
29+
- name: Install dependencies
30+
run: pnpm install --frozen-lockfile
31+
32+
- name: Lint
33+
run: pnpm lint
34+
35+
- name: Test
36+
run: pnpm test -- --watchAll=false --passWithNoTests
37+
38+
build:
39+
name: Build
40+
runs-on: ubuntu-latest
41+
needs: lint-and-test
42+
43+
steps:
44+
- name: Checkout
45+
uses: actions/checkout@v4
46+
47+
- name: Setup pnpm
48+
uses: pnpm/action-setup@v4
49+
with:
50+
version: latest
51+
52+
- name: Setup Node.js
53+
uses: actions/setup-node@v4
54+
with:
55+
node-version: 20
56+
cache: pnpm
57+
58+
- name: Install dependencies
59+
run: pnpm install --frozen-lockfile
60+
61+
- name: Build
62+
run: pnpm build
63+
64+
- name: Upload dist artifact
65+
uses: actions/upload-artifact@v4
66+
with:
67+
name: dist
68+
path: dist/
69+
retention-days: 7

CODE_OF_CONDUCT.md

Lines changed: 124 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,124 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="utf-8" />
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
6+
<title>Page not found</title>
7+
<style>
8+
:root {
9+
--colorRgbFacetsTeal600: 2 128 125;
10+
--colorTealAction: var(--colorRgbFacetsTeal600);
11+
--colorRgbFacetsNeutralLight200: 233 235 237;
12+
--colorHr: var(--colorRgbFacetsNeutralLight200);
13+
--colorRgbFacetsNeutralLight700: 53 58 62;
14+
--colorGrayDarkest: var(--colorRgbFacetsNeutralLight700);
15+
--colorGrayLighter: var(--colorRgbFacetsNeutralLight200);
16+
--colorText: var(--colorGrayDarkest);
17+
--effectShadowLightShallow: 0 1px 10px 0 rgb(53 58 62 / 6%),
18+
0 2px 4px 0 rgb(53 58 62 / 8%);
19+
--colorRgbFacetsNeutralDark900: 6 11 16;
20+
}
21+
body {
22+
font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI",
23+
Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji",
24+
"Segoe UI Emoji", "Segoe UI Symbol";
25+
background: white;
26+
overflow: hidden;
27+
margin: 0;
28+
padding: 0;
29+
line-height: 1.5;
30+
color: rgb(var(--colorText));
31+
}
32+
33+
@media (prefers-color-scheme: dark) {
34+
body {
35+
background: rgb(var(--colorRgbFacetsNeutralDark900));
36+
}
37+
}
38+
39+
h1 {
40+
margin: 0;
41+
font-size: 1.375rem;
42+
line-height: 1;
43+
}
44+
45+
h1 + p {
46+
margin-top: 8px;
47+
}
48+
49+
.main {
50+
position: relative;
51+
display: flex;
52+
flex-direction: column;
53+
align-items: center;
54+
justify-content: center;
55+
height: 100vh;
56+
width: 100vw;
57+
}
58+
59+
.card {
60+
position: relative;
61+
width: 75%;
62+
max-width: 364px;
63+
padding: 24px;
64+
background: white;
65+
border-radius: 8px;
66+
box-shadow: var(--effectShadowLightShallow);
67+
border: 1px solid rgb(var(--colorGrayLighter));
68+
}
69+
70+
a {
71+
margin: 0;
72+
font-weight: 600;
73+
color: rgb(var(--colorTealAction));
74+
text-decoration-skip-ink: all;
75+
text-decoration-thickness: 1px;
76+
text-underline-offset: 2px;
77+
text-decoration-color: rgb(var(--colorTealAction) / 0.5);
78+
transition: text-decoration-color 0.15s ease-in-out;
79+
}
80+
81+
a:hover,
82+
a:focus-visible {
83+
text-decoration-color: rgb(var(--colorTealAction));
84+
}
85+
86+
p:last-of-type {
87+
margin-bottom: 0;
88+
}
89+
90+
hr {
91+
border: 0;
92+
height: 1px;
93+
background: rgb(var(--colorHr));
94+
margin-top: 16px;
95+
margin-bottom: 16px;
96+
}
97+
98+
.your-site {
99+
font-size: 0.875rem;
100+
}
101+
</style>
102+
</head>
103+
<body>
104+
<div class="main">
105+
<div class="card">
106+
<h1>Page not found</h1>
107+
<p>
108+
Looks like you’ve followed a broken link or entered a URL that doesn’t
109+
exist on this site.
110+
</p>
111+
<hr />
112+
<p class="your-site">
113+
If this is your site, and you weren’t expecting a 404 for this path,
114+
please visit Netlify’s
115+
<a
116+
href="https://answers.netlify.com/t/support-guide-i-ve-deployed-my-site-but-i-still-see-page-not-found/125?utm_source=404page&utm_campaign=community_tracking"
117+
>“page not found” support guide</a
118+
>
119+
for troubleshooting tips.
120+
</p>
121+
</div>
122+
</div>
123+
</body>
124+
</html>

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) 2024-2025 Nadim Tuhin
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.

0 commit comments

Comments
 (0)