ifadev
// legal

Terms of service

The full terms that apply to every accepted quote. Plain language, no abusive clauses or blanket liability waivers.

The contract

1. Purpose of the contract

This document, together with its written acceptance (digital signature via the link provided, or explicit email confirmation), forms the complete contract between Ian Feijoo Arranz, trading as ifadev ("ifadev"), and the client identified in the corresponding quote ("the client"), for the design, development and, when expressly contracted, ongoing maintenance services described line by line in that quote's itemized breakdown. The "What it is / Includes / Doesn't include" descriptions for each line item are an integral part of the contract, with the same weight as these clauses — not merely illustrative text.

2. Scope

The project scope is exactly what's described in the itemized breakdown of the accepted quote, including each line's detailed description. Any feature, screen, integration, content or change not explicitly included in that breakdown is out of scope, regardless of whether it looks like a minor or logical consequence of what was contracted — for example: if the quote includes a contact form but doesn't mention a CRM, connecting that form to a CRM is out of scope even if it seems like a natural next step. Anything out of scope is quoted separately before it's built — unplanned work is never added and then billed as if it had always been part of the deal.

3. Quote validity

Each quote is valid until the date shown as "valid until". If no specific date is shown, validity is 30 calendar days from issue. Once that period passes without written acceptance, the quote automatically expires and stops being binding on ifadev, who may update prices, timelines or scope before confirming the project, particularly if any of the catalog prices used to calculate it have changed since. An expired quote can be reactivated at the client's request, but requires explicit confirmation that the stated price and timeline still apply.

4. Scope changes during the project

If the client requests something not included in the original scope during development, ifadev responds in writing within 3 business days with an assessment of the change: its impact on price, on delivery timeline, and whether it requires reworking work already done. The client can accept the assessment, decline it, or propose a smaller alternative. No scope change is carried out without that explicit, written acceptance, and work in progress on the original scope continues while the request is being resolved, unless both parties agree to pause it.

5. Client obligations

The client agrees to: provide, within a reasonable time, the information, content, access and decisions needed to move the project forward; respond to review requests within the reasonable timeframes agreed; and pay the agreed amounts on the agreed dates. Unless another timeframe is explicitly agreed, "reasonable time" means a maximum of 5 business days to respond to a simple information request or decision — a longer period can be agreed for decisions that need more thought, like choosing between design proposals. This includes, when the project requires it, creating third-party accounts in the client's own name (e.g. Vercel, Supabase, a domain, or Apple/Google developer accounts) and granting ifadev collaborator access to them — full personal account credentials are never shared. Client delays in providing information, creating these accounts, or paying, may proportionally push back the delivery date without that counting as a breach by ifadev.

6. Exclusivity

This contract doesn't grant the client exclusivity over ifadev's services. ifadev may work simultaneously with other clients, including in a similar or competing sector, unless expressly agreed otherwise in writing, with the corresponding compensation if agreed. For example, if ifadev builds a booking website for a hairdressing business, it may without conflict take on a similar booking project for another hairdressing business in a different city, unless a specific territorial or sector exclusivity is agreed in the quote.

7. No hidden subcontracting

The project is designed and developed directly by ifadev, without subcontracting the development to third parties, external freelancers or outside teams, unless the client is explicitly informed and accepts it in writing. When the client hires ifadev, they're hiring the person who actually builds the project — not a middleman. This clause doesn't cover third-party tools and services that form part of the project's infrastructure (for example, AI tools that speed up mechanical parts of development, or open-source libraries): this isn't subcontracting, since the design, architecture and judgment behind every project decision always remain ifadev's.

How we work

8. Project phases

Unless the scope makes a phase unnecessary, work moves in this order: brief (gathering requirements, access and content), design (visual and structural proposal), development (building what was agreed), review (per clause 12) and delivery. The initial brief covers, at minimum, the necessary access (clause 5), the content available at that point, the client's visual references, and details of any integration with existing systems. If maintenance is contracted, it starts immediately after delivery, per clause 33. The client can check which phase their project is in at any time from their client portal.

9. Communication

All project follow-up — questions, decisions, changes, issues — happens in writing, by email or whichever channel is explicitly agreed with the client. Calls and meetings aren't used as a regular way of working; this keeps a clear record of every decision made during the project. During development, the client receives a written status update at least every 7 calendar days, even if there's nothing significant to report, so they're never left wondering "how's this going?" with no answer.

10. Timelines

