Hacker News new | past | comments | ask | show | jobs | submit login
Show HN: Ablator – Switch features on or A/B test them inside your app (ablator.io)
47 points by breakthesystem on Sept 9, 2017 | hide | past | favorite | 28 comments



You might want to get this added to http://featureflags.io/

Good luck. It's good to see some more competition in this space.


At a cursory glance, http://featureflags.io/ seems to only be a marketing page for LaunchDarkly. I don't see any other server advertised there, and it is obviously built by them. I didn't search that long, but I didn't find a submission link either. So ¯\_(ツ~)_/¯


Awesome, thanks for the tip!


Oy vey.

What is the problem that you solve that would justify adding a dependency on an external service that shims itself between us and our precious users?

Rolling out features to subsets of users in a controlled fashion... it's just a such damn trivial thing to do.


It's only trivial when your needs are trivial. See https://launchdarkly.com/buildbuy.html

At scale, a hosted solution might be justified.


Many (most?) people are not at that kind of scale, and LD is only at scale as the sum of 1000s of small sites + a few big ones.

After using LD for a year I found it expensive, slow, broken. They were cool and gave me a large credit.

Now I use a self-hosted "microservice" which works at our scale (100s of users).

Feature Flags are only checked on sign in here, so the load on our service is very low.

But is in go, which is "fast" and web-scale, right?


Wow, $79-300 a month is expensive for a feature like that. Not sure who they're targeting at a price point like that - many who can cough up a budget like that for a small point solution are going to have the capacity to build their own.


split.io is several times that.

IDK about this product, but split.io has more features and better UI than you could get from a handful of engineers working part-time.


If one is "at scale", they will have enough in-house resources to implement this by themselves.


That doesn't mean they will though. Companies frequently make the decision to buy services that they could build instead. I'm not saying every one should be paying for feature flagging, just that it could make sense for some companies.


Depending on your target platform, you might not have as much control over your releases. On the web, it's easy, but on e.g. iOS, it gets a bit harder.

I agree: like error reporting, it's not a hard, unsolvable problem, but it's a problem I had a few times and decided, why reimplement the wheel I could create a helpful open source solution?


Congrats on shipping.

I think your copy could use some improvement. Casual professional is a hard tone to do well.

Also, this should be a single call for a user where you give me all of the users feature flags. Then I can put it in a session cache and be done with it. These things by design never change for a given user.

This is not a technically difficult thing to do (until you reach scale) so I think you will get more return from investing in marketing than development.

Gl.


Thank you for the encouraging words :)

Do you have specific improvement suggestions for copy, or should I just get some people who are good with this and ask them for help?

The all users thing is a nice idea. I'll have to think a bit about how it implement this.


Two things. In response to your request for suggestions, maybe a little more explanation about how it works. For example, does my code have to manage the dispatch to the "flavor"? Or is this in the client-side ablator libraries.

Second, this is a feature question or suggestion. Does the client side library track exceptions or have a way to report errors in a particular "flavor"? Or how does one decide to increase the roll out coverage of a new feature?


Thanks, I'll clear that up in the copy! But in short, the ablator server decides which user gets whic flavor. Right now, this happens randomly, but I'm thinking of adding more rules in the future.

Exception tracking is not built in, but you could use something like sentry, and send the flavor value as metadata.


For copy.. an example

"Ablator is a Service that enables you to roll out functionalities in a controlled way, and perform good A/B testing."

To: Ablator enables you to roll out features in a controlled way and measure their impact.

I'm sure this can be improved and once you gain traffic you can use your own service to optimize it, but I like to use the language my audience uses (features v functionalities) and strip out unnecessary parts


Good example! I'll definitely work some more on that


I don't mean get all flags for all users -- I mean your API should return the status of all features for a given user.


Yes! The challenge is, I feel like it'd be a preferable to return all fearures for a given user within an Organisation, as opposed to all features, period. I don't know why I feel that way yet... maybe a security risks? Guess a username, find out about a new secret feature from some Organisation using ablator.


Surely you have an API key?


Not right now, since the functionality ID is just as effectively. But switching to API keys is probably the way to go, and I'll do some work on that over the next days.

Btw, I created an issue for that at https://github.com/ablator/ablator/issues/95


Thanks for all your kind words and improvement suggestions! I've started cataloguing them into [tickets on github](https://github.com/ablator/ablator/issues). Feel free to add more or extend existing ones! :)


It looks interesting, and might be something I introduce to my team.

Is it possible to define cohorts of users, and then expose features to that group? I work on a SaaS app used by businesses, so it'd be very handy to use this tool when a customer is beta testing a new feature.


You can do everything you want with Firebase Remote Config, for free. Can even randomly pick out a % of any analytics audience you create.


That's a cool idea. Any ideas how you'd want to distinguish between cohorts?


If I could set arbitrary key/value on both users and features, that should be enough to make it work.


Is it easy to make something self hostable? It sounds nice, but like it'd slow you down significantly.

Now you have to worry about versioning, changelogs??? Worth it?


This is actually self hostable. Just get the newest source from github and build yourself a docker container :)

Or you can get it hosted if you don't want to worry about changelogs and the like.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: