Show HN: Cptn.io – open-source integration platform (cptn.io)
I have started on my startup journey an year ago and launched a monitoring platform called DevRaven. Unfortunately the product did not takeoff as expected. That story is for another day.
But during the course of building the product, I have built several integrations leveraging MQs and Cloud Functions. While building and deploying Cloud Functions for happy paths is easy, I had to monitor logs for failures, build retry mechanisms or manually process failed events, keep instances running to prevent cold start timeouts. It can also get expensive with charges for MQs, server time for running cloud functions etc and costs can be unpredictable.
I thought of building a platform where I can build integrations quickly, have the ability to look at incoming/outgoing events, look at logs, retry any failed events etc. And finally, predictable costs for running the infrastructure. cptn.io provides all these capabilities and more. You can build pipelines to integrate with any cloud services, send data from your backend to data warehouses, listen to web hook events etc. The platform can be integrated into any stack by sending events to HTTP end points.
Instead of trying to build a business first or launch an open source product under restrictive licenses, the platform will be available under MIT license so any user or customer can use it. There is no ee folder or complex dual licensing and I am also committing to releasing SSO under MIT. The plan is to offer a managed service in the cloud at a later time, accept sponsors for prioritizing features for enterprise customers and charge for enterprise support.
It should take less than 5 minutes to get the platform running on your machine. Welcome any feedback, feature requests, PRs and bug reports.
41 comments
[ 3.5 ms ] story [ 80.9 ms ] threadFor complex cases or specialized integrations, you can use any npm library to build your flow.
You can integrate into your stack with HTTP API and we can build SDKs for popular languages so it's just a function call to send the events.
https://www.activepieces.com/pieces
https://github.com/activepieces/activepieces
RudderStack is AGPL while cptn is MIT.
Licensing "seems" to be restrictive if you want to use for commercial purposes (I am not quite sure about Sustainable Use License).
Wishing you the best of luck!
https://github.com/windmill-labs/windmill
I think there are a number of platforms for building workflows and integrations today. Some of the platforms serving specific niche (e.g. RudderStack chose to serve CDP, airplane for building internal dev tools). But in the end all of them act on a trigger to transform inbound event data and send it to a destination end point.
Windmill looks cool with support for multiple languages, no-code editor and all the OOTB integrations.
cptn is still evolving - it needs to have more integrations, UX flows need to be improved, it has to get better from Ops perspective.
best of luck
[0]: https://github.com/temphia/temphia
It's about 3 months in the making and needs improvements around ops, tests. I am hoping to make progress with adding tests in the coming days and provide monitoring capabilities.
But i can tell it's early so i'm not fully seeing how this would be used (like an example folder).
- I too have tried to think of how plugins could be "full-stack" with both sandboxing on BE & FE via iframe but i'm not seeing in your repo the code that handles the FE sandboxing? (I could be totally looking in the wrong place)
- I looked into using wasm "containers" as well- does your architecture have a scalable way to optimize "cold boot" of a container for near-instant run/render?
Again, cool project and good luck! I think there's so much room for innovation in this area of making micro-functionality truly portable & composable!
yeah making core framework in fast low level language and making scripting/embed language on top is such underexplored area i think.
i have removed suborigin bashed frontend sandbox for now, inline iframe is just faster to iterate, i will bring back suborigin later. iframe related code would here.
https://github.com/temphia/temphia/blob/main/code/frontend/l... https://github.com/temphia/temphia/blob/main/code/frontend/e...
suborigin code is also same but template part would be in go template and you will need to setup (<wildcard>.myapp.com) domain name.
no i donot do use any wasm runtime snapshoting, i do cache the instance once they are run though so yeah first one will have latency.
i will try to post some demo/examples of app running later on, maybe. ¯\_(ツ)_/¯
So is this something we can self host or... is there a hostable solution you want to push folks to?
ie. Can the system be fed back number of undelivered messages and adjust throttle accordingly?
Something like - if x or x% events are failing in a pipeline, pause the pipeline for y minutes or until some one unpauses it.
I can look at adding it.
I’m basically doing web calls and parsing data, but the ServiceNow plugin is nice to have.
A ServiceNow integration is on my radar. But if you can provide more details I can definitely try to address it when I build the app. Please feel free to log an issue in github if you can provide any details or send an email to me (email in my profile).
1. Create a Source for each customer and send customer specific data to each source. Configured pipelines for each source will receive the event data and processes it.
2. Create one source with multiple pipelines connected to it. In each pipeline, you can drop processing the data based on any conditions.
#1 is preferred so you are sure each customer's data is only reaching the pipelines configured for that customer data.
But the APIs are accessible today with basic auth.
Fair feedback. I definitely need to anchor myself to specific niche instead of saying it can work for anything and everything.
i would love to know how it compares with n8n.io, segment.io, products like those
To illustrate, suppose I want to create an API that saves a Pinboard link and sends it to a Telegram channel when passed notes. In such cases, Cptn is a better choice than n8n.