# Nero > A [Lens][lens]-based HTTP toolkit. :warning: The following is a declaration of intentions. Expect wild changes in the `API` until the `1.0.0` release. * **Not a framework**: it may be considered an *anti-framework*, *micro-framework*, or just a "library", in the sense that it provides a set of utilities for building *custom* web applications instead of creating applications from user provided code following certain structure. * **Pay for what you eat**: instead of coming with *everything and the kitchen sink*, it provides the bare minimum to write applications with minimum implicit behavior. At the same time, it offers diverse paths to *grow with you* as applications become more complex. * **Unopinonated**: there is no preferred routing method, HTML templating library, session management, web server or database adapter. It comes with some defaults to alleviate the [paradox of choice](https://en.wikipedia.org/wiki/The_Paradox_of_Choice), but most components are expected to be easily swapped in and out either with plain 3rd party [Haskell] libraries or by writing thin adapters around them. * **Power of [Haskell] and [Lens][lens]**: the [Lens][lens]-based API enables a style familiar to imperative programmers [Lens][lens] while being purely functional under the hood. Veteran *Haskellers* can take advantage of the powerful lens combinators. [![Hackage Version](https://img.shields.io/hackage/v/nero.svg)](https://hackage.haskell.org/package/nero) [![Build Status](https://img.shields.io/travis/plutonbrb/nero.svg)](https://travis-ci.org/plutonbrb/nero) ## Example ```haskell {-# LANGUAGE OverloadedStrings #-} import Nero.Prelude import Nero (Request, Response, _GET, prefixed, target, ok) import Nero.Warp (serve) -- from `nero-warp` app :: Request -> Maybe Response app request = request ^? _GET . prefixed "/hello/" . target <&> \name -> ok $ "