How to Contribute a New Tool to FckSignups: The Complete Contribution Process for Adding New Tools
To contribute a new tool to the FckSignups repository, submit a structured GitHub issue using the provided template and either run the addToolAutomation.py script to auto-populate metadata or manually append the tool object to tools.json, then open a pull request against the main branch.
The FckSignups project (also referred to as NoSignups) maintains a curated directory of open-source tools that require no user registration. Understanding the contribution process for adding new tools ensures your submission meets the required schema and quality standards defined in the repository's automated tooling and contribution guidelines.
Understanding the Tool Schema and Categories
Before initiating a contribution, verify your tool complies with the guidelines specified in /README.md (lines 75-81). Each entry must conform to the Tool schema defined in the README (lines 37-51) and be added to the tools.json file.
Required fields for every tool:
- id – URL-safe unique identifier
- name – Human-readable tool name
- description – Brief summary (≤ 140 characters)
- url – Direct link to the live tool
- category – Must be one of:
productivity,design,development,writing,privacy,utilities,data,media, oreducation - tags – Array of 3-5 keywords for searchability
- github – Repository URL (must be open-source)
- license – SPDX license identifier
- stars – GitHub star count
- addedAt – ISO date string (YYYY-MM-DD)
- section – Typically
meets-criteria
Step-by-Step Contribution Process for Adding New Tools
Submit a Structured GitHub Issue
Begin by creating a new issue using the template located at .github/ISSUE_TEMPLATE/request-to-add-a-tool.md. This template automatically applies the tool-submission label and enforces the required data structure.
Fill in the <SUBMISSION> block with:
- Tool name and description
- Live URL and GitHub repository link
- Proposed category and relevant tags
Automated Processing with addToolAutomation.py
The recommended workflow uses the automation script to parse your issue and query the GitHub API. The script management_tools/addToolAutomation.py leverages management_tools/githubBridge.py to fetch accurate star counts and license information.
Run the script from the repository root:
python management_tools/addToolAutomation.py
When prompted, provide the issue URL:
Issue URL: https://github.com/BraveOPotato/FckSignups/issues/456
The script parses the submission block, queries the API, and inserts the completed object into tools.json (referenced in management_tools/addTool.py as JSON_PATH = "../tools.json"). Output will resemble:
{
"id": "my-awesome-tool",
"name": "My Awesome Tool",
"description": "An awesome no‑signup web app",
"url": "https://awesome.example.com",
"category": "productivity",
"tags": ["awesome", "no‑signup"],
"github": "https://github.com/user/awesome-tool",
"license": "MIT",
"stars": 987,
"addedAt": "2026-09-08",
"section": "meets-criteria"
}
Manual Addition to tools.json
If you prefer manual editing, open tools.json and locate the "tools" array. Append a new object following the schema above. Ensure the JSON is valid and the github URL points to an open-source repository. Save the file and commit your changes.
Validate Changes Locally
Verify your addition renders correctly by running the development server:
npm install
npm run dev
Navigate to http://localhost:5173 and confirm the tool appears in its designated category with accurate metadata.
Create and Submit a Pull Request
Push your branch to GitHub and open a pull request against the main branch. Maintainers will review for compliance with the no-signup philosophy, open-source licensing, and schema accuracy before merging.
Key Files in the Contribution Workflow
| File | Purpose |
|---|---|
.github/ISSUE_TEMPLATE/request-to-add-a-tool.md |
Structured template for new tool submissions |
tools.json |
Central data store containing all tool entries |
management_tools/addToolAutomation.py |
Automates metadata retrieval and JSON insertion |
management_tools/githubBridge.py |
GitHub API wrapper for fetching stars and license data |
management_tools/addTool.py |
Defines configuration paths and helper functions |
README.md |
Contains contribution guidelines and schema definitions |
Summary
- The contribution process for adding new tools centers on the
tools.jsonfile and structured GitHub issues. - Use the issue template at
.github/ISSUE_TEMPLATE/request-to-add-a-tool.mdto ensure consistent data submission. - Run
addToolAutomation.pyto automatically fetch GitHub stars and license data via thegithubBridge.pymodule. - Manual edits require strict adherence to the JSON schema with fields like
id,category, andsection. - Validate locally using
npm run devbefore submitting your pull request tomain.
Frequently Asked Questions
What information is required to submit a new tool?
You must provide the tool name, description (140 characters maximum), live URL, GitHub repository link, category from the predefined list, and 3-5 descriptive tags. The repository must be open-source, as the automation scripts query the GitHub API for license and star count verification.
How does the addToolAutomation.py script work?
The script prompts for a GitHub issue URL, parses the <SUBMISSION> block using regex, then calls githubBridge.py to query the GitHub REST API. It retrieves the exact star count and SPDX license identifier, constructs the JSON object, and appends it to tools.json at the path defined in addTool.py.
What categories are available for tool classification?
FckSignups accepts nine predefined category IDs: productivity, design, development, writing, privacy, utilities, data, media, and education. These are defined in the Categories table in README.md and enforced by the automation scripts when processing new submissions.
How do I verify my changes before submitting a pull request?
After updating tools.json, run npm install followed by npm run dev to start the local development server. Browse to http://localhost:5173 to visually confirm the tool appears in the correct category with accurate metadata, ensuring no JSON syntax errors exist before creating your PR against the main branch.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →