As we narrow down what our productivity/planning app Thymer will be like, we move more and more to the “no” column. Or to the “not yet” column, which is exactly the same as “no” but easier to swallow.
Some functionality we consider essential. Those are the core features that people will be using all the time. Long tail features are features that make the product better, but that don’t excite people and don’t make your product stand out. For an MVP you want to focus on core features and BS features exclusively.
As a reminder to myself that saying no should feel painful, here is a clip of Jony Ive talking about it:
Okay, here we go. A shocking amount of work to do. It’s still a pretty rough list because it’s still early and we try to keep an open mind about what’s important and what’s not. It’s pretty likely that the MVP will deviate a ton from what we describe here. But that’s OK.
Core features
- The editor. This includes multi columns, line wrapping, virtual scrolling, indentation, sorting, searching, and everything else you’d expect an editor to do.
- Command menu. Popularized by sublime text, but now also used by VSCode and many other apps. Basically instead of littering the interface with buttons and dropdowns you can have a list of commands that the user can search through with auto-completion. Shortcuts for the popular commands.
- Planning layout, where tasks can be assigned to one or more users. This is where you get a sense of what has to get done.
- Zoom in/zoom out. So you can focus on one part of the document.
- Offline first. For the app to feel responsive keep track of all changes and send those to the server later. No spinners every time you do something.
- Flawlessly sync changes made by multiple users, and resolve conflicts where necessary.
- Conventional task features. Mark complete, in progress, done, important, waiting for something else, due dates, etc.
- Onboarding tour. We want people to try our app without getting overwhelmed.
- Very basic settings/preferences. Close account.
- Splash/marketing website. Has to explain what Thymer does and why it’s worth trying.
- Group management. Add/remove users from your team.
Things we really want (time permitting)
- Real time multiuser support. When two people work on the same document each should see the other person type. This is super hard to add after launching, so we want to have it working by the time we launch.
- Versioning. One of the great benefits of using pen & paper for note taking is that you can so easily go back to your previous notes. Most software products are terrible in this regard, and we think we can do better. For this we need to make some kind of system that allows the user to go back in time, see changes, and so on.
- Billing/invoicing. Would be nice to get this done before the launch. Otherwise we just have to scramble after the launch to get it done.
- Client side API with a console/shell. We believe apps should be programmable by the user. We can’t put buttons for everything in the user interface, but we can expose many of the internals to the user so they can go wild.
- Bulk actions, of all sorts.
What we probably won’t have time for
- Calendar syncing with Google/MS Office/Apple calendar. Having to use a planning app and a calendar side-by-side isn’t great. The problem with calendar syncing is that it’s just another feature, except it this one takes a disproportionate amount of time to get to work right. Once we have users I have no doubt many will start demanding calendar integration. But it’s something we can postpone for now, so we do.
- Email notifications when team members make changes. Email summaries for changes in a day/week/etc. Nice to have, of course, but it’s something that can be cut, so it gets cut.
- End-to-end encryption. Because almost all logic is client-side already, end-to-end encryption is doable and certainly a nice feature to have. We are pretty paranoid about security ourselves, and we think it’s a good thing when e2e encryption becomes a standard practice. It’s not without downsides, though.
- Super advanced editor features, like block selection or multiple cursors. Copy-pasting rich content between browser tabs.
- User documentation or manual.
- Theme support. Dark/light mode.
- Extensive customizability.
- JSON API
BS features
- Cool animations
- Tips & tricks
- We’ve got many wacky ideas. But it’s a distraction for now. BS features we’ll add in the final stretch.
Definite no
- Mobile app of any kind. Definitely no iPhone or Android app. Making a good mobile app for anything is a big project. We think in most situations an MVP should be either for desktop use or for mobile devices. It’s pretty unusual for apps to have a 50/50 split in desktop/mobile usage, and for light apps a mobile-first design is still usable on the desktop.
- Extensive browser support. If it works on Chrome (and maybe Safari/Edge) we’re happy.
- Localization. English it is.
- File attachments. It’s just another long tail feature.
- Desktop app. Some day, I’m sure. Do we want to mess with electron on some kind of cross platform UI framework right now? Nope. No time.
As you can tell, our ideas at this point are pretty vague. As Thymer starts to take shape we’ll get a better sense of what is really critical. With only 60 days or so to go I expect we’ll be forced to cut even more from our “must have” list.