Pipebit. Here’s a bit of a beast of a project I’d like to make. Mainly just for the sake of making it rather than anything else, of course it’d be super useful but it’s one heck of a challenge.

This project does not actually exist yet.
It is not even pre-alpha - it’s pre-code at the time of writing.

What on earth is a pipe bit?

Honestly, it’s a domain that was available. The vague name idea comes from Linux pipes (echo x | y) combined with bits as in the digital kind.

What does it do?

Everything. That’s why it’s such a huge idea. It takes an input of some kind, does a task of some kind, outputs to someplace else.. of some kind. It might be easier to give a few use-cases

Please, do.

Lets say we want to auto-tweet new website posts


Input is an RSS feed, “Any new item” where item refers to the feed’s <item>[..]</item> we’ve not processed before


We then somehow (Actual interactions TBC) define our process as

Create a new String
Add item.title to the string
Add a space
Add item.link to the string

Maybe something like

tweet = concat(item.title, " ", item.link)


Our output would be defined as Twitter->New Tweet and we’d post our tweet variable, maybe something like Twitter::tweet($tweet)

Sounds complicated. Also sounds like services that already exist

Very true, it does. Indeed it also sounds remarkably similar to IFTTT and Zapier and any other services along that line. The difference is though that process section is completely defined by the user. Concat() is just a very basic usage. Maybe if we have an array named item.keywords = ["x", "y", "z"] we might have

hashtags = implode(" ",
        each(item.keywords, function() {
            return concat("#", keyword)

tweet = concat(item.title, " ", item.link, " ", hashtags);

For this example our hypothetical each function would go through each keyword and return it as a hashtag (add a # to the start) - it’d return that as an array. We then implode that array split by a space. That gets stored as a variable named hashtags

From there it’s a case of using the same concat function as before except this time we append the new hashtags string.

Ah right. So you can just Tweet stuff then?

No! That’s the thing, that’s just an example of a text input and the valid process/outputs available to it.

We might have an input that is an podcast feed’s new items. Maybe we then create a Video object, add an image to the background, overlay an audio waveform/progressbar. Now that our working object is a video, services such as YouTube are valid outputs. We could define an input as a podcast and an output as a YouTube video. Automatically.

Or maybe we go simpler and just define the input as a YouTube channel’s new videos and we just convert the video into an mp3 and output that to our podcast hosting platform.

Maybe we just want to play around with an image. Input is the image, process is to rotate it the correct way based on its EXIF data, output is also an image. Why would you need that? I don’t know. But you might. that’s the point.

Sounds like it’d be hard to do

Yeah. This post is as far into the idea as I’ve gotten so far.

Sign up for emails about the things

You're signing up to a rather infrequent mail list where I let you know about the new things going on.
All the messages have an unsub link in them and I'm never going to sell, trade, or otherwise hand over your contact information to anyone.
You'll not be signed up to any new lists either, because I hate it when places do that to me too