packages/app-store
. In this folder is _example
which shows the general structure of an app.package.json
name your package appropriately and list the dependencies needed for the package..env.example
specify the environmental variables (ex. auth token, API secrets) that your app will need. In a comment add a link to instructions on how to obtain the credentials. Create a .env
with your the filled in environmental variables.index.js
fill out the meta data that will be rendered on the app page. Under packages/app-store/index.ts
, import your app and add it under appStore
. Your app should now appear in the app store./api
folder, this is where any API calls that are associated with your app will be handled. Since cal.com uses Next.js we use dynamic API routes. In this example if we want to hit /api/example.ts
the route would be {BASE_URL}/api/integrations/_example/example
. Export your endpoints in an index.ts
file under /api
folder and import them in your main index.ts
file./components
folder, this is where the install button for your app should live. Follow the template under _example
to add your on click action (ex. Redirecting to a log in page or opening a modal)./lib
folder is where the functions of your app live. For example, when creating a booking with a MS Teams link the function to make the call to grab the link lives in the /lib
folder. Export your endpoints in an index.ts
file under /lib
folder and import them in your main index.ts
file.README.mdx
. If you do not add one then the description from you package.json
will be used instead./static
folder is where you can store your app icon and any images that your README.mdx
may use.packages/app-store/index.ts
. Import your app into the file and add it to the appStore
object.packages/app-store/components.tsx
, in the InstallAppButtonMap
object dynamically import your install button. Your install button should live under {your_app}/components
.