Blog →

Embracing Hard Limits

Table of content

by

Rafael Masson

November 17, 2022

· Updated on

All software needs limits. Almost every part of any software needs a hard limit. At least every part that deals with lists. In most languages and databases, this means arrays and strings.

This sounds obvious, but I suggest every engineer reading this open up their codebase and look around. Surely you have length validations here and there, but if you never dedicated half a day to go over all lists aiming to set a limit on each, you likely have several cracks remaining.

I do not mean obvious user-facing limits, such as the 5-user cap on Starter or the 25-user cap on our free trial. I mean limits that 99% of users will never hit. For instance, pasting several paragraphs in your email subject instead of the body. Or likewise, typing the “Notes” of a contact in the “First name” field. Or everyone’s infinite loops you’ll be plagued with as soon as you introduce a public API.

The only scenario where you do not need a hard limit is when a list is always accessed through pagination. After all, pagination means there is already a LIMIT involved.

Embrace Hard Limits

I love hard limits. I love knowing they are there. I love introducing new ones with any new feature. Hard limits are key to keeping me asleep at night.

They are also low-effort; they don’t need public documentation. You naturally implement decent error messages for the few outliers that will hit them, but nobody needs to have these limits in mind to plan whether they will affect their business.

You should even make it a requirement to not have to disclose these limits. If you start seeing a significant enough number of exceptions, you’ve most likely just set it too low. The point is not to annoy or restrain users; it’s to avoid crashes. Increasing one limit from 500 to 1000 will not cause your app to crash, but it may make the difference between one user hitting that limit every month instead of every day.

It’s also an occasion to remember that our world is diverse. Stay humble, accept and embrace the fact that some of your customers will have use cases you never expected. Don’t fall into the trap of accusing people of misusing your software.

One day, we did have an organization hit a roadblock due to a limit and they emailed us. They needed to set over 25 custom fields on a contact. Did we ask them to explain their situation and figure how they could adjust their usage? Of course not. We had set that 25-limit arbitrarily at first so we could just as well increase it to 50. Problem solved!

Avoid Bikeshedding

I suggest you constraint yourself to a short list of numbers for all your limits:

1 • 5 • 10 • 50 • 100 • 500 • 1000 • 5000

These are the easiest to remember for anyone. There is also a wide enough gap between each to make decisions easy. It’s wasteful to wonder whether 100, 200 or 300 is appropriate. Any doubt 100 isn’t enough? Pick 500, that’s plenty!

“1” comes into play when used as KB or MB. What should be the max length of an HTML email body? I’m sure you’ll agree 1 MB is OK, given that’s roughly a Harry Potter book.

What size of JSON payload should our web server refuse to parse? Either 5 MB or 10 MB sounds great. The latter is what Amazon API Gateway uses.

When you reply to an email thread and we quote it under your response, where do we stop? 10 KB of quoted text for the win.

How many labels will you apply to that one conversation? I hope 100 is fine with you.

How many concurrent sessions do you need before you smell like multiple users not wanting to pay a fair price per seat? Never heard a soul needing more than 10.

The list goes on.

Hope you enjoyed this and will spend your next morning adding sweet limits all over your codebase. Do it, it’s fun! ✌️

Related articles

Explore more
Team Collaboration

May 18, 2022

The 14 best team collaboration software for small businesses in 2026

The 14 best team collaboration tools for small businesses in 2026, by use case, with current pricing and honest trade-offs for each.

Read more
Team Collaboration

September 16, 2025

The 6 most secure email clients for collaborative teams

We looked at 6 of the most popular email clients for teams on the market, and scored them on 6 criteria: security hygiene, auditing & accountability, access, removal, and sign-in controls, privacy & data handling, external verification, and data residency.

Read more
Customer Service

November 14, 2023

11 best email management software in 2026 (+ how to choose one)

Email management software helps you spend less time in your inbox and more time on actual work. Here are the 11 tools worth considering in 2026, what each is best for, and how to pick one that fits your team.

Read more
Productivity

December 4, 2023

How much time do we actually spend on email at work?

If your inbox feels like a full-time job, it’s because it kind of is. Here’s what the research says about how much time we spend on email, what factors drive it up, and six strategies to take some of that time back.

Read more
Tips & Templates

January 5, 2023

How to Improve Your Customer Service with Collaboration

Learn why customer service collaboration matters, how to implement it across teams, and which tools help your team resolve issues faster—with practical tactics for emails, calls, and cross-departmental coordination.

Read more
Tips & Templates

March 23, 2021

Automate Customer Feedback

Four practical ways to use Missive rules to collect customer feedback—request social reviews, send feedback to a spreadsheet via webhooks, embed surveys in signatures, and automate follow-ups.

Read more
Productivity

January 22, 2026

10 best AI tools for small businesses in 2026

The 10 best AI tools for small businesses in 2026, with verified pricing: Missive, Jasper, Copilot, CloudTalk, Dialpad, Freshdesk, Aissist, HeyGen, Grammarly, and HubSpot.

Read more
Customer Service

September 23, 2020

How to add live chat to Squarespace (and manage it without losing your mind)

Squarespace doesn’t have built-in live chat. Here are the six tools worth shortlisting (with prices), how to add a chat widget, and how to handle conversations alongside your email.

Read more
Customer Service

August 24, 2020

How to add live chat to WordPress (without another plugin you’ll forget to check)

Most WordPress live chat plugins create a separate inbox you have to remember to check. Here’s how to add live chat that feeds directly into the same inbox as your email.

Read more

We live in our inboxes.
Let’s make email enjoyable.

Try us out for free, invite a few people to get a feel, and upgrade when you’re ready.

4.8 → Over 1000 reviews
4.8
→ 1000+ reviews