Creating Project
Here is a step-by-step process that enables sellers to list and monetize their repositories efficiently. The process includes associating repositories, configuring presets, setting up project metadata, pricing, and additional settings.
This section will guide you through the following:
- Selecting and associating a repository to a project.
- Configuring project presets (e.g., for
web). - Defining project settings, including descriptions, pricing, and user limitations.
- Understanding the required repository structure.
Step 1: Selecting and Associating a Repository
Before creating a project, you need to associate a GitHub repository with it.
-
Navigate to “Create Project”:
- Log in to your seller account.
- Go to Dashboard > Projects > Create New Project.
-
Select a Repository:
- You'll see a list of repositories connected to your GitHub account.
- Choose the repository you want to associate with this project.
-
Verify Repository Requirements:
Ensure the selected repository meets the following structure requirements:- README.md: A detailed README file explaining your project, usage instructions, and installation steps.
- LICENSE: A license file that defines the usage terms for your project.
- COPYRIGHT.md: This file is required for the platform and specifies copyright ownership.
Note: Projects without these files cannot be listed on the platform.
-
Confirm Association:
- Once verified, confirm the repository association.
- You'll be redirected to the Preset Configuration tab.
Step 2: Configuring Presets
Presets allow you to define the technical stack and focus areas for your project. This helps users quickly understand the components used to build your project.
Preset Types
Currently, the platform supports the following preset type:
- Web: Designed for web-based projects, whether frontend, backend, or full-stack applications.
More preset types (e.g.,
mobile,IoT) will be added in future updates.
Configuring Presets
Once you select the Web preset, configure the fields based on the parts of the project you've used. Only include relevant technologies and tools for your project.
| Field | Description |
|---|---|
| Domain | Select the domain or focus of your project: Frontend, Backend, or Full-stack. |
| Frameworks | List the frameworks used in the project (e.g., React, Next.js, Express, Vue.js). |
| Languages | Specify programming languages (e.g., JavaScript, TypeScript, Python, Rust). |
| Testing Frameworks | Mention tools used for testing (e.g., Jest, Mocha, Cypress). |
| Documentation Frameworks | Specify tools used to create documentation (e.g., Docusaurus, MkDocs). |
| Deployment Methods | Include how the project is deployed (e.g., Vercel, Netlify, AWS, Docker). |
| Monitoring/Observability | Add tools for monitoring and observability (e.g., Sentry, Datadog, Prometheus). |
| Databases | Mention database technologies (e.g., PostgreSQL, MongoDB, MySQL). |
| Email Services | Specify email services integrated into the project (e.g., SendGrid, Mailgun). |
| Gateways/APIs | Include API gateways or integrations (e.g., Stripe, REST APIs, GraphQL). |
Example: If your project is a backend-focused web app, you may select:
- Domain: Backend
- Frameworks: Express.js
- Languages: JavaScript
- Testing: Jest
- Deployment: Docker
Step 3: Setting Project Details
After configuring presets, proceed to define your project's details under the following tabs:
Basic Tab
-
Project Name:
- Enter a clear and concise name for your project.
-
Project Description:
- Write a detailed description explaining:
- The purpose of the project.
- Features and functionality.
- Setup and usage instructions.
A well-written description helps attract potential users.
- Write a detailed description explaining:
Metadata Tab
-
Project Type:
- Select the type of project:
- Starter: Basic projects with minimal setup.
- Advanced: Full-featured, production-ready projects.
- Component: Modular components or libraries.
- Select the type of project:
-
Experience Level:
- Define the target user experience level:
- Beginner
- Intermediate
- Expert
- Define the target user experience level:
-
Technologies:
- This field is automatically populated based on your preset configuration.
Monetization Tab
-
Pricing:
- Set your project price. You can choose:
- One-time Payment: Fixed price for the project.
- Subscription (coming soon): Recurring payment model.
- Set your project price. You can choose:
-
Limit Users:
- You can limit the number of users for your project (optional).
- Example: Set a cap of 10 users to keep exclusivity.
- You can limit the number of users for your project (optional).
Step 4: Configuring Project Settings
The Settings tab provides advanced options to customize your project further:
-
Track Repository Changes:
- Enable tracking for repository updates (e.g., commits, new branches).
- Users will receive notifications for changes.
-
Show Contributions:
- Allow users to view contributions (e.g., commit history, contributors) to understand the project's progress.
-
Accept Tips:
- Enable a tipping option so users can optionally support your work.
-
Additional Customization:
- Define any additional settings relevant to your project.
Step 5: Finalizing Your Project
Once all configurations are complete:
-
Review your project details.
-
Verify that the associated repository contains the required files:
- README.md
- LICENSE
- COPYRIGHT.md
-
Click “Publish Project”.
Your project will now be listed on the platform and available for users to browse and purchase.
Why Presets and Configurations Matter?
The preset system ensures:
- Clarity: Users can quickly understand the technologies used in your project.
- Focus: Sellers only need to provide relevant information for their specific domain (e.g., backend, frontend).
- Standardization: A consistent structure makes it easier for users to compare projects.
By configuring presets and providing essential details, sellers maintain control while offering transparency to users.
Next Steps
After creating your project:
- Monitor project performance via your seller dashboard.
- Track repository changes and user engagement.
- Continue improving and updating your project based on user feedback.