> For the complete documentation index, see [llms.txt](https://docs.polarity.io/integrations/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.polarity.io/integrations/build-an-integration.md).

# Building an Integration

- [Directory Layout](https://docs.polarity.io/integrations/build-an-integration/directory-layout.md): Integrations should follow the suggested directory layout to improve readability
- [package.json](https://docs.polarity.io/integrations/build-an-integration/package_json.md)
- [Configuration File](https://docs.polarity.io/integrations/build-an-integration/configuration-file.md): configure your integration and setup options
- [Integration Main Module](https://docs.polarity.io/integrations/build-an-integration/main.md): The integration.js file is the main entry point to your integration on the Polarity server
- [startup](https://docs.polarity.io/integrations/build-an-integration/main/startup.md): Initialize your integration and setup logging
- [doLookup](https://docs.polarity.io/integrations/build-an-integration/main/dolookup.md): Required function which takes entities from the user and returns enriched results
- [Entity Objects](https://docs.polarity.io/integrations/build-an-integration/main/dolookup/entity-objects.md): the dolookup method receives an array of entity objects
- [Result Objects](https://docs.polarity.io/integrations/build-an-integration/main/dolookup/result-objects.md): result objects contain the return data for a specific entity being looked up
- [Error Objects](https://docs.polarity.io/integrations/build-an-integration/main/dolookup/error-objects.md)
- [onDetails](https://docs.polarity.io/integrations/build-an-integration/main/ondetails.md): Run second order queries when a user expands your integration in the Overlay Window
- [onMessage](https://docs.polarity.io/integrations/build-an-integration/main/onmessage.md): Implement interactive two-way communication between your component/template and the server
- [validateOptions](https://docs.polarity.io/integrations/build-an-integration/main/validateoptions.md): validate user options on your integration before they save them
- [Customizing the Overlay Window](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window.md)
- [Templates](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window/templates.md): Use the Handlebars templating language to customize the look of your integration.
- [Conditionals](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window/templates/conditionals.md): conditionally show information in templates using if, unless, and else helpers.
- [Displaying a List of Items](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window/templates/displaying-a-list-of-items.md)
- [Display Object Properties](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window/templates/objects.md)
- [Built-in Helpers](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window/templates/built-in-helpers.md): Handlebars includes a collection of useful built-in helpers to assist with displaying data
- [Displaying Icons](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window/templates/displaying-icons.md): Make use of Font Awesome icons in your templates
- [Component File](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window/component-file.md): Create computed properties, trigger actions, and add interactive elements to your template
- [Aliased Properties](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window/component-file/aliased-properties.md)
- [Computed Properties](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window/component-file/computed-properties.md): Define new properties using computed properties
- [Event Hooks](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window/component-file/event-hooks.md): Integration relation event hooks
- [CSS Styles](https://docs.polarity.io/integrations/build-an-integration/customizing-the-overlay-window/styles.md): Style your integration with less stylesheets
- [Vendor Javascript](https://docs.polarity.io/integrations/build-an-integration/vendor.md): Vendor files allow you to include third-party resources as part of your integration
- [Inserting Javascript into DOM](https://docs.polarity.io/integrations/build-an-integration/vendor/inserting-javascript-into-dom.md): You can add remote scripts to your integration through the vendor file
- [README Guide](https://docs.polarity.io/integrations/build-an-integration/readme-guide.md)
- [Debugging Integrations](https://docs.polarity.io/integrations/build-an-integration/debugging.md): Tips and tricks to help you debug your integration
- [Web Inspector](https://docs.polarity.io/integrations/build-an-integration/debugging/web-inspector.md): You can enable the Chrome web inspector to help debug and design your integration
- [Using Integration Logs](https://docs.polarity.io/integrations/build-an-integration/debugging/using-integration-logs.md): Logging information from your integration is a great way to debug.
- [Testing Main Module](https://docs.polarity.io/integrations/build-an-integration/debugging/testing-main-module.md): You can run code from main module in isolation for testing purposes
