https://cal.localhost {
77 | reverse_proxy localhost:3001
78 | }
79 |
80 | https://app.cal.localhost {
81 | reverse_proxy localhost:3000
82 | }
83 |
84 |
85 | ### **Run Caddy now and every time your system restarts**
86 |
87 | ```bash
88 | brew services start caddy
89 | ```
90 |
91 | That's it! If you change your Caddyfile, you will need to `brew services restart caddy`.
92 |
93 | ### Setup our your environment variables
94 |
95 | ```bash
96 | NEXTAUTH_URL='https://app.cal.localhost'
97 | NEXT_PUBLIC_WEBAPP_URL='https://app.cal.localhost'
98 | NEXT_PUBLIC_WEBSITE_URL='https://cal.localhost'
99 | NODE_TLS_REJECT_UNAUTHORIZED=0 # Needed so HTTPS doesn't complain locally
100 | ```
101 |
102 | ### Run website and web app at the same time
103 |
104 | ```bash
105 | yarn turbo run dev --scope="@calcom/web" --scope="@calcom/website"
106 | ```
107 |
108 | ### Go to the website or web app domain
109 |
110 | You should be able to go to `https://app.cal.localhost` and `https://cal.localhost` successfully 🙌
111 |
112 | Thanks to Max 's article [Local subdomains on macOS with Dnsmasq](https://maxschmitt.me/posts/local-subdomains-dnsmasq-caddy/) and Caddy for making it easy to get started with Dnsmasq.
113 |
--------------------------------------------------------------------------------
/engineering/keeping-docs-up-to-date.md:
--------------------------------------------------------------------------------
1 | # 📚 Keeping Docs up-to-date
2 |
3 | To ensure relevance of the documentation we must strictly follow a simple protocol whenever raising a PR.\
4 | There is a tag in Github that says "Needs documentation update", and looks like the following:\
5 |
6 |
7 | Documentation update tag
LFE | looking for engineer |
LFD | looking for designer |
LFR | looking for review |
SIU | Super Important and Urgent. Use very carefully. (When typing you need to shout a SIUUUU) |
Destination calendar | The calendar that events are created on |
Monorepo | Multiple projects (e.g. app, docs and API) all in one GitHub repository |
Commit | Addition to the code |
Pull request (PR) | The way in which code is reviewed and then added to the codebase. A PR is made of commits |
Merge | If a PR is good, it is merged, which accepts the changes and ‘merges’ them into the codebase |
i18n | Internationalization (translating text) |
a11y | Accessibility |
CTR | Click-Through Rate |
UI | User Interface |
UX | User Experience |
Event types | Different events that you offer on your booking link. For instance, hiring (30 mins) and performance review (60 mins) are both examples of event types. |
Opt-in booking | An event type where you must accept/deny the booking before it’s created |
Slots | Time slots that are offered on your booking page that are determined to be free |
RFC | Request for comments. Essentially a proposal, where we’re looping in the team to get their thoughts |
Round robin | Schedules each person in the team. If a team is made up of persons A, B and C, the first booking goes to person A, second goes to B, third to C etc. |
CalDAV | An open standard for calendars. Essentially a ton of different calendar providers (e.g. Yandex, NextCloud) all support CalDAV, which allows you to connect those providers to Cal.com |
Kangaroo | A tall animal that hops around |
Webhooks | A way for Cal.com to send data to an external server when something happens (e.g. booking created) |
SAML SSO | A way for enterprises to let everyone in their company log in to any application, including Cal.com |
Vercel | The platform that builds our code and publishes it to the live site |
e2e | End to end testing. Essentially a robot that checks if our application is working each time we push code |
Linting | A way to make code look nice and neat |
.env | A file where you configure settings for Cal.com, like your database and email servers |
WEBAPP_URL | The setting that tells Cal.com which URL it’s hosted on |
TypeScript | An extension of the language JavaScript, which can do things like check if values are the correct type |
API | A way to get data and perform actions on the Cal.com service using code |
NPM package | Dependencies (things your app uses) can be packaged into NPM packages, which are bundles of code that you can use in other applications |
Metadata | Data that is in a computer readable format, like JSON, which looks like {”make”: “Volvo”, “model”: “V40”} |