Standard Notes

@sn

Notes on privacy, simplicity, and sustainable development.

6,587 words

https://standardnotes.org @StandardNotes
You'll only receive email when Standard Notes publishes a new post

Bye-Bye Mailchimp

Some time ago, a user, in response to an email we sent out to everyone outlining some new app updates, said that he did not feel comfortable with us using Mailchimp to send out newsletters. Privacy is first and foremost on our list of priorities, and this user had a great point. But, if not Mailchimp, how else could we manage to send emails on a large-scale basis? There aren’t really any privacy-focused email services, nor am I even sure what that would look like. The only solution was building our own.

Building our own was something we were reluctant to undertake. Forums on the web speak of the unthinkable dangers involved in managing your own email service. There’s just too much infrastructure that needs to be set in place before one can deploy a functioning mass email system, including handling bounces and complaints. Not to mention the scary aspect of risking a poor deliverability rate if these components are not handled properly.

Challenges and impossibility aside, we had no choice in the matter. Privacy is important, and the less dependencies we have on fluctuating third-party privacy policies, the sounder we can sleep at night.

As of June 10, 2018, Standard Notes sends emails completely independent of Mailchimp, including mass emails. We use a custom built architecture on top of SQS and SES, which we share below, that fulfills our simple requirements in ways Mailchimp couldn't.

There are a few components worth mentioning:

Unsubscribe Mechanism

One of the most limiting aspects of Mailchimp, and many other newsletter service providers, is the default unsubscribe mechanism. Out of the box, you only get a “Unsubscribe from all email” option. What if you want to give users the option to unsubscribe from only a certain subset of emails but still receive other important email? You may be able to pull it off in Mailchimp using lists, but it’s unwieldy and difficult to customize.

One of the first things we designed in our system is a new kind of email subscription system that’s easier for both users and company alike to manage.

Each user in our system receives an EmailSubscription object. Each subscription carries a level field, which indicates the level of email this user has indicated they wish to receive. For us, this range is from level 0, which is completely unsubscribed, to level 3, which is the “hear everything we have to say” option.

Each email we send will have two options in the footer:

  • Decrease email level
  • Unsubscribe from all email

When a user clicks either option, they are taken to this page:

Pressing unsubscribe sets their email level to 0, and pressing decrease will decrement their existing level. This model makes thinking through subscriptions easier, and makes adjustments feel more natural. From a user perspective, Unsubscribe is traditionally a very permanent action, without an easy way to recover from.

Using email levels makes changing preferences non-permanent, and a user can quickly go up or down on the levels, depending on what feels right to them. We’ve personally always been a "Level 2" sort of company, sending an email on the order of once every month or two, but a large part of that was probably due to using an inflexible email system.

Technical Overview

Job Queues

We use Simple Email Service from AWS as our email provider. The tricky part was working with SES’s maximum send rate, which is the number of emails you can send per second. Ours is not too large, so we had to make sure that our queuing architecture didn’t dequeue faster than our limit.

We use Shoryuken to integrate our Rails application with AWS’s SQS. Shoryuken is a well designed open source library that makes integrating with SQS extremely simple.

Our email sending limit L was 28 per second, so we had to make sure that no more than 28 jobs ran per second. To do this, we configured the Shoryuken concurrency value to a little less than 28. On average, each email sending transaction takes 0.5 seconds, so we measure the time difference between start and finish, and if it’s less than 1s, we sleep for the difference. This ensures that no more than L jobs are handled per second. There are likely better ways to handle this, but for our size, this solution works well.

SMTP vs HTTP

Rails comes with easy SMTP integration out of the box. However, managing the lifecycle of ActiveMailer jobs is not particularly straightforward. It was important we know when an email delivery began and ended, especially with regards to our queueing limitations. With ActiveMailer, pulling this off on a per job basis was tricky and tacky. SES provides an HTTP based API with an easy aws-sdk-ses gem. This allowed us to track requests on a per job basis using familiar begin/rescueblocks.

Sending an email using the HTTP API is straightforward:

subject = campaign.subject
htmlbody, textbody = campaign.get_html_and_plain(transaction)
encoding = "UTF-8"

ses = Aws::SES::Client.new

params = {
  destination: {
    to_addresses: [
      recipient,
    ],
  },
  message: {
    body: {
      html: {
        charset: encoding,
        data: htmlbody,
      },
      text: {
        charset: encoding,
        data: textbody,
      },
    },
    subject: {
      charset: encoding,
      data: subject,
    },
  },

  source: sender
}

resp = ses.send_email(params)

Email Templating

Rendering and styling emails from a template file was another tricky part of our implementation. If you’re using ActiveMailer, this is automatically handled and made tremendously easy. For our implementation, we needed to dynamically read a layout file (contains shared HTML, like headers and footers) and a template file (specific per email), combine the two, replace any ERB tokens (<%= user.unsubsribe_link %>) with proper values, and finally, and probably most importantly, apply CSS styles to elements inline. Finally, we needed to do all this in a performant manner.

The solution that worked best for us was to precompile whatever parts of the template we could as part of the build process, and dynamically handle as little as possible per email sent.

We used Premailer, which in my experience has been a must in making emails look good. Premailer will apply CSS styles to HTML elements inline, ensuring proper compatibility across all email clients. However, Premailer can be slow, and we found that when rendering templates and styles dynamically per email sent, each transaction would take 5 seconds to complete. That’s no good. What we needed was a way to precompile templates with styles before run time. This was tricky, but here’s how it works:

Each email campaign is an object with a precompile method, which is run during build time:

def precompile
  layout_path = "#{TEMPLATE_ROOT}/layout.html.erb"
  layout_raw = File.open(layout_path).read

  template_path = "#{TEMPLATE_ROOT}/#{self.template}"
  template_html = File.open(template_path).read

  result = layout_raw.gsub("<%= yield %>", template_html)

  premailer = Premailer.new(
    tokenized_text,
    :with_html_string => true,
    :css => [
      "public/assets/mailers/style.css",
    ]
  )
  premailed_text = premailer.to_inline_css

  path = "#{TEMPLATE_ROOT}/generated/#{self.template}"
  File.open(path, "w+") do |f|
    f.write(premailed_text)
  end
end

Then, during runtime, and for every email sent, we render the precompiled template with proper user values:

def get_html_and_plain(user)
  template_path = "#{TEMPLATE_ROOT}/generated/#{self.template}"
  template_html = File.open(template_path).read

  rendered_template_html = ERB.new(template_html).result(binding)

  # HtmlToPlainText is part of Premailer
  include HtmlToPlainText
  plain = convert_to_text(rendered_template_html)
  rich = rendered_template_html

  return rich, plain
end

The result: Each email transaction takes less than half a second to render and send. Success.

What’s Next

We're ecstatic to be closing down our Mailchimp account, saving quite a bit on monthly costs, and more importantly, taking stricter measures to protect user privacy by removing dependencies on capricious third-party privacy policies. Email is an important part of any web company, so it’s worth putting the time in to build a well-fitted solution.

If you want to build your own simple email campaign system for your Rails app, you can check out our recipe, which includes the classes, controllers, and jobs we used in our implementation.

What is Standard Notes?

We build an open source, encrypted notes app that respects user privacy and productivity. Standard Notes features a suite of simple cross-platform applications with seamless sync, and an extensions system that offers a wide range of editors (including Markdown, Tasks, Vim, and Code), themes, automated cloud backup options, and other useful features.

You can learn more at standardnotes.org.

Security Update + Bye-Bye Mailchimp

We have some exciting new progressions for Standard Notes to share:

1. A security update is available.

The Standard Notes server is built on top of an open source framework we develop called Standard File. Unlike typical servers, Standard File is designed to be trustless; that is, even if the server is hacked or compromised, your account and data won't be. Instead, we developed the Standard Notes architecture to trust the application you use on your devices, rather than the server that's beyond your control and out of your sight.

This security update decreases the reliance on a trustworthy server even more, by combining server output with application input to create a healthier balance of trust. If you're interested in the full details, please read the in depth explanation here.

As for you: when you upgrade your desktop application to 2.2 (or use the web app), you'll see a green message in the footer: "Security update available." Please follow that process to upgrade your account to the latest security version.

2. Bye-Bye Mailchimp

This is a big one. We're cutting ties with Mailchimp. And we've taken on the harrowing task of building our own user-messaging email implementation. This email you're reading? This is officially our first Mailchimp-free all-user email :)

