Terms for our development retainers, managed hosting, and hourly work
These terms apply to our development retainers, managed hosting, and hourly work (the "Services"). They are provided by 521 Dimensions LLC, doing business as Server Side Up ("Server Side Up," "we," "us," or "our"), to you ("Client," "you," or "your").
Our General Terms of Service are part of these terms, including the sections on use restrictions, payment terms, warranty disclaimer, liability, governing law and disputes, and general provisions. If the two conflict, these terms control for the Services. A quote or order from us controls over both.
You accept these terms when you check the box at checkout, when you pay a quote or invoice that links to them, or when you sign an annual agreement.
We work 9 AM to 5 PM Central, Monday to Friday. We're closed from December 24 through January 1, and on Memorial Day, July 4, Labor Day, Thanksgiving, and the day after Thanksgiving. We also close for the occasional conference or team event, and we'll tell you ahead of time. Retainer clients get a reply within 1 business day. Retainer work always comes first, so hourly clients can expect a reply within 3 business days.
Anything outside your plan is billed hourly. That includes emergencies, jumping the queue, after-hours work, and hosting work your plan doesn't include. Retainer clients pay lower rates for this work.
Retainer clients always get our time first. Standard hourly work is scheduled around their requests, so it may take longer to start.
| Rate | When | Price | Retainer clients | Minimum |
|---|---|---|---|---|
| Standard | During business hours, after retainer work | $250/hour | Included in your plan | 1 hour |
| Priority | During business hours, ahead of the queue | $500/hour | $250/hour | 2 hours |
| After hours | Nights, weekends, and holidays | $750/hour | $500/hour | 2 hours |
After the minimum, we bill in 15-minute increments.
Plans are billed automatically each month through Stripe, or by invoice. You authorize us to charge your payment method each billing cycle.
If a payment fails, Stripe will retry the charge and we'll email you right away. You have 14 days from the first failed attempt to fix it. After 14 days we suspend service, and after 30 days we may end your plan.
A bounced ACH payment costs $50 to cover our bank fees. Late balances accrue interest at 1.5% per month (18% per year), or the maximum rate Wisconsin law allows, whichever is less. In any dispute about payment or a breach of these terms, the winning party can recover reasonable attorney fees and costs.
When we're waiting on you, delivery dates move by the same amount of time.
You own the custom code, designs, and materials we create for you. Once you've paid in full, we assign all rights in that work to you.
We keep ownership of tools and code we built before working with you, anything we publish to our public repositories at github.com/serversideup, and our general knowledge and methods. If any of our tools end up in your project, you get a perpetual, non-exclusive license to use, modify, and maintain them for that project. Third-party open source, such as Laravel or Vue, comes to you under its own license.
We won't share your confidential information, including source code, business plans, financial details, customer data, and anything else marked or reasonably understood to be confidential. We only share it if the law requires it, if you give us written permission, or if it becomes public through no fault of ours. This promise continues after our work together ends.
We may list your company name and logo on our website as a client, and describe the general kind of work we did, such as "web application development." We never share project details, code, pricing, or confidential information. You can opt out at any time by emailing [email protected], and we'll remove you within 30 days. A detailed case study always needs your separate written permission and approval.
We promise to do our work in a professional and workmanlike way, that we have the right to provide the Services and give you ownership of the work, and that the custom work we create won't knowingly infringe anyone's intellectual property.
You agree to indemnify us, which means covering any damages, liabilities, and costs (including reasonable attorney fees), for claims that come from your use of the work we create, your breach of these terms, your violation of a law or someone else's rights, or content and data you give us.
We agree to indemnify you in the same way for claims that the custom work we create infringes someone's intellectual property, as long as you tell us about the claim promptly, let us control the defense and settlement, and reasonably help us.
We may end your plan for non-payment as described in Billing and payment, and right away for harassment or threats toward our team, requests to do something illegal, or a material breach of these terms. We may also end it for any reason with 30 days' written notice, for example if we're not a good fit.
If we end your plan with 30 days' notice, you don't owe any annual discount payback, and we'll keep working through the notice period if you'd like. You still owe any unpaid invoices, and we don't refund work already done.
Within 30 days after our work ends, we'll send you final copies of your code, documentation, and materials. After 90 days, we may delete our working copies. Hosted servers follow the rules in Ending hosting.
Ownership, confidentiality, liability, the promises above, and money owed all continue after our work together ends.
We'll give you at least 30 days' written notice before changes to these terms take effect. For annual plans, changes wait until your end date unless we both agree in writing.
| Plan | Monthly billing | Annual billing |
|---|---|---|
| Single Priority (one task at a time) | $8,500 per month | $7,650 per month |
| Dual Priority (2 tasks at a time) | $16,500 per month | $14,850 per month |
Monthly plans have no long-term commitment, and you can pay by credit card or ACH. Annual plans are a 12-month commitment, billed monthly by ACH bank transfer. Each one starts with an agreement we both sign. It lists your plan, price, start date, and end date.
Every plan includes:
Major upgrades, such as a new framework or language version, go in your queue as requests.
Retainers don't include 24/7 emergency support, on-call service, or guaranteed response times. You can get those at our hourly rates or with a Dedicated Team agreement. We do quality work and make reasonable efforts, but we don't promise that specific features will ship by specific dates. This is a retainer, not a fixed-price project.
An active request is one task or feature that needs focused work, such as "build the user dashboard" or "fix this group of bugs."
On Single Priority, we work on one active request at a time, and other requests wait in a queue. On Dual Priority, we work on two at a time.
A priority track is our focused time set aside for you. It isn't a fixed number of hours. It isn't unlimited hours either. A small request might take an afternoon and a large one might take weeks. We split large requests into pieces you can review as we go.
We recommend setting priorities once a week. Changing them every hour or every day slows everything down, and we'll let you know if it starts to affect the work.
A request is done when it works as agreed and you confirm it in writing (in an issue or by email). If we tell you it's done and you don't reply within 10 business days, it counts as accepted.
Your first month comes with a 7-day money-back guarantee, on monthly plans, annual plans, and Dedicated Team agreements. If you're not happy within the first 7 days, tell us in writing and we'll refund your first month's payment in full. After those 7 days, we don't refund time already worked.
Monthly plans: cancel any time. The cancellation takes effect at the end of your current billing period, and service continues until then. We don't give prorated refunds for a partial month.
Annual plans: these have a 12-month minimum. To leave early, email [email protected] with 60 days' written notice. You'll also pay back the annual discount for every month you received, because the discount is the price of the full-year commitment.
For example, if you cancel after 6 months on the annual Single Priority plan, you paid $7,650 × 6 = $45,900. At the monthly rate, those months would have cost $8,500 × 6 = $51,000. You owe $51,000 - $45,900 = $5,100.
When we get your notice, we'll stop automatic billing and send one final invoice for the 60 days of service plus the discount payback, due within 7 days. We keep working through the 60 days, and you owe them even if you don't use them. Once that invoice is paid, we're fully settled.
If we end an annual plan because of non-payment, you still owe the unpaid monthly charges, the discount payback, any late and bounced-payment fees, and reasonable collection costs and attorney fees.
If you're unhappy with our quality:
This only works with good faith on both sides, and we'll make a genuine effort to fix any real concern.
Annual plans don't renew on their own. At least 60 days before your end date, we'll send you a new agreement for another year, with its price. To renew, sign it before your end date.
Your price is locked until your end date. The price in a new agreement may be different.
If you don't sign a new agreement, you stay on the same plan at the monthly price once your end date passes, and you can cancel any time. For example, if your agreement ends on February 28, 2027, you'll be billed the monthly price starting March 1, 2027.
Monthly plans: switch between Single and Dual Priority any time. The change starts with your next billing cycle.
Annual plans: you can upgrade any time with written notice. The upgrade starts with your next billing cycle and runs through your original end date. For example, if you're billed on the 1st and tell us on March 15, the upgrade starts April 1. You can only downgrade when you renew, by signing a new agreement for the smaller plan. To reduce sooner, you can cancel under the annual cancellation terms above and sign up again on the smaller plan.
We don't give credits or refunds for our scheduled closures, vacations or illness, short delays, or outages at services like GitHub. If we can't work for 14 or more days in a row because of something unexpected, such as a serious illness, we may give you a prorated credit at our discretion.
A Dedicated Team is for companies that want us to run most of their engineering, with the response times and on-call coverage that retainers don't include.
It starts with an agreement we both sign. Your agreement covers:
We send a new agreement at least 60 days before your end date. If you don't sign it, your agreement continues month to month at the same price until either of us ends it with the notice period your agreement sets.
We manage your servers in a cloud provider account that you own and choose. You pay the provider directly, and server costs aren't part of your Dedicated Team price.
These terms apply to Dedicated Team work unless your agreement says otherwise. If the two conflict, your agreement controls. If we miss a response time, your only remedies are the ones your agreement lists.
Managed hosting keeps your servers running, patched, and backed up, so you can focus on your business. Your quote lists your plan, servers, add-ons, price, billing period, and any notice period. Your servers can live in your own cloud provider account or in ours.
| Included in your plan | Billed at our hourly rates |
|---|---|
| Server deployment and management | Changes to your app |
| Operating system security updates | Fixing problems caused by code we didn't review |
| 24/7 uptime monitoring and alerts | Data exports and migrations |
| Automated offsite backups | Disaster recovery tests (quoted separately) |
| DNS management | Anything else your plan doesn't list |
| Fixing anything we break |
Work covered by an active retainer isn't billed hourly.
Add-ons on your quote, such as private GitLab, CI/CD runners, VPN access, and DNS Pro, follow these same terms. You're responsible for the people you give access to, and they must follow the use restrictions in our General Terms.
We can only stand behind code we've reviewed. Code counts as reviewed when it's merged through a merge request or pull request that one of our accounts approved or merged. Code pushed straight to the main branch isn't reviewed. Neither are commits added after our approval, even if the request is merged later.
You're welcome to deploy your own code. Anything you ship without our review, including changes to server or infrastructure files, is your responsibility.
Your code includes code written by AI tools, software you added without telling us, and anything done under your team's logins or tools. Our promises to you cover only the work we do.
If you don't have an active retainer or other agreement with us, your whole app counts as your code, including code we wrote in the past, and keeping its dependencies up to date is your job.
We keep the server secure: the operating system, its security updates, and the server's configuration. Your app's security, including its code and dependencies, is yours, or part of your retainer if you have one. If you won't let us upgrade end-of-life software, such as an unsupported language version, problems it causes count as your code.
If your app exposes your users' data, you're responsible for any notices the law requires you to send them. If a security incident on our side affects your data, we'll tell you within 72 hours of finding it.
Managed hosting covers only the servers we manage and have root access to. Your app may also use services you chose that run somewhere else, such as Supabase or another hosted database, an authentication or payment provider, an email service, object storage, a third-party API, or servers that someone else manages. We don't run those services and can't control when they fail.
Unless we agree in writing, our uptime guarantee, monitoring, backups, and security work don't cover them. Backing up the data you keep in those services, and restoring it, is your responsibility. Most providers offer their own backup tools for this.
If one of them goes down, we'll let you know when we spot it. Any workaround or recovery work is billed at our hourly rates. If you have a retainer, you can put it in your queue instead.
Security patches sometimes need a server reboot. Expect at least one brief reboot a month, usually 1-2 minutes. We try to do it outside business hours, but an urgent patch may not wait. We don't send notice for these reboots. If you can't afford any downtime, we can quote extra servers that keep your app up during reboots.
We don't monitor your traffic or content, and you're responsible for everything your servers and add-ons host and send. Our use restrictions apply to all of it. You also may not use our services to mine cryptocurrency, deliberately overload resources, scan or attack other networks, or hide abuse behind our VPN or tunnels.
If we get a copyright or illegal-content complaint about your server, you have 48 hours after we tell you to remove the content. If you don't, we may suspend the server. We may suspend any service right away if it's the source or target of abuse, or if we see clear signs of illegal activity or anything that puts other customers or our systems at risk. Cleanup is billed at our hourly rates.
When we manage your DNS or Cloudflare settings, such as the proxy, CDN, or browser integrity protection, we're managing the settings that connect visitors to your app. They reduce risk, but they don't make your app secure. We don't inspect your traffic, and a breach of your app, or of any system we don't host, is your responsibility.
If DNS management is the only service you buy from us, we don't patch, monitor, or secure your servers or apps, and the uptime guarantee doesn't apply.
Dedicated CI/CD runners include unlimited build minutes for normal CI/CD work. They may not run non-build workloads, and we may stop jobs that run away or affect other customers. You're responsible for what your pipelines run and the secrets you store in them. If you bring your own runner hardware, keeping it running is your job.
Anything you share through a development tunnel or preview URL can be reached by anyone with the link, so keep sensitive data off them. You're responsible for traffic from your VPN users and your dedicated IP address.
We're your first call when something is down. Usually we have to investigate before we know what caused it.
| What caused it | Who pays |
|---|---|
| A change we made or a setting we configured | We do |
| A cloud provider outage, on a server in our account | We do |
| A cloud provider outage, on a server in your account | You do, at our hourly rates, for any recovery work. Monitoring and letting you know are included. |
| An outage in a service we don't host | You do, at our hourly rates, for any workaround or recovery work |
| An outside attack, such as a DDoS | We do, unless it got in through software you were responsible for updating or code with known exploits that you shipped |
| Code or changes we didn't review | You do, at our hourly rates, including the time we spent investigating. Work outside business hours is billed at the after-hours rate. If you have a retainer and can wait until business hours, you can put the fix in your queue instead. |
| Runaway traffic from your app, or an abused API key | You do, at our hourly rates |
| We can't find the cause | We do |
For example, if you ship an unreviewed change on a Saturday that takes your app down, and we spend 3 hours finding the cause and getting you back online, you pay the after-hours rate: $750 × 3 = $2,250.
When you pay for an investigation, we send the evidence with the invoice. To stop runaway traffic, we may disable the API key or account causing it.
When your server goes down after hours, we start working on it right away, before we know what caused it. Getting you back online matters more than whose fault it was, and who pays gets settled once we know the cause.
If you'd rather we not work after hours, tell us in writing. We'll wait until the next business day, you won't be billed for after-hours work, and downtime outside business hours won't count against your uptime guarantee.
If a deploy caused the problem, we may roll your code back to the last working version in your Git history without asking. A rollback doesn't change your data.
When a rollback isn't enough, usually because a change already altered your database, we restore your server from its latest snapshot. A snapshot restore always loses data. Anything saved since the snapshot is gone, which can be up to 48 hours of data. We can bring most of it back from your daily offsite backup, cutting the loss to 24 hours at most, but that takes extra work. The same who-pays rules apply to that work.
Because a snapshot restore loses data, we ask before we do one. If we can't reach you, we wait. If you'd rather we restore without asking whenever it's the fastest fix, tell us in writing.
If your code or changes cause 2 incidents within 90 days, we may require our review before you deploy, remove your deploy access, or end your hosting with 30 days' notice.
We take automated backups, including daily offsite backups that are encrypted, stored with a separate provider, and kept for up to 365 days. We back up only the servers we manage, not data kept in services we don't host. We can't guarantee that every backup will restore. If you need proof that restores work, we can quote annual, quarterly, or monthly disaster recovery tests.
We guarantee 99.9% uptime each month. If we fall short, ask within 30 days after the month ends, and we'll credit your account for the downtime beyond the 0.1% allowance.
For example, if your management fee is $1,000 for a 30-day month (43,200 minutes), 99.9% uptime allows 43 minutes of downtime. If your server was down for 180 minutes, the extra 137 minutes earn a credit of $1,000 × 137 ÷ 43,200 = $3.17.
Downtime caused by code we didn't review, runaway traffic, maintenance reboots, a suspension, a cloud provider outage, or an outage in a service we don't host doesn't count. Neither does downtime outside business hours if you've opted out of after-hours work.
Credits come off your management fee, not your server costs, and can't be more than 100% of that month's fee. Credits are your only remedy for downtime. If we miss 99.9% in 3 of any 6 months, you may cancel without any early-cancellation charges.
Don't store health information covered by HIPAA, payment card data covered by PCI DSS, or similar regulated data on servers we manage unless we've agreed to it in writing first.
Domains we register for you may sit in your registrar account or ours, but you're always listed as the registrant, so the domain is yours either way. We keep them private and renewed while you're a client. You own 100% of your data.
To end hosting, you sign our cancellation document. It sets your end date and lets you confirm that you have all of your data, or hire us to export it at our hourly rates. If we end your hosting, the end date is the one in our notice.
On the end date:
If you have questions about these terms, contact us at [email protected].
521 Dimensions LLC, doing business as Server Side Up
[email protected]
https://serversideup.net
We're a community of 3,000+ members help each other level up our development skills.
Active Discord Members
We help each other through the challenges and share our knowledge when we learn something cool.
Stars on GitHub
Our community is active and growing.
Newsletter Subscribers
We send periodic updates what we're learning and what new tools are available. No spam. No BS.
Be the first to know about our latest releases and product updates.