Which Erlang web framework to use with CouchDB?


This is my first post. I just started to learn Erlang. I’d like to create a web application. So I’d like to ask that which Erlang web framework should I choose in order to implement a CouchDB database?

Best Regards.


You probably want cowboy. It isn’t a web framework per se, but it is the server and it has everything you need. Most no nonsense option as it is actively maintained.

elli is another interesting option. Not as good of an ecosystem as cowboy, but usable and apparently more performant than cowboy because it doesn’t create as many processes during the request lifecycle. Thats my basic understanding. The performance difference might be of interest since you want to make a database as a service.

Either one would fit your use case fine.

If you want a full on web framework then Nova might be of interest.


Thanks for the detailed reply.

Here is my detailed use case if you are interested:
I’m trying to build a micro-saas which will be a scraper.

The idea is:

-Collect some info from the internet.
-Store the collected data in a couchdb database.
-Whenever the user wants a file, create a csv file.
-Serve the files through a website with authentication.

So there should be

1-Actual website part which enables the users to login and allows to change their emails or passwords etc. Download csv files on need.
2-Backend scraping process. There should be a scraping and data storing work.

1 Like

I see, so you want to build an app that uses CouchDB as the backend. I thought you wanted to make your own CouchDB.

In that case, you would be better off with a full web framework like Nova. Nitrogen is also an option, but I haven’t tried it.

You could use cowboy, but considering you are a beginner than Nova might be better for you.

Your architecture reminds me of a Nova App I made a while back:


It’s a partially completed RSS/Atom aggregator. Mostly works besides a few bugs.
You could borrow a lot of ideas from this app. The feed_server module is the GenServer that fetches the feeds on a schedule. Your background scraper will be quite similar to that.


Thanks a lot, I’ll definitely check it out and most likely ask additional questions. :slightly_smiling_face:

Yes, that’s exactly what I want.

Well, I couldn’t even install rebar3, anyways didn’t give up yet.

1 Like

If you need any help with Nova ping me here or join our #nova channel at Erlang slack. Happy to help and get you started.


Great, thanks for kind offer. Will do.
Also, after getting my invitation I’ll join to #nova channel.

1 Like