Why? We didn't feel right passing on your email to Mailchimp, regardless of the privacy policy they had in place. But, building a custom campaign architecture is a tremendous undertaking, which we could not focus on until very recently, thanks to your support. We're proud to say that our new email system is finally complete and deployed, and your privacy protected by yet another measure.

For a technical overview, please read our blog post:

Bye-Bye Mailchimp →

3. App improvements

Desktop and mobile versions 2.2 are now available, and come with some great under-the-hood improvements. Namely, incremental loading means that your app will now start up much quicker, and allow you to get to work while the rest of your notes are loaded and decrypted in the background.

On mobile, Extended editors will now load much quicker, especially on iOS.

If you have any questions, please don't hesitate to get in touch.

Editors on Mobile and Desktop Highlighting

Some said this day would never come. Others have doubted its overall feasibility. But it's here. And it's great. Editors are now available on mobile. No more unrendered Markdown, HTML, or tasks.

Your favorite Extended editors are automatically available in the latest version of the iOS and Android app, including the Plus Editor, the Advanced Markdown Editor, and the user-favorite Simple Task Editor.

Here's what's new since last time:

1. Editors on mobile.

You can now access your favorite editors from your Extended account. Click on the tags icon (on Android) or the Manage button (on iOS) in the compose window to choose an editor for a note. 

Note: editors must be already installed from the desktop/web app for them to appear on mobile. If they don't appear, please sign out then back in. Editors were previously ignored in sync, so a fresh sync may be required.

2. Desktop search highlighting!

Search results are now highlighted across the entire interface when you perform a search. Now find exactly what you're looking for.

3. A fancy new Markdown editor.

The Fancy Markdown Editor is a beautiful split-pane Markdown editor with synced-scroll and LaTeX support (for math heads).

4. No Distraction — a new theme

It's the simple things. No Distraction quickly hides all interface elements so you can focus on your writing. It creates a distraction-free writing environment for high levels of clarity and focus.

5. The Student Discount

Notes are an essential part of the student experience, and we're happy to now offer a 30% discount on the annual plan to students looking to maximize their focus with a simple and accessible note-taking solution. Students interested can email students@standardnotes.org from their student email to receive a preapproved link for a discounted checkout.

Last but not least:

We get asked frequently about lifetime subscriptions. We'd like to model our business on forecastable methods, and prefer not to offer something we can't fully comprehend the magnitude of.

Rather than turn away users who are just as passionate about improving their notes life as we are, we'd like to offer a solution that reduces the risk for us, but also accommodates the long-term user.

The 5-Year Plan is our take on a sustainable long-term plan for our Extended services, which offers a one-time payment at long apart intervals, such that you can enjoy our service for many years to come without thinking in terms of annual renewal.

It's available now for $99.

Join the 5-Year Plan →

Introducing two-factor authentication and offline extensions

Let's get right to it: we have a new update (v2.1), and it's probably our most important one yet. Here's what's new:

1. Two-factor authentication.

2FA will have you feeling warm and cozy as you sign in with high levels of additional security. It's now available for Extended members. Be sure to upgrade your apps on every platform to the latest version. Learn more about setting up two-factor authentication.

2. A new extensions manager.

Now you can browse and install extensions without ever leaving Standard Notes. The new built-in Extensions Manager makes browsing, installing, and activating extensions easier than ever.  

3. Offline installation of extensions.

This is a big one. Previously, extensions like editors and themes were downloaded from a server every time you wanted to use them. Now, on desktop, extensions are automatically installed locally and offline, so you can use them without a connection. This also improves security by not relying on an external server for extensions.

4. We've given our desktop and web app a clean makeover.

The new interface for menus and panels is cleaner, easier to use, and much more pleasant to look at. You'll like the way it feels.

5. We now support all major cryptocurrencies as a payment method for Extended.

It's no secret that Standard Notes is a great place for secrets. Crypto enthusiasts and banking over-throwers can now purchase Extended and help support continued development with most major cryptocurrencies, like Bitcoin, Ethereum, Litecoin, Monero, Ripple, Verge, and many more.

Automatic Backups, Simple Task Editor, and a Solarized Theme.

A quick few announcements:

1. We added automatic local backups in Desktop v2.0.3.
Backups are an important part of our 100-year plan. They protect you and us from the unexpected and catastrophic. Now in the latest version of the Standard Notes desktop app, encrypted backups are automatically made every day when the app is in the background. You can access these backups via the "Backups" menu item.

