top | item 14752850

Show HN: Codeblox.io – Connect your code with anyone else's via drag and drop

20 points| alanfriedman | 8 years ago |codeblox.io

14 comments

order

alanfriedman|8 years ago

Hi HN,

I built Codeblox to allow developers to connect code together like building blocks. This makes it easy to build sequences (series of blocks) to do all kinds of things.

Every block and sequence gets an API endpoint (POST api.codeblox.io/username/blockName) and you can also schedule them to run daily.

Each code block specifies an input and output type (text, number, location, etc) and you can build sequences by combining blocks that fit together.

How it Works:

- CLI tool packages up your directory as a ZIP file, and uploads it to S3 - That filename is stored in the DB - When someone invokes your code from the website, the back-end (Node.js) creates a Lambda function pointed to your ZIP in S3, invokes it and returns the result - For sequences, do the same thing, except the client handles making each sequential call

Stack: FE: React/Redux BE: Node.js, MySQL, AWS, Redis

I'd be really interested to hear any feedback or feature requests.

I'm also looking for a co-founder to work on this with (NYC or SF area), so if you like the idea just reach out at info [at] codeblox [dot] io

Thanks! Alan

addcn|8 years ago

Alan - nice work. I'm impressed with easy encapsulation being included in this on day one. I follow and have also built developer tools at the last 2 startups I've done. People often forget that part but it's really what makes the whole thing scalable IMHO.

staple|8 years ago

interesting idea. what sort of license is applied to the code i upload?

fiatjaf|8 years ago

Now a question: have you thought about just running code blocks on the client? It would have limitations, but I guess most tasks could be accomplished, and the backend running costs would be enormously smaller.

There's also the problem of executing other people's code in your visitors machines, but maybe that isn't so bad -- or could be solved by running a better language than raw Javascript.

I know this sounds like a silly idea, but what do you think?

hyuuu|8 years ago

this is what I built actually, though not active anymore. Users can upload functions with defined parameters and output, which can be strung together. Very ETL oriented. Each of the function will run as a web worker.

An example that I did with the platform was, parse Skype chat log (500MB ish) of it, and look search for specific strings and dump it back as CSV by stringing 3 functions together, all running inside web workers.

alanfriedman|8 years ago

I thought about it, but the goal is for codeblox to be language agnostic, so it would need to run server side. Eventually I plan to add Python and Java support. It would reduce costs though, that's for sure.

fiatjaf|8 years ago

Ok, just one more quibble: I have the impression that since blocks are small this system is ideal for small pieces of code and has already a great a web interface for input/output, why not let us edit blocks online and test them live with hand-inputted values while we edit? Glitch.com, for example, has a web editor by default, but it is so cumbersome to try the app while editing it -- the contrary is true on Codeblox.

aryamaan|8 years ago

This is a nice concept. It seems like making coding more social and I am excited to see people making interesting things with collaboration.

Right now we can assemble blocks sequentially. It would be awesome if those can also be arranged conditionally (by some programming language- a programming language to arrange blocks of code,eh).

alanfriedman|8 years ago

Thanks! I agree about conditional logic - maybe also loops - and will be thinking about how to incorporate something like that.

fiatjaf|8 years ago

I think this would be very useful for non-coders. For example, some days ago a friend of mine was struggling to get just the emails addresses from a list of names+emails he had in an Excel file.

alanfriedman|8 years ago

Yes I think so too. Long-term I'd like to have a extensions (Chrome, desktop, etc) that give access to running blocks from anywhere. I think this makes code much more usable to non-developers.

fiatjaf|8 years ago

Wouldn't using a typed language would be better suited for this? Why not?