diff --git a/.gitignore b/.gitignore index 6d4c0aa..91f8086 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,8 @@ pnpm-debug.log* # macOS-specific files .DS_Store + +# PageFind +public/pagefind + +md-to-html.exe \ No newline at end of file diff --git a/.prettierrc b/.prettierrc new file mode 100644 index 0000000..a7963da --- /dev/null +++ b/.prettierrc @@ -0,0 +1,4 @@ +{ + "plugins": ["prettier-plugin-tailwindcss"], + "tabWidth": 4 +} diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..af465aa --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ +Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2024 Coworking Crew + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.md b/README.md index d7a201f..bb3af37 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,22 @@ +
{tagline}
+{timeAgo(new Date(pubDate))}
++ {children} +
+ ); +}; diff --git a/src/content/config.ts b/src/content/config.ts new file mode 100644 index 0000000..4962e2f --- /dev/null +++ b/src/content/config.ts @@ -0,0 +1,23 @@ +// Import utilities from `astro:content` +import { z, defineCollection } from "astro:content"; +// Define a `type` and `schema` for each collection +const postsCollection = defineCollection({ + type: "content", + schema: z.object({ + heading: z.string(), + subheading: z.string()?.optional(), + pubDate: z.date(), + author: z.string(), + image: z + .object({ + url: z.string(), + alt: z.string(), + }) + ?.optional(), + tags: z.array(z.string())?.optional(), + }), +}); +// Export a single `collections` object to register your collection(s) +export const collections = { + posts: postsCollection, +}; diff --git a/src/content/posts/1-Spirit-City.md b/src/content/posts/1-Spirit-City.md new file mode 100644 index 0000000..bc14fec --- /dev/null +++ b/src/content/posts/1-Spirit-City.md @@ -0,0 +1,44 @@ +--- +heading: "Spirit City: Lofi Sessions" +subheading: Where Productivity Meets Cozy Vibes +author: RythonDev +slug: spirit-city +pubDate: 2024-04-18T4:10:00 +--- + +In the ever-growing world of productivity apps and techniques, Spirit City: Lofi Sessions offers a unique and delightful twist. Forget the harsh red timers and sterile to-do lists. Here, you cultivate focus amidst a charming virtual world bathed in calming lo-fi beats and populated by friendly spirits. + +## A Gamified Oasis for Focus + +Developed by Mooncube Games, Spirit City: Lofi Sessions isn't your typical productivity tool. It's a gamified experience, transforming the act of getting things done into a visually appealing and engaging adventure. Imagine a cozy room, customizable to your heart's content, where you can unwind and tackle your tasks simultaneously. This is your haven in Spirit City. + +## Unleash Your Inner Decorator + +The room is your canvas. Spruce it up with a variety of furniture, plants, and decorations. Want a minimalist aesthetic conducive to intense concentration? Done. Craving a vibrant and playful space to spark creativity? No problem. The options cater to diverse preferences, allowing you to personalize your environment for maximum focus flow. + +## Meet Your Spirit Companions + +One of the most captivating aspects of Spirit City is the presence of adorable, collectable spirits. These ethereal companions aren't just cute additions to your room; they provide a sense of purpose within the game's focus-driven framework. As you complete tasks in the real world, your spirits level up, unlocking new customization options and deepening the connection between your virtual and actual productivity. + +## Beyond the Aesthetics: Practical Tools for Productivity + +While the visuals and atmosphere are undeniably captivating, Spirit City offers a robust toolkit for actual productivity, such as: + +* **Task Management:** Create and manage to-do lists directly within the game, seamlessly integrating your virtual and real-world tasks. +* **Focus Timers:** Utilize built-in focus timers to structure your workday and prevent procrastination. +* **Pomodoro Technique Integration:** For fans of the Pomodoro Technique, Spirit City provides a gamified version of this popular time management method. +* **Background Ambience:** The ever-present (non-copyrighted) lo-fi soundtrack creates a calming and focused atmosphere, perfect for drowning out distractions and promoting concentration. + +## A Community of Focused Folks + +Spirit City fosters a community of like-minded individuals striving for productivity. Follow productivity streamers playing the game to connect with others who share your goals. Sharing tips, celebrating accomplishments, and holding each other accountable can significantly boost your overall motivation. + +## Is Spirit City Right for You? + +If you're tired of traditional productivity apps and yearn for a more engaging and stress-free approach to getting things done, then Spirit City: Lofi Sessions might be the game-changer you've been looking for. It offers a unique blend of customization, gamification, and a focus-oriented environment, all wrapped in a charming and visually appealing package. So, put on your headphones, fire up Spirit City, and embark on a productivity adventure unlike any other. + +- Coworking and study streams are a type of stream where people - work or study together. It's a great way to stay motivated and - productive, especially if you're working! -
-- This guide has been created to help out coworking and study - streamers by providing tips and resources to enhance the - streaming experience! -
-- Streaming yourself working is a great way to stay accountable - and productive. It's also a great way to grow your following and - meet new people! -
-+ By {entry.data.author} +
++ Published {timeAgo(new Date(entry.data.pubDate))} +
+
-
-MohCitrus is a translator bot made by MohFocus! It can translate messages of viewers to any language via commands!
-
----
-
-## Custom bots
-
-Interested in making your own bot? Want to look for a programming project to work on? Check out Comfy.JS made by Instafluff!
diff --git a/src/pages/credits/index.md b/src/pages/credits/index.md
new file mode 100644
index 0000000..18d0da5
--- /dev/null
+++ b/src/pages/credits/index.md
@@ -0,0 +1,41 @@
+---
+title: Credits
+layout: "../../layouts/GuideLayout.astro"
+description: Credits to the people behind this website!
+---
+
+# Credits
+
+Credits to the wonderful team of people behind this guide!
+
+---
+
+
+
+## RythonDev
+
+Main developer of the project
+
+
+
+Image source: [Ellyskey (Twitch)](https://twitch.tv/Ellyskey)
+
+The Pomodoro Technique is a time management method where you work in focused intervals called pomodoros separated by short breaks. This helps you stay concentrated, avoid burnout, and tackle big tasks by breaking them into manageable chunks.
+
+Coworking streamers tend to use 50 minutes of work and 10 minutes of break (50/10) for their streams for optimal balance of being able to get work done and be able to chat with viewers.
+
+---
+
+## How do people enjoy these streams?
+
+
+
+Image source: [SeijiSoldier (Twitch)](https://twitch.tv/SeijiSoldier)
+
+> ### What are your thoughts on co-working streams?
+
+> I'm not saying I dislike them, but I just want to understand how people enjoy these streams. It's mostly just the streamer doing their work while their cam is facing in front of them. There's nothing much to watch as it's not display captured (understandable since work is confidential).
+>
+> Sometimes, when I chat with them they don't even reply back. They usually have a timer in their overlay and after the timer ends they talk to chat again.
+>
+> Maybe I'm a boomer, but can anyone shed light on why these streams are a thing on Twitch?
+
+Source: [Archived Reddit post](https://www.reddit.com/r/Twitch/comments/t66g15/what_are_your_thoughts_on_coworking_streams/)
+
+Although might seem unconventional to watch someone else work, there are several reasons why viewers enjoy these streams:
+
+- **Accountability and Focus**
+
+ Working from home can be isolating and lead to procrastination. Co-working streams provide a virtual study buddy or colleague, fostering a sense of accountability that viewers can leverage to stay on task. Seeing the streamer working diligently can motivate viewers to do the same.
+
+- **Community and Support**
+
+ The chat function in these streams creates a sense of community. Viewers can discuss their work, ask questions, or simply enjoy the company of others while working. This social interaction can be a welcome change from the solitary nature of remote work.
+
+- **Background Noise and Ambience**
+
+ Some viewers find background noise, like music or light chatter, helpful for concentration. Co-working streams can provide this calming ambience without the distractions of traditional co-working spaces.
+
+- **Learning and Inspiration**
+
+ By watching a streamer work, viewers might pick up new productivity techniques or software shortcuts. Seeing someone else tackle similar tasks can be inspiring and motivating.
+
+It's understandable that the lack of direct interaction or display capture might be unfamiliar. Streamers typically prioritize focusing on their work during these periods, addressing chat messages during breaks or using timers to dedicate time for interaction.
+
+Ultimately, co-working streams cater to a specific need for some viewers. They offer a unique blend of productivity, community, and a supportive atmosphere that traditional work environments might lack.
+
+---
+
+## What is a task widget?
+
+
+
+If you want to add a task widget to your own stream, check it out in the Widgets section!
+
+A task widget is a widget where users can use commands such as:
+- !task [current task]
+- !todo [current task]
+
+in chat to add their task(s) to the widget, to remind themselves about what they need to focus on at the moment.
+
+Task widgets offer an extra layer of accountability for the streamer and chatters to focus on their current task(s).
+
+---
+
+## How can I find these streams?
+
+The recommended way of searching for coworking streams are using the tags!
+
+- [Coworking tag](https://www.twitch.tv/directory/all/tags/coworking)
+- ["Study with me" tag](https://www.twitch.tv/directory/all/tags/studywithme)
+
+### [Coworking category petition π](https://twitch.uservoice.com/forums/310210-discover/suggestions/46004791-coworking)
+
+
+
+As of March 2024, there isn't an official category. So we want YOU to [SIGN THE PETITION](https://twitch.uservoice.com/forums/310210-discover/suggestions/46004791-coworking) for a "Coworking and Study" category!
+
+An official coworking category will be beneficial for the community in the following ways:
+
+- Allow coworking and study streamers to stream away from Just Chatting and stream in a less saturated category.
+- Improve discoverability of productivity streamers (big and small creators!)
+- Improve the algorithm to recommend more productivity related streams to users who are interested.
+
+---
\ No newline at end of file
diff --git a/src/pages/get-started/pre-requisites.md b/src/pages/get-started/pre-requisites.md
new file mode 100644
index 0000000..6a3504d
--- /dev/null
+++ b/src/pages/get-started/pre-requisites.md
@@ -0,0 +1,54 @@
+---
+title: Pre-requisites
+layout: "../../layouts/GuideLayout.astro"
+description: Pre-requisites for coworking streams!
+order: 1
+---
+
+# Pre-requisites
+
+Get ready for coworking streams!
+
+---
+
+## Pre-requisites (Computer)
+
+Pre-requisites for starting coworking streams on your desktop computer or laptop.
+
+### Software
+
+- [OBS](https://obsproject.com/) : Free and open source software for video recording and live streaming.
+
+### Hardware
+
+- **Internet Capacity (bitrate)**
+ - There are some online calculators you can use to determine the ideal bitrate based off your computer specs and preferred output (screen resolution, frames per second).
+ - Check out this [in depth guide from Reddit](https://www.reddit.com/r/Twitch/comments/2dz7ru/bitrates_resolutions_and_quality/) to learn more!
+- **RAM**
+ - The more RAM a computer has, the better it is at multitasking.
+ - Minimum 8GB, 16GB or more is recommended.
+- **CPU**
+ - The better the CPU, the faster the computer can process data and instructions.
+ - clock speed of 3.0 GHz or higher, such as an Intel Core i5 or AMD Ryzen 5.
+- **GPU**
+ - The better the GPU, the better the image quality and the higher the frame rate.
+ - A dedicated GPU is not required for streaming, but it is recommended for a better viewing experience.
+ - A dedicated graphics card with at least 4GB of VRAM, such as an NVIDIA GeForce GTX 1050 or AMD Radeon RX 560.
+
+---
+
+## Pre-requisites (Mobile)
+
+Usually, streamers who stream from their phone would use their laptop device to interact with chat!
+
+### Hardware
+
+- **Camera**
+ - Having a camera pointed towards your direction is effective for accountability!
+
+### Software
+
+- **Twitch / YouTube app**
+ - Depending on which platform you intend to stream on.
+
+---
\ No newline at end of file
diff --git a/src/pages/groups.md b/src/pages/groups.md
deleted file mode 100644
index 36fba41..0000000
--- a/src/pages/groups.md
+++ /dev/null
@@ -1,61 +0,0 @@
----
-title: Groups
-layout: "../layouts/Markdown.astro"
-description: Find new communities to join!
----
-
-# Groups
-
-I recommend the following communities to join! They provide a great way to connect with other streamers and viewers!
-
----
-
-Coworking Crew π
-
-
-
-
-
-The Coworking Crew is a group of co-working streamers who aim to create supportive and motivational live streams for people who are working or studying at home. As a group we help each other out, collaborate on stream, and ultimately find new friends.
-
----
-
-Self.dev π
-
-
-
-
-
-Self.dev is a community of various individuals from different fields come together to share knowledge and grow together. They focus on supporting each other by sharing and creating valuable resources to help each other grow individually.
-
----
-
-YOUthversity π
-
-
-
-
-
-YOUthversity is not only an online space to study together but is dedicated to the exchange of resources, dialogue, peer-to-peer support, and development.
-
----
-
-Erudita π
-
-
-
-
-
-An educational platform suitable for those seeking knowledge. In the community, you have the opportunity to learn alongside others or apply for Erudita membership and share your expertise and passions.
-
----
-
-CEO Gang π
-
-
-
-
-
-The right place for ambitious people working together and supporting each other! Make friends, learn and work remote!
-
----
diff --git a/src/pages/groups/index.md b/src/pages/groups/index.md
new file mode 100644
index 0000000..e8e4ce5
--- /dev/null
+++ b/src/pages/groups/index.md
@@ -0,0 +1,52 @@
+---
+title: Stream groups
+layout: "../../layouts/GuideLayout.astro"
+description: Groups you should definitely checkout!
+order: 0
+---
+
+# Groups
+
+Communities provide a great way to connect with other streamers and viewers!
+
+---
+
+[](https://www.twitch.tv/team/coworkingcrew/)
+
+## [Coworking Crew π](https://www.twitch.tv/team/coworkingcrew/)
+
+The Coworking Crew is a group of co-working streamers who aim to create supportive and motivational live streams for people who are working or studying at home. As a group we help each other out, collaborate on stream, and ultimately find new friends.
+
+---
+
+[](https://erudita.me/)
+
+## [Erudita π](https://erudita.me/)
+
+An educational platform suitable for those seeking knowledge. In the community, you have the opportunity to learn alongside others or apply for Erudita membership and share your expertise and passions.
+
+---
+
+
+
+## [YOUthversity π](https://www.youthversity.org/)
+
+YOUthversity is not only an online space to study together but is dedicated to the exchange of resources, dialogue, peer-to-peer support, and development.
+
+---
+
+
+
+## [self.dev π](https://theselfdev.com/)
+
+Self.dev is a community of various individuals from different fields come together to share knowledge and grow together. They focus on supporting each other by sharing and creating valuable resources to help each other grow individually.
+
+---
+
+
+
+## [CEO Gang π](https://studytme.com/)
+
+The right place for ambitious people working together and supporting each other! Make friends, learn and work remote!
+
+---
diff --git a/src/pages/guide/emotes.md b/src/pages/guide/emotes.md
new file mode 100644
index 0000000..da665a6
--- /dev/null
+++ b/src/pages/guide/emotes.md
@@ -0,0 +1,31 @@
+---
+title: Emotes
+layout: "../../layouts/GuideLayout.astro"
+description: Learn how to add emotes to your streams!
+order: 5
+---
+
+# Emotes
+
+Stream emotes are like custom emojis specific to a channel, acting as a fun and engaging way for viewers to express emotions, inside jokes, and reactions during a livestream, fostering a sense of community and shared experience.
+
+---
+
+## Channel emotes (Twitch)
+
+When you reach the Twitch Affiliate goal, you can add emotes to your channel for subscribers to use! However, Follower emotes are only available if you have [Instant Upload Privilege](https://help.twitch.tv/s/article/emote-guidelines?language=en_US#instantupload)
+
+## Emote extensions
+
+Donβt understand when your chat says in βKEKWβ? Itβs a common third party Twitch emote! You can add extensions to your channel to add more emotes for your viewers to use. Some popular ones include BetterTTV, FrankerFaceZ and 7TV.
+
+### Browser Extensions
+ - [Download BetterTTV](https://betterttv.com/)
+ - [Download FrankerFaceZ](https://www.frankerfacez.com/)
+ - [Download 7TV](https://7tv.app/)
+
+You wonβt run into any issues using all three extensions at once!
+
+However, if you only want to use one Emote extension, [FrankerFaceZ](https://www.frankerfacez.com/) is probably the best one to go for! It is stable, has special addons through the extension itself for BTTV and 7TV emotes, and has the best customization for twitch as a site!
+
+---
diff --git a/src/pages/guide/general-tips.md b/src/pages/guide/general-tips.md
new file mode 100644
index 0000000..34b85f0
--- /dev/null
+++ b/src/pages/guide/general-tips.md
@@ -0,0 +1,84 @@
+---
+title: General Tips
+layout: "../../layouts/GuideLayout.astro"
+description: General tips for your coworking streams!
+order: 0
+---
+
+# General Tips
+
+General tips for your coworking streams!
+
+---
+
+## Should I mute?
+
+Most streamers mute themselves during the work sessions because it makes it easier for the viewers to focus. However itβs also possible to leave the mic on for keyboard asmr and general βoffice noiseβ which many people enjoy - ask your community what they prefer!
+
+## Chat commands for coworking streams
+
+Chat commands are very useful since you won't be chatting much during the work timer. Some common chat commands you may see include ones that introduce your stream, provide a brief introduction to the pomodoro method (if you use it), or a muted command that may explain why you may be muted (e.g: !welcome !timer !pomo !muted). You may also like to add a command to tell your viewers what you're working on that day (!today !work !study) - this adds a nice personal touch and you can use it to encourage other's to talk about what they're working on too.
+
+## Closed Captions
+
+[MAXIMIZE Your Reach on Twitch with Live Captions](https://youtu.be/cQzJL9uoIbg)
+
+Closed captions open your stream to a wider audience by including viewers who are deaf or hard of hearing, and can even benefit viewers in noisy environments who might miss some dialogue.
+
+---
+
+## Do's
+
+- ### Have control of your ad timings
+
+```
+https://dashboard.twitch.tv/popout/u/{{channel}}/stream-manager/streamer-ads-manager-panel
+```
+
+If you're using OBS, you can add the link above as a dock to your OBS (remember to replace "\{\{channel\}\}" with your actual channel name). This way, you can easily run ads and view when your next ad break is without having to go to the Twitch dashboard.
+
+- ### Have a consistent stream schedule
+
+A regular stream schedule lets your viewers know exactly when to expect you to go live. When viewers can anticipate your streams, they are more likely to make time to watch, increasing the chances of them tuning in and engaging with your content.
+
+Regularly scheduled streams also help you attract and retain viewers. When new viewers find your stream, they are more likely to follow if they see a consistent schedule. Additionally, existing followers are more likely to continue watching if they know when to catch your streams.
+
+- ### Social Media Marketing
+
+Having good social media marketing allows you to reach a broader audience beyond your live streams. Utilizing platforms like Instagram and YouTube (even YouTube Shorts!) enables you to promote your content, engage with potential viewers and build a loyal following, increasing visibility and attracting new members to your community.
+
+- ### Use stream layouts that make your stream stand out
+
+On Twitch, people would go through the browse section with a frame of your stream as the thumbnail. If you want to increase the chances of people clicking onto your stream, you should make your stream more attractive.
+
+- ### Interact with Chat
+
+Interacting with your chat is crucial to grow your community because it fosters a sense of engagement and connection with your audience. By acknowledging and responding to viewers, you create a welcoming and inclusive atmosphere, encouraging viewers to stay, become regulars, and invite others, ultimately leading to organic community growth.
+
+- ### Network with other streamers
+
+Having good networking opens up collaboration opportunities, cross-promotion, and exposure to each otherβs audiences. By forming connections within the streaming community, you can tap into a larger pool of viewers, gain credibility, and foster a supportive environment that encourages mutual growth and success.
+
+---
+
+## Don'ts
+
+- ### Don't get distracted by chat
+
+One concern for many new coworking streamers is that they are worried about ignoring chat. This is the hard part! It's important (and very tempting) to interact with your community but it's also important you are able to get your work done. That's the point after all!. Remember you're there to work so try not to feel guilty about ignoring new people - it's useful to have mods who can do this for you instead. And you can always chat with them in your breaktime! If you're too busy to answer questions, it can be useful to have a command like !muted to let new people know that you are trying to focus and will chat later.
+
+- ### Don't self promote
+
+Hopping on chat and mention anything about your own stream is considered self-promotion and can be considered rude, especially when no permission was granted.
+
+- ### Don't worry about view count
+
+Just focus on your work.
+
+- ### Avoid using Display Capture
+
+Some coworking streamers may have Display Capture source on their primary pomodoro scene for extra accountability. However, this may leak sensitive information such as Email, full name, credentials etc.
+
+It is recommended to blur it, or make your Display Capture source very small until no text content is readable.
+
+---
\ No newline at end of file
diff --git a/src/pages/guide/moderation-and-trolls.md b/src/pages/guide/moderation-and-trolls.md
new file mode 100644
index 0000000..92b6f37
--- /dev/null
+++ b/src/pages/guide/moderation-and-trolls.md
@@ -0,0 +1,64 @@
+---
+title: Moderation and Trolls
+layout: "../../layouts/GuideLayout.astro"
+description: Learn how to moderate your coworking streams!
+order: 6
+---
+
+# Moderation and Trolls
+
+---
+
+## Moderation
+
+Having a good moderation team is important for coworking streamers, since most of the time we are focused on our own work and not chat! This is why it's particularly important to have a good moderation team to help you out so you don't get distracted.
+
+Consider these three main things when choosing your mods:
+
+- How well do they all get along with each other?
+- What is their availability?
+- Are they good at staying calm and being reasonable?
+
+As well as this, it is ideal if mods are welcoming and active in your community - you can't always be there to say hi to everyone while your working so it's great to have a friendly mod team to welcome new people and answer questions!
+
+:::note
+How you invite your mods is a personal choice! And don't feel bad if you ask someone and they say no - not everyone is up for the job! If you know someone you'd like as a mod you could DM them with a personal invite, otherwise you could create an application form if that suits you and your community better!
+:::
+
+
+---
+
+## Bots and trolls
+
+As with any social media platform, you may encounter trolls and bots while you stream. If this happens, it is best to stay calm and work with your mods to resolve the situation; most of the time it is just annoying and won't result in anything serious. The following section is not an exhaustive list and this only meant as friendly advice. Please make sure you have read twitch TOS and only do what makes you feel comfortable and safe.
+
+- ### Generic Trolls
+
+ For trolls that enter your chat and immediately send very inappropriate messages (e.g. hateful/sexual content) it is best to ignore them, ban them straightaway and move on. Giving them attention may create a negative atmosphere in your stream and make others feel unsafe. Try not to take these comments personally - it is unlikely to be targeted and they probably just want to get a reaction out of you.
+
+- ### Promotional bots
+
+ This is when several bot accounts post in your chat with the same message, usually advertising a "get famous quick" scam. To stop this, you can put your chat in follower only mode by typing `/followers` in your chat. Usually they will go away quickly and you can type `/followersoff` to change it back.
+
+ You can also make use of the AutoMod feature by banning phrases like "bigfollow", so their messages get automatically removed. You can find this in your Dashboard Settings β Moderation. If you would like, you can also block hyperlinks in the same page or a stream bot (NightBot, StreamElements, etc.)
+
+- ### Follow bots/raids
+
+ This is when several bot accounts follow your channel all at the same time. It can be anywhere from 10-10k. If this happens, stay calm, and turn off follower alerts to stop the alert spam. Sometimes the bots will also send messages all at once so you put your chat in subscriber mode to prevent this if you wish (type /subscribers in your chat).
+
+ To get rid of bots, you can use [CommanderRoot's follower removal tool](https://twitch-tools.rootonline.de/follower_remover.php). Follow the instructions on his home page to remove accounts between a certain timeframe (you'll need to know what time the bots followed to avoid removing real people). Alternatively, you can just wait and Twitch will delete the accounts after a few days. Your follower count will drop suddenly but this is good - you don't want bots following you!
+
+- ### Donation trolls
+
+ These are particularly nasty trolls. They donate money, anywhere from $10-$200 or more, maybe repeatedly, and will not talk very much in the chat, aside from making some request in exchange for the money they just donated. They then will ask for a chargeback (if youre using paypal). You can try and fight the case but there is a good change you will not win, and if you lose you have to pay $14 chargeback fee each time. This can add up over time. If you suspect someone is a Dono troll, you can block them from donating:
+
+ Go to your [donation page](https://streamlabs.com/dashboard#/donations). There should be a list of names and donations:
+
+
+
+
+
+---
\ No newline at end of file
diff --git a/src/pages/guide/music-and-audio.md b/src/pages/guide/music-and-audio.md
new file mode 100644
index 0000000..5fafd40
--- /dev/null
+++ b/src/pages/guide/music-and-audio.md
@@ -0,0 +1,132 @@
+---
+title: Music and Audio
+layout: "../../layouts/GuideLayout.astro"
+description: Learn how to add music or audio for your coworking streams!
+order: 1
+---
+
+# Music and Audio
+
+The vibe of a coworking stream is determined by the background music or audio!
+
+---
+
+## Non-DMCA Playlists
+
+> DMCA: Digital Millenium Copyright Act
+
+Non-copyrighted music playlists for you to listen on stream!
+
+### Lofi Girl
+
+- [Spotify](https://open.spotify.com/playlist/0vvXsWCC9xrXsKd4FyS8kM?si=65d4b951673847a2)
+- [YouTube (playlist)](https://www.youtube.com/watch?v=CMNyHBx1gak&list=PL6NdkXsPL07KN01gH2vucrHCEyyNmVEx4)
+- [SoundCloud](https://soundcloud.com/lofi_girl)
+
+### Lofi Boy (Synthwave)
+
+- [Spotify](https://open.spotify.com/playlist/1YIe34rcmLjCYpY9wJoM2p?si=f5115c5c9b644871)
+- [YouTube (video)](https://youtu.be/TlWYgGyNnJo)
+
+### Chillhop
+
+- [Spotify](https://open.spotify.com/user/chillhopmusic?si=b9c63cbb27db45ab&nd=1&dlsi=477657d953294e71)
+- [YouTube (playlist)](https://www.youtube.com/watch?v=XuW2hx3h7sE&list=PLt7bG0K25iXgkGK9PLhP3yryqc7S8uHds)
+- [SoundCloud](https://soundcloud.com/chillhopdotcom)
+
+### Lud and Schlatts Musical Emporium - Classical
+
+- [YouTube (playlist)](https://youtu.be/VBSP75pr2bg?list=PL2LwrpMfls5K1DVyG5ii_mEGKqzK9EGlr)
+
+---
+
+## How to Display 'Now Playing'
+
+### [6K Labs π](https://6klabs.com/)
+
+
+
+- Easy to implement
+- Available for YouTube Music and Spotify
+- Has many design choices and settings:
+ - Dark/Light mode
+ - Tint colour options
+ - Different aesthetic choices:
+ - Compact
+ - macOS
+ - Linux Shell
+ - And many more!
+
+### [Pixel Chat π](https://pixelchat.tv/)
+
+
+
+To do this, you'll need to have two different audio outputs (i.e. two headphones/speakers). For windows users, go to sound settings --> advance sound options --> app volume device preferences (or if you can't find it, search "sound mixer options" in your start) then you should see this:
+
+There you can have your different outputs for different programmes. For example, one pair of headphones is used for zoom, and the other for everything else. In your streaming software, make sure the output is selected for the correct pair of headphones in your mixer!
+
+### Complicated ways
+
+- #### [VoicemeeterBanana](https://vb-audio.com/Voicemeeter/banana.htm)
+ 
+
+ - Download Voicemeeter Banana (software to route audio sources) and set all the audio sources/inputs you don't want to include on stream into a Voicemeeter input/output source separate from the main routing.
+ - The outputs will show up separately in your Audio Mixer, which you can adjust/mute
+ - Tutorial: [Separate Game Audio, Discord, Music in OBS! (A Voicemeeter Tutorial for Beginners)](https://www.youtube.com/watch?v=XD9sWOjITYU&t=376s)
+
+- #### [BlackHole audio](https://obsproject.com/forum/resources/mac-desktop-audio-using-blackhole.1191/)
+ 
+ - Free! Integrates with OBS
+
+- #### [GroundControl Caster](https://gingeraudio.com/groundcontrol-caster/)
+ 
+ - Free! Integrates with Twitch, OBS, StreamLabs, Zoom, FaceTime etc.
diff --git a/src/pages/guide/stream-bots.md b/src/pages/guide/stream-bots.md
new file mode 100644
index 0000000..871e86b
--- /dev/null
+++ b/src/pages/guide/stream-bots.md
@@ -0,0 +1,101 @@
+---
+title: Stream Bots
+layout: "../../layouts/GuideLayout.astro"
+description: Stream bots for your coworking streams!
+order: 3
+---
+
+# Stream Bots
+
+Useful bots to add to your stream!
+
+---
+
+## Cloud-hosted bots
+
+### [Sery Bot π](https://serycodes.carrd.co/)
+
+
+
+- Easy to setup and customize
+- Interactive through OBS
+
+### Window Capture
+
+#### [Pomofocus π](https://pomofocus.io/)
+
+
+
+- You can also add tasks to do on the web page
+
+---
+
+## Task widgets
+
+A task list widget is a great way to keep track of your tasks along with your chatters!
+
+### [Rython Task Bot π](https://github.com/liyunze-coding/chat-task-tic-overlay-infinity)
+
+
+
+- Free and open source
+- Easy to use, setup and customize
+- Horizontal version available
+- Used by 100+ streamers
+- Handles only one incomplete task per user
+
+### [Multi-task Widget π](https://ko-fi.com/s/94e7e8dc81)
+
+
+
+- $50 USD on ko-fi
+- Easy to use, setup and customize
+- Several versions to choose from:
+ - Original version
+ - Streamer bot version (Windows only, stream to YouTube and Twitch!)
+ - Horizontal version
+
+### [Super Sweet Bot π](https://www.patreon.com/super_sweet_bot)
+
+
+
+- β¬3 / month
+- Comes with a Pomo Timer
+- Colors are customizable
+- Hosted on a cloud server
+
+---
+
+## Music Widgets
+
+Display what you're playing on Spotify or YouTube Music!
+
+### [6K Labs π](https://6klabs.com/)
+
+
+
+- Easy to implement
+- Available for YouTube Music and Spotify
+- Has many design choices and settings:
+ - Dark/Light mode
+ - Tint colour options
+ - Different aesthetic choices:
+ - Compact
+ - macOS
+ - Linux Shell
+ - And many more!
+
+### [Pixel Chat π](https://pixelchat.tv/)
+
+- How to get started with -
-- For coworking & study streamers on Twitch -
-- Click on the navigation icon on the top right to get - started! -
- -
-
-
-
-If you're interested in a task list widget that allows you to add multiple tasks at a time, check out RythonDev's stream and learn more about the multi-task widget here! Note: This widget is behind a paywall.
-
----
-
-## Spotify widget
-
-A Spotify widget is a great way to let your viewers know what you're listening to!
-
-### Browser Source:
-
-6K Labs: A widget that shows what you're playing via Spotify or YouTube music. Many customization options provided for free.
-
-
-
-
-Pixel Chat: An easy-to-implement widget that shows what you're playing via Spotify, Apple Music, etc. Bonus: includes other widgets like one for shout outs, captions, and counters.
-
-
-
-### Software:
-
-Snip: Captures music from iTunes or Spotify and saves the current song as a text and png file that you can add into your streaming software.
-
-
-
----
-
-## Other
-
-You can use Twitch Alerts that can be found in your Twitch Dashboard!
-
-Want to make your own widget? Check out Comfy.JS made by Instafluff!
-
-P.S. It requires some knowledge of Javascript, HTML and CSS
-
----
-
-Once again, thanks to the creators of the Coworking Streamer Cheat Sheet for the reference!
diff --git a/tailwind.config.cjs b/tailwind.config.cjs
index db478e8..98456ee 100644
--- a/tailwind.config.cjs
+++ b/tailwind.config.cjs
@@ -1,41 +1,65 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
- content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"],
- theme: {
- extend: {},
- },
- plugins: [
- function ({ addComponents, theme }) {
- addComponents({
- h1: {
- fontSize: theme("fontSize.3xl"),
- fontWeight: theme("fontWeight.bold"),
- marginBottom: theme("margin.2"),
- },
- h2: {
- fontSize: theme("fontSize.2xl"),
- fontWeight: theme("fontWeight.bold"),
- marginBottom: theme("margin.1"),
- },
- h3: {
- fontSize: theme("fontSize.xl"),
- fontWeight: theme("fontWeight.bold"),
- marginBottom: theme("margin.1"),
- },
- ul: {
- listStyleType: "disc",
- listStylePosition: "inside",
- marginBottom: theme("margin.2"),
- },
- p: {
- marginBottom: theme("margin.6"),
- lineHeight: theme("lineHeight.7"),
- },
- hr: {
- marginTop: theme("margin.6"),
- marginBottom: theme("margin.6"),
- },
- });
- },
- ],
+ content: ["./src/**/*.{astro,html,js,jsx,md,mdx,svelte,ts,tsx,vue}"],
+ theme: {
+ extend: {
+ backgroundImage: (theme) => ({
+ "hero-gradient":
+ "linear-gradient(to right, #3F84D8, aquamarine, #C65BCF)",
+ }),
+ keyframes: {
+ rotate: {
+ "0%": { transform: "rotate(0deg)" },
+ "50%": { scale: "1 1.5" },
+ "100%": { transform: "rotate(360deg)" },
+ },
+ gradient: {
+ "0%": {
+ "background-position": "0% 50%",
+ },
+ "50%": {
+ "background-position": "100% 50%",
+ },
+ "100%": {
+ "background-position": "0% 50%",
+ },
+ },
+ fadeIn: {
+ from: {
+ opacity: "0",
+ },
+ to: {
+ opacity: "1",
+ },
+ },
+ scaleIn: {
+ from: {
+ transform: "scale(0)",
+ },
+ to: {
+ transform: "scale(1)",
+ },
+ },
+ },
+ animation: {
+ "spin-slow": "rotate 15s linear infinite",
+ gradient: "gradient 15s ease infinite",
+ fadeIn: "fadeIn 0.3s ease-in-out forwards",
+ scaleIn: "scaleIn 0.3s ease-in-out forwards",
+ },
+ colors: {
+ "cowo-pink": "#FF7782",
+ secondary: "#171717",
+ primary: "#fafafa",
+ "primary-green": "#88D47D",
+ "primary-blue": "#3F84D8",
+ },
+ },
+ },
+ variants: {
+ extend: {
+ backgroundImage: ["responsive", "hover", "focus", "active"],
+ },
+ },
+ plugins: [],
};
diff --git a/tsconfig.json b/tsconfig.json
index 77da9dd..6d0d384 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -1,3 +1,13 @@
{
- "extends": "astro/tsconfigs/strict"
+ "extends": "astro/tsconfigs/strict",
+ "compilerOptions": {
+ "jsx": "react-jsx",
+ "jsxImportSource": "react",
+ "baseUrl": ".",
+ "paths": {
+ "@/*": [
+ "./src/*"
+ ]
+ }
+ }
}
\ No newline at end of file
diff --git a/utils/cn.ts b/utils/cn.ts
new file mode 100644
index 0000000..242d96f
--- /dev/null
+++ b/utils/cn.ts
@@ -0,0 +1,7 @@
+import type { ClassValue } from "clsx";
+import { clsx } from "clsx";
+import { twMerge } from "tailwind-merge";
+
+export function cn(...inputs: ClassValue[]) {
+ return twMerge(clsx(inputs));
+}