2. We introduced a new theme: Solarized Dark.

A beautiful theme that feels right any time of the day. It's now my go-to theme when I need to focus and write calmly.

3. A new way to work: the Simple Task Editor.

A lot of us use Standard Notes to keep track of important tasks and daily to-do's. This is why we created an all new task editor from the ground up. It automatically converts your current task lists into individually manageable tasks. You can mark tasks as completed, change their order, and edit the text naturally in place. It's a great way to manage both short-term and long-term to-do's.

4. Create your own blogging publication directly from your notes.

We've put a lot of work into our note sharing platform called Listed. Listed allows you to publish and share notes directly from the Standard Notes web and desktop app. Best of all, it allows readers to subscribe to your new posts. Your subscribers are immediately notified by email any time you publish a new post. Unlike Medium, Listed allows you to own your content source, and have a more direct communication channel with your readers.

5. A reminder to upgrade your mobile apps.

We sent out an email last month about our new V2 applications for iOS and Android. These apps are distributed under new listings in both Google Play and the App Store, so you'll need to download these manually (and not auto-update). If you're still running versions 1.x on your mobile device, make sure you upgrade immediately to avoid issues.

Enhanced security with Device Storage Encryption

Last week we introduced a new security feature called Device Storage Encryption (DSE) for iOS, Android, Web, and Desktop. We mentioned briefly how in addition to the already end-to-end encrypted sync Standard Notes provides, DSE can further safeguard your data by making sure unencrypted data never touches a hard drive. This post explains how DSE works, and how it fits in with the existing encryption technologies used by Standard Notes.

Standard Encryption

When you’re using Standard Notes with a signed in account, we generate private encryption keys from your password, and save these keys on device. Every key stroke you type, and thus every change you make to a note, is immediately encrypted using these keys, then synced to your other devices. Since you’ll have signed in to these other devices as well, those devices will have your encryption keys available to decrypt incoming changes.

Expanding our Threat Model

Before DSE, your encryption keys would need to be stored on your local computer without being encrypted. This was because without an additional password, there would be no straight forward way to encrypt your keys for offline storage (particularly on the web app). Our main threat model (or, what we set out to protect against) was making sure no one but you can read your notes. We treated servers and unencrypted online transmission of data as the main enemy. Your personal device, protected by you in the comfort of your pocket or your home, we treated as safe.

With DSE, we expand our threat model to also protect you from device seizures, loss, and theft. All of our applications on every platform (Mac, Windows, Linux, iOS, Android, and Web) now offer the option to add an extra application password called a “Local Passcode”.

This passcode serves two purposes:

  1. It will lock the application with a passcode which must be entered before you can enter, use, and read application data.
  2. On Desktop and Web, it will encrypt your local key storage. This means that keys that were once stored on your offline device without encryption will now be encrypted using AES-256 with a key derived from your local passcode using PBKDF2.

The result is actually kind of cool: unencrypted data never touches your hard drive, or anyone else’s hard drive.

How it works:

  1. On enter, the app prompts for your local passcode.
  2. It compares the hash of your inputted password to a saved hash, and if correct, uses your inputted password to generate the remainder of your keys.
  3. These keys are used to decrypt your saved account encryption keys.
  4. The application now reads encrypted data from your local database, and decrypts this data using your decrypted account keys.
  5. The decrypted data now lives only in ephemeral memory, and is displayed so that it can be edited by the user.
  6. When you make a change to a note, it is encrypted immediately, then synced to your account and saved in your device's database.
  7. Finally, when you quit the app, the decrypted data which lived in memory is immediately destroyed.

So what?

What’s the significance of decrypted data never touching your hard drive? Well, hard drives are sort of tricky to keep an eye on. Once a file touches disk, you can’t be certain that a copy of it wasn’t made, or that it wasn’t backed up by your system, or synced to a file syncing platform. With memory, things are more volatile, but ephemerality is built in. You can be sure that it won’t be backed up by a system process or 3rd party application.

(On iOS and Android, your keys are stored in your device’s secure keychain, so a local passcode serves more as a deterrent to unwanted physical access, compared to the web app, where a secure device keychain is not available.)

You can learn more about our other privacy measures here. You can also download the new applications for your platform from our downloads page. And as always, if you have any questions, please don’t hesitate to reach out to hello@standardnotes.org.

Introducing our new Android, iOS, and Desktop apps.