The delivery timeline stated in the quote, if any, is an estimate unless explicitly marked as firm. A significant delay is any deviation greater than 20% over the estimated timeline, or more than 5 calendar days on projects estimated at under a month. Any significant delay is communicated in writing as soon as it's identified, along with a new estimated date and, if relevant, the reason. Timelines also depend on the client meeting their obligations (clause 5); a client delay in providing information or access pushes the delivery date back by the same amount, without that counting as a delay attributable to ifadev.

11. Delivery and review

The project is delivered to a staging environment for the client to review against what was agreed in the quote. This environment is shared via a private link (preview URL or admin panel access, depending on the project), accessible at no extra cost throughout the review period. The client has 15 calendar days from the delivery date to report in writing, with screenshots or steps to reproduce, anything that doesn't match what was contracted. After that period, with no comments received, the delivery is considered accepted and conforming, without prejudice to the subsequent warranty (clause 21).

12. Review round limits

The review phase (clause 11) is meant to fix minor details or deviations from what was agreed, not to introduce scope changes or complete a deliberately incomplete delivery. Up to 2 rounds of review are included on the delivery, each with its own list of comments sent all at once, not trickled in day by day. Extra rounds prompted by requests already resolved in an earlier round, or by a change of mind about something the client already approved, are quoted separately at the catalog's current "one-off support hour" rate. If the client's comments include requests outside the original scope, they're handled per clause 4.

13. Delivery means delivery

What's delivered is the final, reviewed, working result — not a preliminary version with bugs assumed as expected. ifadev doesn't deliberately deliver incomplete work relying on the review phase to finish it. Edge cases not explicitly covered in the scope may exist — for example, behavior with an unusually unexpected input — and if they surface after delivery, they're handled under the warranty (clause 21), and don't by themselves count as proof of an incomplete delivery.

14. Client unresponsiveness

If the client doesn't respond to a request for information, review or a decision needed to move the project forward for more than 30 calendar days, ifadev may pause the project, notifying the client in writing. After 90 calendar days of client inactivity with no response since ifadev's last communication, the project is considered abandoned for all purposes: amounts already paid aren't refunded (they cover work done up to that point), and resuming it later requires a new quote based on the state the work was left in. Periods where ifadev is waiting on an outstanding client payment are excluded from this count, and are governed specifically by clause 19.

15. Compatibility and browsers

Unless expressly agreed otherwise, the project is built and tested to work correctly on current versions of modern browsers (Chrome, Safari, Firefox, Edge) and on standard mobile, tablet and desktop screen sizes. "Current versions" means the last two major released versions of each browser and, for mobile apps, the iOS and Android versions with meaningful usage share according to public statistics available at the time of development. Operation isn't guaranteed on outdated or officially unsupported browsers, nor on devices with specifications well below the market standard.

16. Content

Unless expressly contracted as a separate line item, the client is responsible for providing the text, images, video and other content the project needs, with the corresponding usage rights over it. If the client doesn't have final content ready when it's needed to move a screen or section forward, ifadev may use placeholder content (sample text, temporary stock images) so it doesn't block the rest of the project, to be swapped for real content before final delivery. ifadev doesn't verify the client's rights over content they provide and isn't responsible for its improper use.

Price and payment

17. Price

The price on each quote is fixed for the scope described, with VAT shown separately per current regulations. A single total price is shown: we don't present several "financing options" with different total amounts for the same work. If installments are offered, it's at the same total price, with no hidden surcharge for splitting it. This fixed price covers exactly the scope described in the itemized breakdown; it doesn't cover scope changes (clause 4) or recurring third-party costs (clause 20), which are separate from ifadev's service price.

18. Payment method

Unless the quote states otherwise, payment is split into two instalments: 40% on accepting the quote, before work starts, and 60% on delivery. Each instalment is invoiced separately, with its own invoice number, when it's generated. The second instalment's invoice is only issued once ifadev confirms the project is ready for delivery — never before. Payment is made by card or bank transfer (SEPA) through Stripe's secure payment gateway, via the link the client receives with the quote or in their client portal. If a card payment is declined, the client receives an automatic notice from Stripe and has 5 calendar days to resolve it with a new attempt or an alternative payment method before clause 19 applies.

19. Non-payment

If the client doesn't pay the first instalment, the project doesn't start. If the second instalment isn't paid within the agreed period after delivery, ifadev first sends a written reminder with a new deadline of at least 5 calendar days. If payment still isn't resolved after that, ifadev may suspend access to the delivered project until it's paid, without prejudice to any legal action available and to any late-payment interest that applicable commercial late-payment regulations allow. Once payment is resolved, access is restored within 24 business hours.

