Skip to content

Instantly share code, notes, and snippets.

@nienkedekker
Created July 13, 2023 11:50
Show Gist options
  • Save nienkedekker/aca633b893de88d8754ae5725b5e12c9 to your computer and use it in GitHub Desktop.
Save nienkedekker/aca633b893de88d8754ae5725b5e12c9 to your computer and use it in GitHub Desktop.
[
{
"name":"/changelog/001-2020-07-17",
"content":"import { Text } from '@daily/shared/components/Text';\nimport { Callout } from 'components/Callout';\nimport { MainLayout } from 'components/Layout';\nimport { SuggestedPosts } from 'components/SuggestedPosts';\nimport { getPostBySlug } from 'lib/blog';\nimport { REVALIDATE } from 'lib/constants';\n\nexport const meta = {\n title: 'Changelog #001 - 2020-07-17',\n description:\n 'The latest engineering updates from the Daily real-time video and audio API team.',\n metaImage: '/assets/changelog-01.gif',\n createdAt: '2020-07-17',\n updatedAt: '2021-07-13',\n};\n\nexport const postSlugs = [\n 'record-video-calls-automatically-with-the-daily-co-api',\n 'an-introduction-to-live-streaming-with-daily-co',\n];\n\n# July 17, 2020\n\n<small>Changelog #001</small>\n\n<Callout variant=\"success\">\n <Text variant=\"strong\">Welcome to our first changelog!</Text>\n <Text>\n These will be weekly posts to highlight all the work we're doing here at\n Daily!\n </Text>\n</Callout>\n\n## Dashboard Updates\n\n![Daily dashboard create room page and room list](/assets/changelog-01.gif)\n\n**Update room settings in the dashboard. ** We want the Rooms tab to be the primary place where developers go to create rooms while they're testing. You could already create and delete rooms from the dashboard, but we know that viewing and changing settings is just as important. Now you can do all of that to speed up your testing.\n\n**Update account settings.** To make things more self-serve, we added the ability for:\n\n- Admins to change the role of their teammates\n- Users can securely modify their email\n\n**HIPAA.** In the same vein, we're including a simple addition to the Settings tab for HIPAA accounts. The goal of this feature is to make troubleshooting easier for both our users and our support team.\n\nLastly, we invested some time resolving bugs and tuning performance.\n\n## daily-js\n\n> See full 0.9.992 [release notes](https://github.com/daily-co/daily-js/releases/tag/0.9.992)\n\nFeatures:\n\n- Added Track subscription APIs and live streaming APIs\n- Desktop audio now works when sharing screen\n- Added support for multiple concurrent iframe-based calls on a page\n- Added TypeScript type declarations\n- Added Polish language support\n\nBugfixes:\n\n- Fixed Safari screen sharing from iframe-based call\n- Fixed prior meeting state leaking into local state in next meeting\n\n<SuggestedPosts heading=\"New Blog Posts\" posts={props.posts} />\n\nexport default ({ children }) => (\n <MainLayout meta={meta}>{children}</MainLayout>\n);\n\nexport const getStaticProps = async () => {\n const posts = await Promise.all(\n postSlugs.map(async (slug) => {\n const post = await getPostBySlug(slug);\n return post;\n })\n );\n return {\n props: {\n posts,\n },\n revalidate: REVALIDATE,\n };\n};\n"
},
{
"name":"/changelog/002-2020-07-20",
"content":"import { MainLayout } from 'components/Layout';\nimport { SuggestedPosts } from 'components/SuggestedPosts';\nimport { getPostBySlug } from 'lib/blog';\nimport { REVALIDATE } from 'lib/constants';\n\nexport const meta = {\n title: 'Changelog #002 - 2020-07-20',\n description:\n 'The latest engineering updates from the Daily real-time video and audio API team.',\n metaImage: '/assets/generic-meta.png',\n createdAt: '2020-07-24',\n updatedAt: '2021-07-13',\n};\n\nexport const postSlugs = [\n 'three-ways-to-add-chat-to-your-video-calls-with-the-daily-api',\n 'create-dynamic-meetings-using-track-subscriptions',\n];\n\n# July 24, 2020\n\n<small>Changelog #002</small>\n\n## Dashboard\n\n- Fixed data display bug in Overview when refreshing\n- Fixed \"Sign up with Google...\" bug in rare case when `gapi` was not loaded\n- Improved form input experience on iOS for date and time\n\n## Core call experience\n\n- Improved local participant view for portrait aspect ratio\n- Fixed bug where a user with multiple system language dialects installed would not see an equivalent to their language of choice (eg. `en-CA` now defaults to `en`)\n- Fixed desktop audio sharing for Electron builds\n\n<SuggestedPosts heading=\"New Blog Posts\" posts={props.posts} />\n\nexport default ({ children }) => (\n <MainLayout meta={meta}>{children}</MainLayout>\n);\n\nexport const getStaticProps = async () => {\n const posts = await Promise.all(\n postSlugs.map(async (slug) => {\n const post = await getPostBySlug(slug);\n return post;\n })\n );\n return {\n props: {\n posts,\n },\n revalidate: REVALIDATE,\n };\n};\n"
},
{
"name":"/changelog/003-2020-08-03",
"content":"import { MainLayout } from 'components/Layout';\nimport { SuggestedPosts } from 'components/SuggestedPosts';\nimport { getPostBySlug } from 'lib/blog';\nimport { REVALIDATE } from 'lib/constants';\n\nexport const meta = {\n title: 'Changelog #003 - 2020-08-03',\n description:\n 'The focus of the latest release of the dashboard is providing insight into how you are interacting with the API. If you head to [https://dashboard.daily.co/developers](https://dashboard.daily.co/developers) you will now see API logs!',\n metaImage: '/assets/changelog-03.png',\n createdAt: '2020-08-03',\n updatedAt: '2021-07-13',\n};\n\nexport const postSlugs = ['get-started-with-the-daily-api'];\n\n# August 3, 2020\n\n<small>Changelog #003</small>\n\n![Daily dashboard displays a table of API logs](/assets/changelog-03.png)\n_A table of API logs with a set of filter inputs_\n\n## Dashboard\n\nThe focus of the latest release of the dashboard is providing insight into how you are interacting with the API. If you head to [https://dashboard.daily.co/developers](https://dashboard.daily.co/developers) you will now see API logs!\n\n![Detailed view of an API log](/assets/changelog-03-inline.png)\n\n_A view of a single API log with response body_\n\nYou can now:\n\n- View API logs from the last 60 days\n- Find logs of interest through basic filtering\n- Inspect the request and response bodies for API calls\n- Share logs with teammates using a URL\n\n## Core call experience\n\n- Fixed an issue where repeatedly muting and unmuting caused tracks to not be in the proper state\n- Fixed an issue where the camera light might come on after exiting a meeting in rare cases\n- Improved lots of internal backend code related to API logs and showing them in the dashboard\n\n<SuggestedPosts heading=\"New Blog Posts\" posts={props.posts} />\n\nexport default ({ children }) => (\n <MainLayout meta={meta}>{children}</MainLayout>\n);\n\nexport const getStaticProps = async () => {\n const posts = await Promise.all(\n postSlugs.map(async (slug) => {\n const post = await getPostBySlug(slug);\n return post;\n })\n );\n return {\n props: {\n posts,\n },\n revalidate: REVALIDATE,\n };\n};\n"
},
{
"name":"/changelog/004-2020-08-11",
"content":"import { ContentCard } from 'components/ContentCard';\nimport { MainLayout } from 'components/Layout';\n\nexport const meta = {\n title: 'Changelog #004 - Most of August Edition',\n description:\n 'We&apos;re back after some well deserved time off! The last few weeks have been focused on call scaling, stability and behind-the-scenes work in preparation for bigger features that we&apos;ll soon be sharing.',\n metaImage: '/assets/changelog-04-meta.png',\n createdAt: '2020-08-31',\n updatedAt: '2021-07-13',\n};\n\n# August 31, 2020\n\n<small>Changelog #004</small>\n\n![Video call with 12 cameras on](/assets/changelog-04.png)\n_A video call with 12 cameras on._\n\nWe're back after some well-deserved time off!  ☀️😎☀️  The last few weeks have been focused on call scaling, stability and behind-the-scenes work in preparation for bigger features that we'll soon be sharing.\n\nMost importantly, we've doubled the number of tracks that can be subscribed to in a call, so you can now have up to 200 people with 6 cameras and mics on at once, or 100 people in a call with 12 cameras and mics on, or 50 people in a call with 24 cameras and mics on. We can also increase these limits on a case-by-case basis, so please [let us know](mailto:help@daily.co?subject=Large%20Meetings) if you have a use case that requires larger session sizes.\n\n## Dashboard\n\nLast Changelog we launched API logs in the dashboard: <https://dashboard.daily.co/developers>.\n\nSince then, we've clarified how the dashboard records successful GET requests. The Response body now reads, \"Response bodies are not saved....\" We also continued working on internal backend code improvements related to API logs.\n\nAdditionally:\n\n- Revamped the breadcrumb navigation to make it easier to navigate through sections with multiple levels\n- Added a custom 404 page that provides helpful steps to recover from an unfound page\n- Fixed an issue where unsupported recording files were displaying on the Recordings tab\n- Improved page loading speeds by streamlining the resources that are used\n\n## Core call experience\n\n- Improved switching from p2p to SFU\n- Device selections now persist across sessions for calls in iframe mode\n- Improved https detection for pre-built UI\n- Fixed Firefox Android issue that prompted call participants to allow cam and mic permissions multiple times\n- Fixed delay for participants who join a call with both their audio and video muted\n- Shipped infrastructure improvements to strengthen call reliability\n- Fixed reconnect issues when in WebSocket signalling mode\n- Fixed screenshare recordings in customLayout mode\n\n## New blog posts\n\n<div className=\"contentRow\">\n <ContentCard\n title=\"DEV answer: Explain P2P server like I'm five!\"\n date=\"25 Jul 2020\"\n readTime={2}\n href=\"https://dev.to/kimberleejohnson/comment/12fh1\"\n />\n <ContentCard\n title=\"Add advanced security to video chats with the Daily API\"\n date=\"21 Aug 2020\"\n readTime={10}\n href=\"https://www.daily.co/blog/add-advanced-security-features-to-video-chats-with-the-daily-api/\"\n />\n <style jsx>{`\n .contentRow {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n grid-auto-rows: 1fr;\n grid-gap: 20px;\n }\n `}</style>\n</div>\n\nexport default ({ children }) => (\n <MainLayout meta={meta}>{children}</MainLayout>\n);\n"
},
{
"name":"/changelog/005-2020-09-17",
"content":"import { ContentCard } from 'components/ContentCard';\nimport { MainLayout } from 'components/Layout';\n\nexport const meta = {\n title: 'Changelog #005 - 2020-09-17',\n description:\n 'The latest engineering updates from the Daily real-time video and audio API team.',\n metaImage: '/assets/changelog-05-inline.png',\n createdAt: '2020-09-17',\n updatedAt: '2021-07-13',\n};\n\n# September 17, 2020\n\n<small>Changelog #005</small>\n\n## Dashboard\n\nThe dashboard continues to become your team's best friend. You can now view all of your session information for both live and past meetings on the new Sessions tab.\n\n- View all of your sessions along with metadata like start time, duration, and number of participants\n- Access details about any specific session to see which participants joined, how long they were in a meeting, and whether their connection experience packet loss\n- See how many meetings are happening in real time on the Overview tab\n\n![Daily dashboard displays session details](/assets/changelog-05-inline.png)\n_All your session data in one place!_\n\nIn addition:\n\n- Teams using HIPAA compliant video chat can now create and modify rooms from the Rooms tab\n- Improved the 404 page to help you get back on track more quickly\n- Fixed an accessibility issue where menus weren't keyboard accessible\n- Fixed an issue where newly created rooms wouldn't appear right away in the rooms list\n\n## Core call experience\n\n- 🌏  Added language support for 6 new languages ('sv' | 'es' | 'tr' | 'it' | 'ka' | 'jp')\n- 🎥  Fixed rare case where camera light remained on if someone left during a getUserMedia() call\n- ⬛  Fixed black video track issue in call object mode when experimentalChromeVideoMuteLightOff: true, and in SFU mode\n- 📹  Added better support for missing camera and/or mic:\n - fixed an issue resulting from a user having a camera but no mic\n - added better messaging in the camera-error meeting event to include when a camera and/or mic are not detected. ErrorMsg options are now:\n - devices Error : (new) camera and/or mic are not detected. check the values of audioOk and videoOk for which one(s) are not available.\n - not allowed : the user/browser/os has blocked access to the camera and/or mic\n - camera/mic error: other\n- ✅  Improved `participant-left` handling for websocket signaling when users quickly disconnect and reconnect\n- ✅  Fixed unhandled rejection in mediasoup for AwaitQueue\n- ✅  Fixed reconnect issues on Chrome\n- 📱  Improved detection and messaging for https on iOS\n\n## New blog posts\n\n<div className=\"contentRow\">\n <ContentCard\n title=\"Get started with the Daily API\"\n date=\"29 Jul 2020\"\n readTime={8}\n href=\"https://www.daily.co/blog/get-started-with-the-daily-api/\"\n />\n <ContentCard\n title=\"Build a video chat app in minutes with React and daily-js\"\n date=\"14 Sep 2020\"\n readTime={8}\n href=\"https://dev.to/trydaily/build-a-video-chat-app-in-minutes-with-react-and-daily-js-481c\"\n />\n <ContentCard\n title=\"Automate repository tagging with GitHub Actions\"\n date=\"17 Sep 2020\"\n readTime={2}\n href=\"https://dev.to/trydaily/automate-repository-tagging-with-github-actions-2nhc\"\n />\n <style jsx>{`\n .contentRow {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n grid-auto-rows: 1fr;\n grid-gap: 20px;\n }\n `}</style>\n</div>\n\nexport default ({ children }) => (\n <MainLayout meta={meta}>{children}</MainLayout>\n);\n"
},
{
"name":"/changelog/006-2020-10-23",
"content":"import { MainLayout } from 'components/Layout';\nimport { SuggestedPosts } from 'components/SuggestedPosts';\nimport { getPostBySlug } from 'lib/blog';\nimport { REVALIDATE } from 'lib/constants';\n\nexport const meta = {\n title: 'Changelog #006 - 2020-10-26',\n description:\n 'Read about a new /logs endpoint, updated dashboard, and react-native-daily-js in this week&apos;s changelog.',\n metaImage: '/assets/changelog-06-meta.png',\n createdAt: '2020-10-26',\n updatedAt: '2021-07-13',\n};\n\nexport const postSlugs = [\n 'the-logs-endpoint-and-beyond',\n 'announcing-dashboard-sessions-metrics-and-logs',\n 'announcing-react-native-daily-js',\n 'prebuilt-ui',\n];\n\n# October 26, 2020\n\n<small>Changelog #006</small>\n\n## Introducing call logs and metrics\n\nAll Daily calls now expose logs and metrics, so you can dig into your video call quality.\n\n- **Logs** provide a record of the events that take place during a call.\n- **Metrics** are WebRTC stats that help you understand and characterize video call quality and performance.\n You can view these new features either in your dashboard or through the new `/logs` endpoint.\n\n## Dashboard\n\nIn the [recently launched](https://docs.daily.co/changelog/changelog-005-2020-09-17) Sessions tab, you can now explore an individual participant’s session data. There you’ll find their call logs and metrics, along with other participant details.\n\n![Participant and session details in the Daily dashboaard](/assets/changelog-06-inline.png)\n_Explore participant and session details from the Daily dashboard._\n\n## /logs\n\nThe `/logs` endpoint returns even more granular detail about your calls, including track level details. Check out a walkthrough on [our blog](https://www.daily.co/blog/the-logs-endpoint-and-beyond/), see the endpoint in action through the[ Daily Call Explorer](https://colab.research.google.com/drive/1pMcB1I3YOhG7jcdH5ZrJk2VLb6cVzevm), or read our [full documentation](/reference/rest-api/logs).\n\n## react-native-daily-js (public beta)\n\n[react-native-daily-js](https://www.npmjs.com/package/@daily-co/react-native-daily-js) gives React Native developers access to the same APIs and server-side infrastructure that powers [daily-js](https://www.npmjs.com/package/@daily-co/daily-js) web calls. It:\n\n- Brings the [Daily call object](https://docs.daily.co/docs/build-a-custom-video-chat-interface#daily-call-object) to mobile devices, so developers can access call primitives, respond to call events, and build entirely custom, native video chat experiences.\n- Handles connections between callers, including all the quirks that can come up when participants are on different browsers and devices.\n- Provides access to participants’ network stats, enabling call-quality insights.\n\nRead the full announcement on [our blog](https://www.daily.co/blog/announcing-react-native-daily-js/), or experiment with our [playground repository](https://github.com/daily-co/react-native-daily-js-playground).\n\n## Call experience and other updates\n\n- 🔍  Shipped search in the dashboard, so you can look up specific session, room, and participant information more quickly\n- ✨  Refreshed our brand, launching [a new Daily homepage](https://www.daily.co/) and dropping the \".co\"\n- 🚦  Shipped a new [status page](https://status.daily.co/)\n- 🔒  Improved account security by introducing extra email verification for new accounts\n- ✅  Released [daily-js version 0.9.994](https://www.npmjs.com/package/@daily-co/daily-js):\n Added preload support to enable later performance improvements once a call loads\n Improved TypeScript declarations to better separate React Native and web functionality\n Fixed a bug related to mic enablement on iOS meetings, so call events continue even when app is backgrounded\n- ✅  Added support for teams using multiple subdomains for sharing links to different sessions, participants, and API logs\n- ✅  Fixed some bugs related to inviting and joining a team\n- ✅  changeFixed a bug where certain expired rooms weren’t marked as expired\n\n![Search in the Daily dashboard](/assets/changelog-06-inline-search.gif)\n_Search for session, room, and participant information from the dashboard._\n\n<SuggestedPosts heading=\"New Blog Posts\" posts={props.posts} />\n\nexport default ({ children }) => (\n <MainLayout meta={meta}>{children}</MainLayout>\n);\n\nexport const getStaticProps = async () => {\n const posts = await Promise.all(\n postSlugs.map(async (slug) => {\n const post = await getPostBySlug(slug);\n return post;\n })\n );\n return {\n props: {\n posts,\n },\n revalidate: REVALIDATE,\n };\n};\n"
},
{
"name":"/changelog/007-2020-11-23",
"content":"import { ContentCard } from 'components/ContentCard';\nimport { MainLayout } from 'components/Layout';\n\nexport const meta = {\n title: 'Changelog #007 - 2020-11-23',\n description:\n 'Dark mode! Events timeline! ...and so much more. Click to see what we&apos;ve been up to at Daily.',\n metaImage: '/assets/changelog-07-meta.gif',\n createdAt: '2020-11-23',\n updatedAt: '2021-07-13',\n};\n\n# November 23, 2020  🦃\n\n<small>Changelog #007</small>\n\n![Daily dashboard viewed in dark mode](/assets/changelog-07.png)\n\n## Dashboard\n\nAs you may have noticed, the dashboard is now available in **Dark Mode**. If you visit [Settings](https://dashboard.daily.co/settings) you can set this explicitly, or it'll default to match your global system settings.\n\nIn the Sessions view for each participant will also see a timeline that visualizes four groups of events:\n\n- Errors\n- Connection mode changes (P2P, SFU switches)\n- User actions (mic, cam, screenshare on/off)\n- Users joining, leaving, reconnecting\n\nThis is a direct response to customer questions around how to best make use of the [logs and metrics](https://www.daily.co/blog/the-logs-endpoint-and-beyond/) data. It is meant to be a better entry point into diagnosing call issues.\n\n![Daily dashboard viewed in dark mode](/assets/changelog-07-inline-eventlog.png)\n_The event timeline view_\n\nNext, we have put in place a data retention policy for logs and metrics according to your [plan](https://www.daily.co/pricing) type:\n\n- Free: 1 day\n- Launch: 3 days\n- Scale: 21 days\n- Custom options for enterprise plans\n\nIn addition, we:\n\n- 📈  Improved the metrics plotting for longer meetings, making it easier to see and interact with call metrics data\n- ⚛️  Now display logs and metrics for React Native clients\n\n## Core Call Experience\n\n- 🖥  Removed the 2 screenshare limit in call object mode\n\n## API\n\n- 🎁  Added new `/presence` [endpoint](/reference/rest-api/presence)\n\n## Libraries\n\n`react-native-daily-js 0.3.0` now supports logs and metrics. You can view them in your [Dashboard](https://dashboard.daily.co). `daily-js` now includes several improvements to support features in `react-native-daily-js`.\n\n- `daily-js` `0.9.995` - [Release Notes](https://github.com/daily-co/daily-js/releases/tag/daily-js-2020-11-02-0.9.995)\n- `daily-js` `0.9.994` - [Release Notes](https://github.com/daily-co/daily-js/releases/tag/daily-js-2020-10-19-0.9.994)\n- `react-native-daily-js` `0.3.0` - [Release Notes](https://github.com/daily-co/react-native-daily-js/releases/tag/react-native-daily-js-2020-11-16-0.3.0)\n- `react-native-daily-js` `0.2.0` - [Release Notes](https://github.com/daily-co/react-native-daily-js/releases/tag/react-native-daily-js-2020-11-02-0.2.0)\n\n## Demos\n\n- [Daily Screenshare - Chrome Extension](https://github.com/daily-demos/screenshare-chrome-ext)\n- [Fullscreen prebuitl UI w/Netlify backend](https://github.com/daily-demos/prebuilt-and-serverless)\n\n## New blog posts\n\n<div className=\"contentRow\">\n <ContentCard\n title=\"Spook your colleagues with a Halloween themed virtual standup\"\n date=\"26 Oct 2020\"\n readTime={6}\n href=\"https://dev.to/trydaily/spook-your-colleagues-with-a-halloween-themed-virtual-standup-52m1\"\n />\n <ContentCard\n title=\"Monitor how code performance impacts video call quality\"\n date=\"16 Nov 2020\"\n readTime={2}\n href=\"https://dev.to/trydaily/monitor-how-code-performance-impacts-video-call-quality-1cnc\"\n />\n <style jsx>{`\n .contentRow {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n grid-auto-rows: 1fr;\n grid-gap: 20px;\n }\n `}</style>\n</div>\n\nexport default ({ children }) => (\n <MainLayout meta={meta}>{children}</MainLayout>\n);\n"
},
{
"name":"/changelog/008-2020-12-10",
"content":"import { MainLayout } from 'components/Layout';\nimport { SuggestedPosts } from 'components/SuggestedPosts';\nimport { getPostBySlug } from 'lib/blog';\nimport { REVALIDATE } from 'lib/constants';\n\nexport const meta = {\n title: 'Changelog #008 - 2020-12-10',\n description:\n 'The latest engineering updates from the Daily real-time video and audio API team.',\n metaImage: '/assets/generic-meta.png',\n createdAt: '2020-12-10',\n updatedAt: '2021-07-13',\n};\n\nexport const postSlugs = [\n 'dailys-prebuilt-ui-now-supports-over-a-dozen-languages',\n 'build-your-own-chrome-extension-add-buttons-to-daily-call-participant-videos',\n 'add-a-text-or-image-overlay-to-a-video-element',\n];\n\n# December 10, 2020\n\n<small>Changelog #008</small>\n\n![Daily dashboard displays toggle options for different room settings](/assets/changelog-08.png)\n\n## Dashboard\n\n### Default room settings\n\nPreviously, the only way you could change your default room settings was through our REST API. In keeping with our approach of continuously adding functionality to the dashboard, you can now edit your default room settings there as well.\n\n![Shortcut to zoom into clusters of Daily call data displayed in dashboard](/assets/changelog-08-inline.gif)\n\n### Event clusters\n\nIn our last release, we found that real world data results in clusters of events, especially in long meetings and/or meetings with a lot of attendees. When events are clustered, they're difficult to interact with. To improve the UX for event clusters, we've added a shortcut to zoom into a cluster of events.\n\n![Dashboard API log search for request URLs](/assets/changelog-08-inline-logs.gif)\n\n**API logs: Search by request URL**\n\nYou asked for it, and now it's here. You can now search by request URL in your API logs.\n\n## Demos\n\nWe've simplified our demos experience to make it as easy as possible for you to get started exploring what you can do with Daily. Demos now live in the [daily-demos](https://github.com/daily-demos) org on GitHub. Each of them has a button so that you can easily deploy to Netlify. We've also added a new [awesome-daily](https://github.com/daily-demos/awesome-daily) repo that serves as an overview to all things Daily. We'd love to showcase community apps here, so PRs are welcome!\n\n> Note: we'll keep the old demos repo around for reference for a while until we're sure we've ported over everything that'll be useful. If there's anything that's missing, please don't hesitate to reach out!\n\n<SuggestedPosts heading=\"New Blog Posts\" posts={props.posts} />\n\nexport default ({ children }) => (\n <MainLayout meta={meta}>{children}</MainLayout>\n);\n\nexport const getStaticProps = async () => {\n const posts = await Promise.all(\n postSlugs.map(async (slug) => {\n const post = await getPostBySlug(slug);\n return post;\n })\n );\n return {\n props: {\n posts,\n },\n revalidate: REVALIDATE,\n };\n};\n"
},
{
"name":"/changelog/009-2021-01-08",
"content":"import { MainLayout } from 'components/Layout';\n\nexport const meta = {\n title: 'Changelog #009 - 2021-01-26',\n description:\n 'The latest engineering updates from the Daily real-time video and audio API team.',\n metaImage: '/assets/changelog-09.gif',\n createdAt: '2021-01-26',\n updatedAt: '2021-07-13',\n};\n\n# January 26, 2021\n\n<small>Changelog #009</small>\n\n![A sample webinar app showing local video and participants being hidden](/assets/changelog-09.gif)\n\n## daily-js 0.9.997\n\n- 🛤  The participant list returned by `participants()` (and all events that return a list of participants), now includes a `tracks` property which gives you a more granular representation of the state of each track. See [`participants()`](/reference/daily-js/instance-methods/participants) docs for more. (Also available in `react-native-daily-js`).\n- 👩  In the prebuilt UI you can now control whether your local video is displayed in the corner, with a setter ([`setShowLocalVideo()`](/reference/daily-js/instance-methods/set-show-local-video)), a getter ([`showLocalVideo()`](/reference/daily-js/instance-methods/show-local-video)), and a property to pass into factory methods or at meeting join time (`showLocalVideo`).\n- 👩‍👩‍👧‍👧  Additionally, in the prebuilt UI you can now control whether the participants bar (the row of videos during a screenshare) is displayed, with a setter ([`setShowParticipantsBar()`](/reference/daily-js/instance-methods/set-show-participants-bar)), a getter ([`showParticipantsBar()`](/reference/daily-js/instance-methods/show-participants-bar)), and a property to pass into factory methods or at meeting join time (`showParticipantsBar`).\n- 📛  Added [`setUserName()`](/reference/daily-js/instance-methods/set-user-name) for programmatically setting the user name that other participants see either visually in the prebuilt UI or through the `user_name` property in the `participants` object corresponding to you.\n- The new [`setInputDevicesAsync()`](/reference/daily-js/instance-methods/set-input-devices-async) method returns a Promise.\n\n## Live streaming\n\n- 📺  Our RTMP streaming backend is now more stable and compatible with more services.\n- 🎞  The keyframe interval while live streaming has been dropped from 3 seconds to 2 seconds, in line with ingest stream recommendations on major streaming services.\n\n## Bugfixes and other improvements\n\n- 🐛  Fixed a bug where when leaving an iframe-based meeting by clicking the leave button in the iframe, stale participants from that meeting would \"linger\" in `participants()`, necessitating the creation of a new `DailyIframe` for a new meeting.\n- 🛤  TypeScript declaration fixes for `track-started` and `track-stopped` events.\n- 🎨  TypeScript declaration fixes wherever CSS properties are expected.\n\nexport default ({ children }) => (\n <MainLayout meta={meta}>{children}</MainLayout>\n);\n"
},
{
"name":"/changelog/010-2021-02-22",
"content":"import { ContentCard } from 'components/ContentCard';\nimport { MainLayout } from 'components/Layout';\n\nexport const meta = {\n title: 'Changelog #010 - 2021-02-22',\n description:\n 'The latest engineering updates from the Daily real-time video and audio API team.',\n metaImage: '/assets/changelog-10.png',\n createdAt: '2021-02-22',\n updatedAt: '2021-07-13',\n};\n\n# February 22, 2021\n\n<small>Changelog #010</small>\n\n![Daily Developer page screenshot with cards for embedding video chat, building from scratch on mobile or desktop, and the API](/assets/changelog-10.png)\n\nWe launched a new [docs landing page](https://docs.daily.co/)! Have a look when you get a chance, and read on for more updates.\n\n## daily-js 0.9.999 and react-native-daily-js 0.7.1\n\n- 🔌  All new Daily domains now default to web socket signaling. Using web sockets makes muting, unmuting, and changing track subscriptions faster.\n- 👩‍👩‍👧‍👧  You can now update all participants on a call at once when you pass `*` to the [`updateParticipants()`](/reference/daily-js/instance-methods/update-participants) method. For example, here's how you'd subscribe to all participants' media tracks: `callObject.updateParticipants({'*': {setSubscribedTracks: true}});`.\n- 🚪  The [`room()`](/reference/daily-js/instance-methods/room) method now returns comprehensive `config` properties, including both explicitly-set and default values. To only see explicitly-set properties, pass in a new `{includeRoomConfigDefaults: false}` argument. `room()` now also returns `domainConfig` properties describing the room's domain.\n- 🎥  `recording-started` and `recording-stopped` [events](/reference/daily-js/events/recording-events) now fire for all participants—not just the recorder—when someone starts recording the meeting. Additionally, `DailyParticipant` objects (the ones returned by `participants()`) have a new `record` field that indicates whether the participant is recording.\n\n## Performance improvements\n\n- 📺  Improved our RTMP pipeline performance, and reduced CPU usage during the background generation process. Added support for RTMPS.\n- 🛤  Better [track subscription](https://www.daily.co/blog/create-dynamic-meetings-using-track-subscriptions/) performance, especially when updating multiple tracks.❗️important reminder: if you need to update multiple participants, call the [`updateParticipants()`](/reference/daily-js/instance-methods/update-participants) method once, _not_ [`updateParticipant()`](/reference/daily-js/instance-methods/update-participant) multiple times.\n\n## Other bug fixes\n\n- 🐛  Fixed edge case that ignored [`max_participants`](/reference/rest-api/rooms/config) property.\n- ⏰  Adjusted client-side timestamps sent in via logging and telemetry to align with server time.\n- 🖌  UI [dashboard](https://dashboard.daily.co/) updates: centered chevron, added scroll away domain menu and tooltips on hover, new status codes on webhooks in API logs.\n\n## New blog posts and podcasts\n\n<div className=\"contentRow\">\n <ContentCard\n title=\"Announcing self-signed meeting tokens\"\n date=\"17 Feb 2021\"\n readTime={4}\n href=\"https://www.daily.co/blog/announcing-self-signed-meeting-tokens/\"\n />\n <ContentCard\n title=\"Create audio-only meetings with Daily\"\n date=\"18 Feb 2021\"\n readTime={5}\n href=\"https://www.daily.co/blog/create-audio-only-meetings-with-daily/\"\n />\n <ContentCard\n title=\"Greater than code: cultivating strength and change with Wesley Faulkner\"\n date=\"10 Feb 2021\"\n readTime={5}\n href=\"https://www.greaterthancode.com/cultivating-strength-and-change\"\n />\n <style jsx>{`\n .contentRow {\n display: grid;\n grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));\n grid-auto-rows: 1fr;\n grid-gap: 20px;\n }\n `}</style>\n</div>\n\nexport default ({ children }) => (\n <MainLayout meta={meta}>{children}</MainLayout>\n);\n"
}
]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment