> ## Documentation Index
> Fetch the complete documentation index at: https://doc.lucidworks.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Appkit tags

export const LwTemplate = ({title = "Key questions to get you started", icon = "sparkles", cta = "Powered by Agent Studio", linkHref = "https://lucidworks.com/demo/?utm_source=docs&utm_medium=referral&utm_campaign=docs_cta_ai"}) => {
  const [isLoaded, setIsLoaded] = useState(false);
  useEffect(() => {
    const timer = setTimeout(() => {
      setIsLoaded(true);
    }, 500);
    return () => clearTimeout(timer);
  }, []);
  return <div className="lw-template-container">
      <Card title={title} icon={icon}>
        {isLoaded && <span dangerouslySetInnerHTML={{
    __html: `<lw-template id="a029c1a9-28be-427e-b0e1-5d918920246a"></lw-template
            >`
  }} />}
        <Link href={linkHref} className="agent-studio-link text-left text-gray-600 gap-2 dark:text-gray-400 text-sm font-medium flex flex-row items-center hover:text-primary dark:hover:text-primary-light group-hover:text-primary group-hover:dark:text-primary-light">Powered by Lucidworks Agent Studio</Link>
      </Card>
    </div>;
};

[localhost link]: http://localhost:3000/docs/4/app-studio/concepts/overview/appkit-tags

[old doc.lw link]: https//doc.lucidworks.com/app-studio/4.2/3121

[mintlify link]: https://doc.lucidworks.com/docs/4/app-studio/concepts/overview/appkit-tags

Appkit provides a range of client-side tags for building and executing search queries as well as displaying, formatting and visualization of search results.

These tags are packaged as AngularJS libraries divided into a number of namespaces. See the [Tag Reference](/docs/4/app-studio/reference/tags/overview) for full documentation on each of the tags.

Most Appkit tags can be used in various combinations and are designed to work together within the framework to deliver a high quality search experience for the user.

<LwTemplate />

## Common usage

This example demonstrates how the result-list tag works in line with our principles of *configuration over code* and *sensible defaults*.

To render a simple results list displaying every field in each document, this code is all that is required in the JSP:

```xml wrap  theme={"dark"}
<search:result-list response="response"></search:result-list>
```

If you want to go ahead and customize the output of a result list, you can easily do so along these lines:

```xml wrap  theme={"dark"}
<search:result-list response="response">
     <search:result>
          <search:field name="title" style="title"></search:field>
          <search:field name="url" style="url" label="Link:"></search:field>
          <search:field name="description" style="description" label="Abstract:"></search:field>
     </search:result>
</search:result-list>
```

This demonstrates a common pattern in Appkit of basic tags having default rendering to get you started, with the ability to customize the rendering of elements within them to a suitable level of granularity.

## Configuration

Many tags have reasonable default configurations, but they can also pick up attributes from configuration files, avoiding the must change any JSP code:

Here is a platform tag which looks for properties in the configuration file at `src/main/resources/conf/platforms/myplatform/dev.conf`

```xml wrap  theme={"dark"}
<search:platform var="platform" conf="platform.myplatform.dev"></search:platform>
```

See section on [configuration files](/docs/4/app-studio/concepts/configuration/configuration-files) for more information.