20. Third-party costs not included

The price on each quote doesn't include recurring costs for third-party services the project needs to run — hosting, domain, payment APIs, email sending, and similar — which are the client's responsibility, since they're contracted in the client's own name from day one, per clause 5. As a rough guide, these costs typically range from 0€/month (free Vercel/Supabase tiers for small projects) to 50-100€/month for projects with more traffic or advanced features; ifadev gives a specific estimate for the client's case before they create each account. ifadev can advise on which services to use and help set them up, but doesn't cover their cost or act as a billing intermediary for them.

Warranty, ownership and data

21. Warranty

Includes 60 calendar days from delivery to fix any error within the contracted scope, at no extra cost. An "error" is behavior that doesn't match what's described in the quote; requests for new features don't count as errors, nor do behavior changes caused by third-party updates released after delivery. To activate the warranty, the client just needs to report the error in writing, with screenshots or reproduction steps; ifadev confirms receipt within 3 business days and gives an estimate of when it'll be fixed. This warranty is an additional service that doesn't replace or limit the client's legal rights against an actual breach of contract, which don't expire after 60 days.

22. Ownership of code and design

The source code, designs and other materials created specifically for the project become the client's full property once payment of the agreed price is completed in full. Until then, ifadev retains ownership of those materials. ifadev may show the project in its portfolio (name, screenshots, general description of the work) unless the client explicitly asks otherwise in writing. This portfolio use never includes the client's real user data or confidential business information (clause 26); it's limited to the visual design and a general project description.

23. Third-party components

The project may include third-party libraries, components or services under their own licenses (typically open-source). These components aren't owned by ifadev or the client and are governed by their own terms of use, unaffected by this contract. ifadev selects these components after checking their license permits the project's intended commercial use, but isn't responsible for future license changes a component's provider makes after delivery.

24. Data protection

If the project involves processing personal data belonging to the client's own users — not just the client's own data as the contracting party — both parties will sign a separate data processing agreement (per GDPR Article 28) before ifadev starts processing that data, detailing the security measures applied and the data controller's instructions. Depending on the project, these measures include: encryption of data in transit and at rest, per-user access control, and periodic backups of the processed data.

25. SEO and rankings

When a quote includes technical SEO work, this means applying technical best practices (load speed, semantic structure, metadata, structured data, setting up tools like Google Search Console). ifadev doesn't guarantee specific search result rankings or timeframes to achieve them, since they depend on factors outside its control: search engine algorithms, competition in the sector, domain age, and third-party activity.

Confidentiality and liability

26. Confidentiality

Both parties agree to keep confidential any non-public information they learn about because of the project (business data, access credentials, user information) and not disclose it to third parties without authorization, except where legally required. This obligation stays in force during the project and for a minimum of 2 years after it ends, unless the information stops being confidential for reasons unrelated to a breach of this clause — for example, because the client themselves makes it public.

27. Liability and third parties

ifadev doesn't manage or guarantee the availability of third-party services chosen or contracted by the client (hosting, payment gateways, domains, external APIs), unless expressly stated otherwise in writing in the quote. If one of these services goes down or changes in a way that affects the project, ifadev helps diagnose the issue, but the definitive fix — and its cost, if any — depends on that service's own provider. No quote or marketing material promises a service level (SLA) the contract doesn't equally back up.

28. Limitation of liability

Except in cases of willful misconduct or gross negligence, and without prejudice to any non-waivable consumer-protection rights the client holds, ifadev's total liability under the contract is limited to the amount the client actually paid for the project. For example, if a fault in the delivered platform causes the client to lose a single sale, ifadev's liability for that, if any, couldn't exceed the total amount paid for the project — never the value of that sale or of hypothetical future sales. ifadev isn't liable for indirect damages, lost profits, or business decisions the client makes based on using the delivered platform.

29. No blanket liability waivers

ifadev doesn't include clauses that make the client broadly waive their right to claim for actual errors or breaches. The limitation in clause 28 only applies within the terms and limits the law allows.

30. Force majeure

Neither party is liable for failures caused by circumstances beyond their reasonable control (widespread third-party infrastructure outages, natural disasters, supply cuts, or other force majeure causes). The affected party will notify the other as soon as possible, and both will agree in writing on a new reasonable timeline. If the force majeure cause lasts more than 30 calendar days, either party may request cancellation per clause 31, with no penalty beyond what that clause already provides.

