Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
123 changes: 121 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,122 @@
# yext-js
# Yext JavaScript & TypeScript SDKs (`yext/js`)

Yext's Open Source JavaScript & TypeScript SDKs
**Yext's Official Open‑Source JavaScript & TypeScript SDK Monorepo**

---

## Overview

This repository is a monorepo housing Yext’s JavaScript and TypeScript SDKs—designed to streamline integrations with Yext’s platform. If you're looking to leverage Yext functionalities such as Search, Chat, Pages, Analytics, or Listings in your JavaScript/TypeScript project, you’ve come to the right place.
([github.com](https://github.com/yext/js?utm_source=chatgpt.com))
Copy link

Copilot AI Aug 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The UTM source parameter 'chatgpt.com' appears inappropriate for a GitHub README. This suggests the content was generated or copied from ChatGPT. Consider removing the UTM parameter or using a more appropriate source identifier.

Suggested change
([github.com](https://github.com/yext/js?utm_source=chatgpt.com))
([github.com](https://github.com/yext/js))

Copilot uses AI. Check for mistakes.
Copy link

Copilot AI Aug 18, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The link text 'github.com' is redundant since this README will be displayed on the same GitHub repository. Consider removing this link entirely or replacing it with more meaningful content.

Suggested change
([github.com](https://github.com/yext/js?utm_source=chatgpt.com))

Copilot uses AI. Check for mistakes.

---

## Project Structure

```
yext/js/
├── apps/ # Example/demo applications and test sandboxes
├── packages/ # Individual SDKs (e.g., search-core, chat-core, search-headless)
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This repo only contains pages-components which provides common/core component functionality that's useful for Pages React development. The other SDKs listed are in their own repos.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mkilpatrick can you give me input on what you'd like changed? As a dev for larger company looking for js component github, the no readme situation was meh, so would like to start by updating.

├── scripts/ # Useful tooling for maintenance and development
├── .eslintrc.json
├── .prettierignore
├── LICENSE
├── THIRD-PARTY-NOTICES
├── package.json
├── pnpm-workspace.yaml
├── turbo.json # Turborepo config for optimized build orchestration
└── README.md # (This file)
```

---

## Included SDKs

The `packages/` folder contains all modular SDKs, each with their own specific purpose:

- **`search-core`**: Networking layer for the Yext Search API (100% TypeScript; browser + Node.js)
- **`search-headless`**: UI‑agnostic headless logic for building search frontends; includes React bindings and demo app
- **`chat-core`**: Core networking library for the Yext Chat API, including AWS Connect integration
- **`chat-headless`**: Headless library + React bindings for Chat UI functionality
- *Additional packages may exist and will follow the same modular structure.*

---

## Getting Started

### Prerequisites

- **Node.js** v18 or v20 (as per Yext Pages guidelines)
- `pnpm` package manager (recommended for workspace handling and Turborepo caching)

### Local Setup

1. Clone this repository:
```bash
git clone https://github.com/yext/js.git
cd js
```
2. Install dependencies:
```bash
pnpm install
```
3. Run Turborepo commands for building or development:
```bash
pnpm turbo run build
pnpm turbo run test
```

---

## Usage Examples

Each package typically includes its own `README.md` with usage instructions. For instance:

#### `@yext/search-core`
```js
import { provideCore } from '@yext/search-core';

const core = provideCore({
apiKey: '<YOUR_API_KEY>',
experienceKey: '<EXPERIENCE_KEY>',
locale: 'en',
experienceVersion: 'PRODUCTION',
});

core.verticalSearch({
verticalKey: 'FAQs',
query: 'What is Yext Search?',
})
.then(results => console.log(results))
.catch(err => console.error(err));
```

Be sure to explore each package's folder for similar guidance.

---

## Contributing

Yext welcomes contributions! Here's how to get involved:

1. Fork this repository and create a branch for your feature or fix.
2. Make your changes, run tests (`pnpm turbo run test`), and build (`pnpm turbo run build`).
3. Ensure all relevant linting tools pass.
4. Open a pull request with a clear title, description, and linked issue if applicable.
5. Your work will be reviewed; feedback may be offered to get your changes merged.

---

## License & Third-Party Notices

This project is licensed under the [LICENSE](LICENSE) file. Any third-party dependencies are listed in [THIRD-PARTY-NOTICES](THIRD-PARTY-NOTICES).

---

## Summary

- Central **monorepo** for all Yext SDKs (`JavaScript` & `TypeScript`)
- Structured via `apps/` and `packages/` directories
- Optimized development workflow using **Turborepo** and `pnpm`
- Individual README documentation per package
- Open to community contributions
Loading