1
Enter the full legal names and contact details of both parties
Use the contractor's legal name or registered business name — not a username or trade name — and the client's registered entity name. Include each party's address and primary contact for notices.
💡 If the contractor operates through a single-member LLC, use the LLC name as the contracting party. This limits the contractor's personal liability and reinforces the independent contractor classification.
2
Attach a detailed Statement of Work as Schedule A
List every deliverable by name, the technology stack, acceptance criteria, due dates, and milestone payment amounts. The more specific the scope, the harder it is for either party to claim ambiguity later.
💡 Use user stories or acceptance tests as acceptance criteria — 'the login feature passes all unit tests in the test suite' is more enforceable than 'the login feature works correctly.'
3
Set the rate, invoice cadence, and payment terms
Choose hourly, fixed-fee, or milestone-based compensation and state the exact amounts. Set a specific net-payment period (Net 15 is standard for freelance work) and include late-payment interest of 1–2% per month.
💡 For projects over $10,000, structure at least 30% of the fee as an upfront deposit — it commits the client financially and gives the contractor working capital before delivery.
4
Complete the IP assignment and Schedule B for pre-existing IP
Confirm the IP assignment clause covers all code, documentation, and derivative works. In Schedule B, list any reusable libraries, frameworks, or tools the contractor will incorporate but retain ownership of.
💡 Ask the contractor to disclose all open-source components and their licenses before signing. GPL-licensed code incorporated into proprietary software can trigger a viral licensing obligation that forces the client to open-source their product.
5
Define confidential information and the survival period
List the categories of information that qualify as confidential — source code, product roadmaps, customer data, pricing, and technical architecture. Set the post-engagement confidentiality period at two to three years.
💡 If the contractor will have access to production databases or customer PII, add a data processing addendum or GDPR/CCPA-specific annex as a separate schedule.
6
Set termination notice, kill fee, and handover obligations
Define the notice period (14 days is standard for short projects; 30 days for long-term engagements), the kill fee percentage for client-initiated early termination, and the contractor's obligation to deliver all code and credentials within five business days of notice.
💡 Include a specific clause requiring the contractor to transfer all repository access, API keys, and third-party service accounts — not just the code files — on termination.
7
Choose the governing law and dispute mechanism
Select the jurisdiction where the client is located as the governing law for most domestic engagements. For cross-border contracts, consider a neutral arbitration venue and specify the arbitration rules (AAA, JAMS, or ICC).
💡 If the contractor is in California, do not include a non-compete clause — California courts will void it entirely, and its presence may create grounds to challenge other provisions.
8
Execute before any work begins
Both parties must sign the agreement and all schedules before the contractor writes a single line of code. Post-start signatures create fresh-consideration problems that can void IP assignment and confidentiality provisions.
💡 Use Business in a Box eSign to timestamp execution and store the fully executed agreement in BIB Drive for each engagement.