A letter to our users:

Dear note lovers and encryption lovers,

We know you love notes. And the secure feeling a private online life gives you.

So, we made something for you. I think you're going to like it.

A powerful new notes app for iOS and Android (and Desktop).

It's more secure.

Device Storage Encryption now encrypts your data before saving it to your local disk. Lock your app with a passcode to require authentication on launch and, on desktop, to encrypt your local key storage. And now for Android as well as iOS, protect your app with a fingerprint lock.

It helps you be more productive.

Pin your notes to the top of your list, so that notes and tasks you edit often are always within reach. Archive notes to stash them away, or unarchive to bring them back. And, new on Android, sort your notes by when you added them, when you modified them, or by their title.

It's beautiful (we've been told).
Our beta testers have told us how much they love the new look and feel, and how pleasant it is to use on a daily basis. Best of all, the themes you know and love from desktop now work on mobile too (and they look stunning if we may say so ourselves).

Download:

The new apps for iOS and Android are released for free as separate apps from the original. (This update is backwards incompatible with the previous version, which is why it's being released separately.)

Get the new iOS app.

Get the new Android app.

Download the new V2 Desktop app from our downloads page, or auto-update it from your existing application.

We hope you enjoy the love and hard work we put into this release, and that it makes your notes life easier and gives you more space to do your best work.

The Unexpected Benefits of Encrypted Writing

Let's admit, shall we, that freedom has to have its own space.

I've spent about the last decade of my life developing tools for note taking and file management, the most important of which is an encrypted note-taking app. And when I talk to others about how their lives changed once they knew their thoughts and words were private, the response is always the same: "I feel free," is what I hear. They talk about the subtle, but powerful, difference privacy brings you. You become accustomed to the luxury of knowing what you say will never be repeated.

Those who haven't tried the private online life ask me what it's like. Well here you go:

Imagine you were in a room with 50 people. All around you, in every direction, are people breathing in the same circulated air as you. It's crowded. The environment dramatically changes your thoughts. You are distracted. You are influenced by what you hear. You don't have the same thoughts you have as if you were alone.

Now imagine that every thing you said in that room had a 1% chance of being heard by someone else. Life changes. Suddenly you worry what you said. What you might say. You are a whole different person. You become a subdued version of yourself, limited in your creativity and oomph.

Internet living is about being in a room with 50 million people. We are not ourselves there. We have to be much more cautious about ourselves. We adapt to wherever we are. And ourselves multiply. We are a hundred different people, depending on where we find ourselves on the world web that day. I know that when I speak with friends on Slack, or write a note on Evernote or Google Docs, there is an ever-present 1% chance that what I am typing will one day be seen by someone else. And with this thought lingering in the back of my mind at all times, I do not write like I would write in a private journal. I write as if an audience were present. I pause between every few sentences to look both ways.

I write as if to say, "If this got out, how would it make me look? What would others think of me?" And in that way, my writing loses its most important part: me.

That's why I spent the time on encryption and privacy. I don't want the worry and the hassle of others watching me. I don't want to have to check my doors every night. I want to know I am safe to be me. And safe to have my best thoughts. To write without worry of perfection.

I just want to write like it's nobody's business.

Announcing Our 2017 Security Audit Results

A few months ago, we hired an independent security research firm to conduct an audit on the encryption specification used by Standard Notes. In building out our product, we spent a lot of time making sure our encryption is as strong and fool-proof as possible. While it's easy for one to feel confident of their own work, a security audit is a must for any privacy-focused project to assure the developers and customers alike that data being encrypted and transferred is done safely and securely.

We're happy to announce the results of our first third-party security audit, and share in this milestone with you while we continue on our journey to build the most private notes app in the world.

The full report is attached below for the crypto-minded. Security is a moving target, but we're happy to report that this report does not find any major weaknesses in our data encryption flow, which is the largest part of our crypto implementation. Instead, it identified two main places in which security could be improved:

1. Verifying login parameters from the server. It's standard practice for a modern web app to trust that what the server has sent for a particular user is associated with that user. For Standard Notes, we distrust the server a little more, and instead place trust on the applications that are running on the machines our users control. We were happy to learn about this as it has allowed us to add an additional layer of protection from the out-of-sight server.

2. Ensuring that the ID of the data item is not exchanged with another item. This is an issue with little practical exploitability. But it is important to protect against nonetheless. Now, when your app decrypts an item, it makes sure that the data contents of the item match the ID of the item it was originally created with.

Both of these improvements, along with others, are now live in the latest versions of Standard Notes on all platforms. With this launch, we also release the latest version of our encryption specification. Any new data you create is automatically secured with the most powerful version of our encryption spec. For data created before this launch, read here for instructions on re-syncing.

We're proud to say that we're amongst the only private notes apps to have completed a third-party security audit. With our applications built for maximum longevity, we're confident we can continue protecting your data now and long into the future.

As always, thanks for your support. Please don't hesitate to reach out with any questions.

View Report

Introducing Components for Standard Notes

We're excited to announce the launch of four new powerful extensions that take your simple Standard Notes experience to a new level.

We decided early on that simplicity is the only way to achieve quality, stability, and longevity in software. Too often we see apps we depend on implode from their own complexity or become completely unusable from endless bloat. We knew that if we wanted to avoid this death trap, we had to design our system differently.

Extensions have been the perfect solution for us. We get to keep our core suite of applications as simple, fast, and reliable as possible. For the million and one other features users will want and invariably need, we created Standard Notes to be extensible.

Up until now, extensions have been limited to only certain parts of the app, like menu actions and custom editors. Today we're announcing a new class of extensions called components.

Components allow you to completely swap out sections of the app with custom modules. With components, you can build a custom tagging system, custom note list views, utility bars that allow pushing a note to WordPress and GitHub, and more.

Today we're announcing four new components:

1. Folders

2. Autocomplete Tags

3. Action bar

4. Github push

These extensions are now available in your Extended dashboard. If you're new to Standard Notes, get started by downloading the app here, then visit the Extensions directory to learn more.

Components use a special offline messaging system to deliver an extensible application even in the web browser. In fact, we make sure that our web application is always as powerful as our desktop applications. This is essential to our goal of longevity, because while desktop platforms may come and go, or be updated to oblivion, we're counting on the web to always be present no matter which platform you use. Powerful web access means as long as web browsers exist, Standard Notes exists.

Developers should check out our getting started guide to learn more about developing a component for Standard Notes.

We're beyond excited to get this in your hands and begin exploring the possibility of what a fully extensible notes app looks like.

If you have any questions, please don't hesitate to get in touch.

Don't be fooled: Metadata is the real data

In a crime case, investigators don't have access to "the truth"—the data, if you will. All they have are clues which can be put together to make as perfect a guess as possible as to what the nature of the truth is. Metadata.

In the U.S, governments have played coy and attempted to talk down efforts of mass surveillance, particularly phone surveillance, by asserting that the actual contents of the call are not collected—only the metadata is:

  • Where you were
  • Who you were calling
  • How long you talked for
  • How frequently you talk to someone

In a crime investigation, having the answers to these kinds of questions could potentially make or break a case.

And that's precisely why governments collect this kind of information: it is powerful fodder in a legal setting. In an example most of us are probably familiar with, you can see that who Adnan Syed called and when were some of the most important deciding factors in placing him in a jail cell.

And as it can be used for legal justice in some cases, or the "good", it can also be used against you, like you're warned of in your Miranda rights.

So what do we do?

We protect ourselves and the people we care about, not against the government, but the possibility of government. We don't speak unless we have an attorney present. We plead the fifth.

We encrypt our data.

Smarter people before us have understood the unstoppable nature of government power, and have put in provisions such as separations of power and the Miranda rights precisely for this reason.

And today, smart people advocate endlessly for the encryption of your data as a form of self-protection. With anti-privacy legislation being signed today with a flick of a pen, it's more important than ever to understand that even metadata can and will be used against you. And, in the court of law, even if you have nothing to hide, or are fully innocent, you are still advised and even required to have a lawyer present before you can testify. Why? Because history.

Legal waters are not somewhere you want to swim in alone.

So the next time you hear that it's only "metadata" being collected, don't be fooled: metadata is the data.

This isn't to say that you shouldn't use apps that record metadata. Metadata is what allows a lot of your favorite apps to organize and keep your data in sync.

It's to instead say you should find no comfort in the fact that governments rely on the "metadata" crutch to make you feel ok with what they're doing.

The Bill of Rights of the United States constitution is about personal protections. These being such a fundamental part of our constitution is no coincidence: these were real dangers at some point.

  • The right to free speech
  • The right to bear arms
  • The right to remain silent

In today's world, we are the forefathers of a new constitution, a new amendment:

The right to encrypt.

It won't come easy, but then again, nothing important ever does.

Building Standard Notes to be long-lasting

It's the greatest love story of all: you find an app that you absolutely love. It solves all your problems. And it makes your life better. It's a fairytale and the both of you live happily ever-after.

Except, it never quite happens like that does it? The app you depend on to solve your life's problems begins wanting to "scale." The company who makes the app took out an investment to build it, and now those investors want to see bigger returns. How? By attracting more customers.

Attracting more customers in today's world is done by adding more features that cater to a wider audience. Month after month, your beloved app grows and grows in features and complexity. It takes a little longer to load now. You notice a lag here and a bug there. On some days, you find it completely unusable. There are so many moving parts now that the developers can't keep up, and when they fix one bug, five others pop up.

It's the dreaded software bloat. And unless you take very careful measures to prevent it, it is guaranteed to happen.

Let us take a moment of silence for all of our fallen apps.


We don't want to treat you this way. We don't want to grow by doing more things. We want to grow by doing one thing so well that the entire world knows it and entrusts us to do this one job for them.

For us, it's your notes. Notes are one of the most important byproducts of our existence. It's how we know ourselves. And it's how we know our past. While your favorite social networking app desires to entertain you and thus finds new ways of doing so every quarter, we're not here to entertain you. We're here to protect something that is important to you. And we're here to make sure it's the easiest thing you'll do all day.

You won't find fancy text recognition algorithms in our apps. No fancy machine learning, notebooks, real time collaboration and commenting. Not even close. But you will find an app that respects you as a long-term user. An app that won't degrade with time. An app you know will be there for you tomorrow, to protect and maintain your most valuable life assets: your notes.

That's our promise to you. In fact, we apologize whenever we release new features, and celebrate when we have the luxury of simplifying.

This is what we mean by being a long-lasting, sustainable notes app. Imagine you bought a notebook from a bookstore that said "this notebook will begin disintegrating from the day you buy it until it completely implodes and disappears one day." You wouldn't buy that notebook.

Think of us as a long lasting notebook. The kind of notebook you'd expect.

And now you know what "Standard Notes" means :)