Cancellation and term

31. Early cancellation

Either party may request in writing to cancel the project before it's finished. If the client requests cancellation, the first instalment paid isn't refundable (it covers the design, architecture and development work already started), and any work actually done beyond that instalment is billed additionally, at a proportional price based on the total agreed. If ifadev requests cancellation for reasons not attributable to the client, the proportional part of the first instalment corresponding to work not done will be refunded.

32. Backups after completion

After final delivery, or after a cancellation under clause 31, ifadev keeps a backup of the delivered code and materials for a maximum of 90 calendar days, after which it may be deleted without notice. From delivery onward, it's the client's responsibility to keep their own backups of the project and its data.

33. Ongoing maintenance (if contracted)

If the client contracts the maintenance service, its price is fixed and guaranteed for a minimum of 6 months from when it starts. Any price change is notified in writing at least 30 days in advance, with the option to cancel penalty-free if the client doesn't accept the new price. After that initial 6-month minimum, the client can cancel maintenance at any time with 15 calendar days' notice; there's no mandatory commitment beyond that initial period.

34. Assignment of the contract

Neither party may assign the contract's rights or obligations to a third party without the other party's prior written consent, except in the case of the client's corporate succession, in which case the contract continues with the successor entity on the same terms.

Final provisions

35. Validity of acceptance and electronic signature

Accepting a quote via digital signature on the link provided, or via explicit email confirmation, is fully valid as contractual acceptance between the parties, equivalent to a handwritten signature on paper, under applicable electronic signature regulations. Alongside the signature, the date, time, IP address and the browser or device used are recorded, stored as evidence of acceptance and available to the client on request.

36. Entire agreement and severability

The accepted quote and these terms make up the entire agreement between the parties regarding the described project, and supersede any prior negotiation or communication on the same subject. If any clause in this document were held invalid or unenforceable, the rest of the clauses remain fully in force.

37. Governing law and jurisdiction

This contract is governed by Spanish law. If the client is an end consumer, the venue of their home jurisdiction is always respected under applicable consumer regulations — a different venue is never imposed. In business-to-business contracts, both parties submit to the courts expressly agreed in the quote or, failing that, to those of ifadev's registered address.

38. Right of withdrawal

If the client is contracting as a consumer within the meaning of Article 3 of Royal Legislative Decree 1/2007 (Spain's LGCU) — i.e. acting outside their trade, business or profession — they would legally have 14 calendar days from accepting the quote to withdraw from the contract without giving a reason. However, ifadev starts work immediately after the quote is accepted and the first instalment is paid, precisely to meet the short delivery timelines typical of these projects (weeks, not months). By accepting a quote, the client is therefore expressly requesting that execution begin before the 14-day period ends, aware of this before accepting. As a result, under Article 103.1.m) of the LGCU, the client's right of withdrawal ends once the project enters the development phase (clause 8). This clause doesn't affect warranty rights (clause 21) or the client's other legal protections against an actual breach, which remain fully in force and don't lapse because of this clause.

39. No implied waiver of contract rights

If either party doesn't insist on strict compliance with a clause of this contract at some point — for example, accepting an extra review round outside clause 12 as a one-off courtesy, or tolerating a payment a few days late — that won't be read as waiving the right to demand strict compliance in the future, nor as an implied change to that clause.

40. Contract language and formal notices

This contract is drafted and governed in its Spanish-language version, which prevails over any translation given to the client for informational purposes (for example, in English, if the project is managed in that language). Formal notices between the parties — scope-change notices, delay communications, claims, cancellation requests — are made in writing to the email address each party has on file in the quote or in ifadev's system, and are considered validly delivered unless there's proof of a technical delivery failure not attributable to the sender.

41. Continuity guarantee

ifadev only takes on a new project when it can guarantee the dedication and timelines described in this contract, without spreading attention too thin across too many clients at once. In the exceptional case that Ian Feijoo Arranz couldn't continue the project due to a personal force majeure event (serious illness or another sudden, unforeseeable cause), the client has the right to receive, within a maximum of 15 calendar days from being notified of that circumstance: the project's source code and materials in whatever state they're in at that point — regardless of whether payment is complete, as a one-off exception to clause 22 that applies only to this scenario — and a refund of the proportional part of amounts already paid that doesn't correspond to work actually done.