Idea: notes archive

I take a ton of notes in Notes.app (and previously Simplenote). My preferred workflow is to keep a note in Notes.app until I’m “done” with it. At the point of done, I save the note as PDF to a local folder.

This distinction between active notes and completed notes is key for how my mind works. Something about reducing mental clutter, or insert your diagnosis here. I want to keep the notes around for future reference but I want them stored on my shelf.

I’d love to instead have a dedicated app serve as my note archive. It could be web or cross-platform as long as it kept privacy at the forefront. Importantly, it would be read-only; it wouldn’t take on the concern of also providing an editing interface.

Idea: Kickstarter for events

Events are great because they bring people together.

In scenarios where there isn’t already a cohesive group, organizing an event has two risks:

  1. Will enough people sign up to make the planning effort worthwhile?
  2. Will the people who signed up actually show up?

A Kickstarter for events could solve these two problems.

First, the event would have some minimum number of signups required for the event to happen. It doesn’t happen if it doesn’t achieve critical mass.

Next, the organizer would track which signups actually show up at the event. This data could then contribute to the attendee’s reputation score on the platform, and calculate the likelihood of attendence.

Problem worth solving? It seems mundane but I keep wanting this for situations I come across in the real world.

Blogging’s missing piece

One core mechanic lacking in modern blogging: knowing who is reading your work.

With an email newsletter, the writer has reasonable confidence their work is delivered to a known audience. With a blog, the best the writer has are comments and Twitter, both which are totally broken.

There should be better tools for the writer to publish to a specific audience (say, <50 people), for the audience to receive the work through their preferred means (e.g. email at the end of the day vs. RSS), and for both to engage in a productive dialogue that evolves over time.

Oh, and one more important piece: a “Start Here” point of entry for those new to the conversation, so they can painlessly get up to speed. 

Fields middleware for Gutenberg

At the moment, registering fields for your Gutenberg block requires a bunch of repetitive code to produce similar UI.

For instance, to produce a text control, you need to do something like this:

el( wp.blocks.InspectorControls.TextControl, {
	value: url,
	onChange: function( newVal ) {
		props.setAttributes({
			url: newVal
		});
	},
	placeholder: __( 'Enter a GitHub Gist URL' ),
} );

See? A lot of boilerplate that you need to repeat for each text control.

For the simple UI, this boilerplate shouldn't be necessary. I'd much rather define a field type when registering the attribute:

attributes: {
	url: {
		type: 'string',
		field: 'text',
	}
},

It sure would be awesome if this existed as middleware!

Crappy hardware ideas

In no particular order:

  • Natural peanut butter stirring device. You know, to mix the peanut butter back into its oils. This device would need to be high torque with low speed, or it could even be mechanical with some design to increase mixing.
  • Fridge door alarm. Amazingly, our fridge doesn't beep when the door is left open. Many fridges do. This device would emit some noise (or send you a text, etc.) when the sensor detects an opening for >10 seconds.
  • USB hub with mounting hardware. All I want is to mount the hub to the back of my desk so I don't have to see it. Some hubs exist, but the price is quite high for what they are. There's an opportunity for something with screw holes in the ~$20 range.
  • All-in-one individual video conferencing unit. The existing options seem focused on adding a variety of peripherals to your conference room and TV. This setup would be for one person, and include video camera, screen, light source, and audio. A veritable magic box!

Next-generation managed WordPress hosting

What if there was a managed WordPress company that got rid of its servers altogether, and focused on helping you achieve the best possible results from any infrastructure on the market?

Here’s how it might work:

  1. When you sign up for an account, you connect your Google Analytics account, so the service has intelligence about your current traffic patterns.
  2. Based on expected resource utilization, the service suggests a server configuration on AWS, Digital Ocean, or Google Cloud Platform. Once you select your preference, the service provisions a WordPress-optimized hosting stack on the provider.
  3. As a part of the offering, the service provides a best-in-class object-cache drop-in, CDN-based full-page cache, Elasticsearch integration, etc.
  4. Over time, as the service passively monitors the performance of your WordPress instance, it offers suggestions for additional application-level optimizations (think New Relic but with a higher-level understanding of WordPress).
  5. Over time, the service also passively monitors your resource spend. If it detects there’s a more price-performant option on the market, the service makes it possible to migrate your site to new infrastructure seamlessly. As an example, a client of mine was spending $1k+ per month on Amazon’s CloudFront CDN. Now they’re spending $20/month on CloudFlare.

The target market is every customer subject to “Contact us for a quote” pricing (typically $2k/month and up). The service would enable a non-technical company to run their website in the price-performant public cloud without needing to internalize the DevOps cost.

Some existing options include ServerPilot and Laravel Forge, but neither focus deeply on WordPress.

Crazy?

Tracking versions of WordPress plugins in theme directories

On WordPress projects where the entire application is defined by the theme, it can be common to submodule or directly commit WordPress plugins to a directory like theme-name/lib. However, in doing so, you lose out on WordPress’ built-in update tracking.

It would be cool to have a utility plugin that loads theme-specific plugins into the Manage Plugins view and WordPress update check.

WordPress theme for WP REST API documentation

Much of the WP REST API v2 documentation is automatically generated from demo.wp-api.org/wp-json/?context=help. A Ruby script dumps the JSON into _data, and Jekyll generates pages like this:

2016-01-13 at 12.22 PM

It would be cool if someone wrote a WordPress theme (or plugin) to automatically generate a documentation site from a WP REST API index — and the only configuration parameter was the URL to the endpoint.

Measuring the utility of WP_REST_Posts_Controller

A good measure of the utility of WP_REST_Posts_Controller and brethren would be to test how much (or little) time it takes for a developer to correctly model their custom post type data by extending it. If it’s easy to do, then we’ve established a great abstraction. If there are pain points or places we need to work around, then we should refine the abstraction.