Why simplicity is the only way forward

Some simple notes on simplicity: Engineering Standard Notes to be "un-elaborate" was anything but easy for us. In an era where software degrades by the day and the life expectancy of the apps we use is anything but ideal, getting our software simple took time. We were slow pokes on this idea. It took 3 years to realize simplicity was our only solution.

Why? It takes time to realize that less lines of code directly translate to a better experience. Simple means less bugs. It means less moving parts. Fewer things break. Simpler experiences ensure our users won't get frustrated. A simple app gets out of your way and lets you do your work. Simple forced us to focus on the functions that do exist, and to make them exist well. That's hard.

It also took those years to realize that simplicity makes a better business. Simple is honest. It lowers engineering costs and the fees to maintain applications. Simple code may be slower to build, but so much less of it exists that it's cheaper over all. We just sort of knew when we were done. We could sense that were clearly in the golden mean between a good user experience and a good business. We just decided to stop. And keep it simple.

There's also the ugly side to simplicity that takes time to accept. It forced us to admit how, well, unpleasant much of our previous work had been. Like everybody else, we poured our hearts and souls into apps that tried to do too much. We have all fought through the deep depressions when an app we depend on loses its way. We've all walked off development jobs after a few months, when the tool stopped serving users and instead obstructed them. We don't want to speak for you, but we're sure you've felt it: Ever notice how your favorite applications seem to get slower over time? That's no coincidence. They call that "growth". It happens because panicked teams were frantically trying to throw more functions at what was a good idea for some stupid business goal. And a good idea turns into something that isn't, real quick. That thing you loved metastasized into something you hate.

If simplicity keeps us from adding features, so be it. Standard Notes is officially an anti-growth company. We don't mind. We set out to do one thing well: Allow you to write your notes and thoughts privately without friction, on every device you own. And keep those thoughts for as long as your and your electronic devices exist. There are impressive technologies under the hood: sync, encryption, and clever development. But they're hidden. By choice. You simply never have to worry about them.

We're betting you'll sense the proper weight of that simplicity. And how that momentum will keep both you and us around for the long run.