From MVP to MDP

Hello again! It's been a while since our last post, but we've been hard at work transforming our Minimum Viable Product, a prototype that you put up with, into a Minimum Delightful Product, a product with lots of potential that you love to use.

Here are a few of the big improvements we've made so far (I'll use 🛠️ to denote a technical section).

A better experience on more devices

We made using the application more enjoyable on more devices:

  • We moved the navigation to the side on large devices. This gives you more room to work with, and it makes organization and user settings easier to reach.
  • We made the navigation responsive on small devices. Using a toggle button on small screens frees up a sizable chunk of real estate.
  • We changed the editor's toolbar to pop up when you highlight text, instead of being visible all the time, helping you focus on your content.
  • We added context-sensitive help links. When you click the "docs" link on a context-aware page, the corresponding docs page will open in a new tab.
  • We changed the home page from a grid of thumbnails to a list of titles and descriptions. Since content is often text, a list can be easier to scan.

76% faster API requests

We made our API 76% faster by switching to a new authentication method. The new method required no changes from our customers, and it maintained the same high level of security. The only downside is that a new API key can only be viewed once, immediately after it's created. We made it easy to copy the newly created key to your computer's clipboard, though.

Tunable performance

We added persistent caching to our software development kits (SDK) to help you tune performance for your environment:

  • When a feature is in development (i.e., the feature is changing frequently and the application is low volume, internal traffic), you can use the SDK's default in-memory store to view content changes instantaneously with slower response times.
  • When a feature is in production (i.e., the feature is more stable and the application is high volume, customer traffic), you can use persistent caching to update content less frequently and improve your application's response time.

More renders with fewer requests

We added tags to help you group content snippets and retrieve them in a single network request. Even a simple application can contain dozens of snippets, and rendering them on-demand, one-by-one adds up.  

A tag is a short word or phrase you can use to group your content by domain, product, feature, or whatever you'd like. Then, you can use our SDKs or API to render and retrieve the entire group with a single network request.

🛠️ Tags are especially powerful when combined with background jobs. By periodically rendering and caching content outside of your request cycle, you can insert dynamic content anywhere you'd like without any hit to your application's response time.

Tons of other changes  

We sprinkled in other improvements along the way.

  • We added a search feature to our documentation to help you find what you need.
  • We rewrote our Terms of Service to be easier to read and to better explain what you can expect from us (i.e., our best at a great service) and what we expect from you (i.e., your best not to break things).
  • We rewrote our Privacy Policy to better explain what data we collect, how we collect it, and what we do with it. As always, rest assured we make money providing a great service, not selling your data.
  • 🛠️ We re-architected our SDKs from static- to instance-based. Static packages are harder to maintain, test, debug, and integrate with other packages. Plus, they make it more difficult to use object-oriented principles like interfaces, inheritance, encapsulation, and more.
  • And, of course, we made tons of smaller improvements to performance, reliability, and usability.

Lots more on the way

Here are a few features we're considering for the future to help your team save even more time:

  • Grouping snippets into projects to help you organize your snippets into logical groups
  • Remembering where snippets are used to help you preview or deprecate them
  • Defining a snippet's variables to help you know which variables are available or required
  • Adding notifications for comments and suggestions to help you and your team stay up-to-date
  • Adding "@" mentions to comments and suggestions to help your team get one another's attention
  • Improving the snippet search feature to help you find the right snippet at the right time
  • Securing invitations with a passphrase to help keep your organization secure
  • Saving snippet versions to help you restore a previous version
  • And, lots more!

If you use Jahuty, keep the feedback coming! We are on a mission to save your software development team tons of time. If you don't use Jahuty yet, we'd love for you to try it and let us know what you think.

As always, you have my email: jack@jahuty.com. Happy content management!