Virtualcoffee.io Save

Public site for Virtual Coffee

Project README
Netlify Status

All Contributors

Virtual Coffee

Virtual Coffee is a laid-back conversation with developers twice a week. It's the conversation that keeps going in slack. It's the online events that support developers at all stages of the journey. It's the place where you go to make friends who all just happen to be in tech.

Anyone can join! Whether you're just thinking about getting into tech or have been in it for decades.

We know that growth comes at all levels and that no matter what stage of the journey you're on, you can teach and learn.

So come with a question or a topic to discuss, ask for feedback on your portfolio, answer another developer's question, or just sit back and listen to others talk about tech.

Our mission is to form community, allow room for growth and mentorship at all levels, and to provide a safe space for everyone interested in tech.

Please take a moment to read our Code of Conduct.

See you there!

Working on the site:

Table of Contents:

Local Development Setup

Steps to run the site locally for development or curiosity

1. Fork and clone the repository

Follow these steps to create a fork of this repository and clone it to your local machine.

2. Navigate to the repo directory

If you have just run git clone ... , the next step would be to move into the cloned repo:

cd virtualcoffee.io

3. Install dependencies

This repo requires node, pnpm, and the Netlify CLI to get started.

Installing node:

The best way to install node is to download the installer from their site. This repo requires node version 18.16, which is the latest LTS version.

If you already have a different version of node installed, but don't want to update globally, you can install a package called nvm, which will allow you to easily switch node versions. Once you have nvm installed (or if you already have it installed), you can run nvm use in the main directory and it will install the proper version of node.

Installing pnpm:

pnpm is a package manager that is used to install the rest of our dependencies.

Read more about pnpm on their docs site.

The best way to install pnpm for this project is by using Corepack, a new feature bundled with Node.

Install pnpm via corepack with the following commands:

corepack enable
corepack prepare

Setting up your .env

Use the following command to create a local .env file. Then open the new file (.env) and adjust any settings that are needed.

cp .env.example .env

Installing package dependencies

Once you have node, pnpm, and the Netlify CLI installed, you're ready to install the local dependencies! Run the following command:

pnpm install

At this point you're ready to roll! Run the following command to get rolling!

pnpm dev

Read more about what pnpm dev does in the following section.

Commands

The following commands are available for your use. Most of the time you'll only ever need pnpm dev.

pnpm dev

pnpm dev

This is the only command you need to do normal local development.

Starts a local server and watches your source files for changes. Use this to preview local development.

Once you run this command, a local server is running at http://localhost:9000! Any changes you make to the src folder should also re-build the site and re-load your browser.

You should see something like 'Server now ready on http://localhost:9000' below, which means the watcher is waiting to build your awesome changes!

Use ctrl-c to quit the server when you're done.


Note:

Depending on the speed of your computer, you can get a TimeoutError - Task timed out after 10.00 seconds message when the localhost renders the home page (http://localhost:9000) on the browser.

If the feature you are working on is not on the home page (the newsletter or monthly challenges page, for example), you may still be able to load the page you need. After you see the notification of Server now ready on http://localhost:9000, go to your browser. Then add the path of the page you need (like http://localhost:9000/newsletter for the newsletter or http://localhost:9000/monthlychallenges for the monthly challenges page) to see the page.


pnpm dev actually runs three sub commands, which can be run independently if you wish:

  • pnpm dev:sass - compiles sass styles found in ./styles. When in dev mode will re-run when a file is changed. The files are compiled to the ./tmp directory to be processed by the next step.
  • pnpm dev:css - processes css files using PostCSS. The resulting files are saved in ./app/styles
  • pnpm dev:remix - starts up the local Netlify dev environment and starts the Remix server.

pnpm build

pnpm build

Builds a production-ready version of the site. This is what Netlify uses to build our site.

pnpm build actually runs three sub commands, which can be run independently if you wish:

  • pnpm build:sass - compiles sass styles found in ./styles. The files are compiled to the ./tmp directory to be processed by the next step.
  • pnpm build:css - processes css files using PostCSS. The resulting files are saved in ./app/styles
  • pnpm build:remix - compiles everything needed to run the site for production.

pnpm format

pnpm format

Runs Prettier on all of our files. This happens automatically via husky and lint-staged, so there's usually no need to run this manually.

pnpm lint

pnpm lint

Runs ESLint on all of our files, so you can check for errors or warnings. This happens automatically at build time.

Loading data

A lot of the data loaded on the site is from APIs that require private keys or tokens. Unfortunately we can't publish these or distribute them too widely.

All of the data points have mock data that is used if the required API key isn't present, so contributors should be able to make UX-related changes without needing them.

If you'd like to work on a feature that requires an API key, please reach out to a maintainer and we can probably get that going.

Adding content

Resources

Our VC Resources are created using MDX. MDX is basically a combination of Markdown and React.

Any files added to app/routes/__frontend/resources will be automatically loaded and added to the appropriate index page.

A good way to start adding a new page would be to copy one of the existing pages, then edit the details and content.

Newsletters

The newsletters (for now) are simply jsx files, and can be found in app/routes/__frontend/newsletter/issues.

When you add a new issue, make sure to add it to the index. Here's how:

  • Open app/data/newsletters.js
  • import the new issue
  • Add the new issue to the newsletters array.

So, if you have created app/routes/__frontend/newsletter/issues/2022-03.jsx:

+ import { handle as issue202203 } from '~/routes/__frontend/newsletter/issues/2022-03';
import { handle as issue202202 } from '~/routes/__frontend/newsletter/issues/2022-02';
import { handle as issue202201 } from '~/routes/__frontend/newsletter/issues/2022-01';

const newsletters = [
+ 	{ handleData: issue202203, slug: '2022-03' },
	{ handleData: issue202202, slug: '2022-02' },
	{ handleData: issue202201, slug: '2022-01' },
];

Monthly Challenges

Every month, our monthly challenge page will need to move the current challenge to the main portion of the list, and add the new challenge to the current challenge section.

To make the updates, go to app/routes/__frontend/monthlychallenges/index.tsx

Contributors ✨

Thanks goes to these wonderful people (emoji key):

Aaron Pedwell
Aaron Pedwell

πŸ–‹
Abbey Perini
Abbey Perini

πŸ–‹
Adam Abundis
Adam Abundis

πŸ–‹
Ahmed Mohammed
Ahmed Mohammed

πŸ–‹
Aimee Wildstone
Aimee Wildstone

πŸ–‹
Aishat Ajose
Aishat Ajose

πŸ–‹
Aishe Ibrahim
Aishe Ibrahim

πŸ–‹
Aishwarya Mali
Aishwarya Mali

πŸ–‹
Alex Covone
Alex Covone

πŸ–‹
Alex Curtis-Slep
Alex Curtis-Slep

πŸ–‹
Alexander Batenhorst
Alexander Batenhorst

πŸ–‹
Alia Quintero
Alia Quintero

πŸ–‹
Amy Shackles
Amy Shackles

πŸ–‹
Andrea Martz
Andrea Martz

πŸ–‹
Andrew Bush
Andrew Bush

πŸ–‹
Andrew Goldstein
Andrew Goldstein

πŸ–‹
Angie Rodriguez
Angie Rodriguez

πŸ–‹
Anna Kim
Anna Kim

πŸ–‹
Anshuman Sathua
Anshuman Sathua

πŸ–‹
Anthony Beckford
Anthony Beckford

πŸ–‹
Arthur Doler
Arthur Doler

πŸ–‹
Arvin Fernandez
Arvin Fernandez

πŸ–‹
Aurelie Fomum
Aurelie Fomum

πŸ–‹
Aurelie Verrot
Aurelie Verrot

πŸ–‹
Aurelie Verrot
Aurelie Verrot

πŸ–‹
Avinash Upadhyaya K R
Avinash Upadhyaya K R

πŸ–‹
Ayu Adiati
Ayu Adiati

πŸ–‹ πŸ›
Ayush Chaudhary
Ayush Chaudhary

πŸ–‹
Barbara
Barbara

πŸ–‹
BekahHW
BekahHW

πŸ–‹
Bogdan Covrig
Bogdan Covrig

πŸ–‹ πŸ›
Brandon Brown
Brandon Brown

πŸ–‹ πŸ›
Brandon Everett
Brandon Everett

πŸ–‹
Brenna Hettler
Brenna Hettler

πŸ–‹
Brian Meeker
Brian Meeker

πŸ–‹
Bryan Healey
Bryan Healey

πŸ–‹
C0deR4t
C0deR4t

πŸ–‹
Caitlin Floyd
Caitlin Floyd

πŸ–‹
Carmen
Carmen

πŸ–‹
Cassidy Mountjoy
Cassidy Mountjoy

πŸ–‹
Chad Rhonan Stewart
Chad Rhonan Stewart

πŸ–‹
Chelsea Avery
Chelsea Avery

πŸ–‹
Chris Jarvis
Chris Jarvis

πŸ–‹
Christina Loiacono
Christina Loiacono

πŸ–‹
Christine Belzie
Christine Belzie

πŸ’» πŸ”§
Christopher Jin
Christopher Jin

πŸ–‹
Christopher Johnston
Christopher Johnston

πŸ–‹
Chuck
Chuck

πŸ–‹
Colleen
Colleen

πŸ–‹
Courtney Landau
Courtney Landau

πŸ–‹
Crime
Crime

πŸ–‹
Crislana Rafael
Crislana Rafael

πŸ–‹
Cristien Natal
Cristien Natal

πŸ–‹
Damon Holden
Damon Holden

πŸ–‹
Dan Ott
Dan Ott

πŸ› ️️️️♿️
Dana Ottaviani
Dana Ottaviani

πŸ–‹
Daniel
Daniel

πŸ–‹
Daniel Anderson
Daniel Anderson

πŸ–‹
Daniel Cobo
Daniel Cobo

πŸ–‹
Dapo Adedire
Dapo Adedire

πŸ–‹
David
David

πŸ–‹
David Akim
David Akim

πŸ–‹
David Alpert
David Alpert

πŸ–‹
David Rodriguez
David Rodriguez

πŸ–‹
Debra-Kaye Elliott
Debra-Kaye Elliott

πŸ–‹
Dominic Duffin
Dominic Duffin

πŸ–‹ πŸ›
Ebony Louis
Ebony Louis

πŸ–‹
Enrique Hilst
Enrique Hilst

πŸ–‹
Eva Grace Smith
Eva Grace Smith

πŸ–‹
Fatima Olasunkanmi-Ojo
Fatima Olasunkanmi-Ojo

πŸ–‹
Gant Laborde
Gant Laborde

πŸ–‹
Gervanna Stephens
Gervanna Stephens

πŸ–‹
Glen McCallum
Glen McCallum

πŸ–‹
HDreikorn
HDreikorn

πŸ–‹
Habeeb Kareem
Habeeb Kareem

πŸ–‹
Imani Roberts
Imani Roberts

πŸ–‹
Jamaal Brown
Jamaal Brown

πŸ–‹
James Curran
James Curran

πŸ–‹
Jasmine
Jasmine

πŸ–‹
Jason Evans
Jason Evans

πŸ–‹
Jay Knowles
Jay Knowles

πŸ–‹
Jen Kennedy
Jen Kennedy

πŸ–‹
Jennifer
Jennifer

πŸ–‹
Jesse R Weigel
Jesse R Weigel

πŸ–‹
Jessica Wilkins
Jessica Wilkins

πŸ–‹
Joe Karow
Joe Karow

πŸ–‹ πŸ›
Joern Bernhardt
Joern Bernhardt

πŸ–‹
John Escamilla
John Escamilla

πŸ–‹
Jonathan Yeong
Jonathan Yeong

πŸ–‹
Joshua Shanks
Joshua Shanks

πŸ–‹
Julia Seidman
Julia Seidman

πŸ–‹
Justin Hager
Justin Hager

πŸ–‹
Justin Noel
Justin Noel

πŸ–‹
Justin Quinn
Justin Quinn

πŸ–‹
Justin Wheeler
Justin Wheeler

πŸ–‹
Kai Katschthaler (they/them)
Kai Katschthaler (they/them)

πŸ–‹
Kamal
Kamal

πŸ–‹
Karen Dickenson
Karen Dickenson

πŸ–‹
Kirk Shillingford
Kirk Shillingford

πŸ–‹
Klesta
Klesta

πŸ–‹
Konstantinos Bazoukis
Konstantinos Bazoukis

πŸ–‹
Laura Langdon
Laura Langdon

πŸ–‹
Laura OBrien
Laura OBrien

πŸ–‹
Lauren Perini
Lauren Perini

πŸ–‹
Lennox Gilbert
Lennox Gilbert

πŸ–‹
Leo
Leo

πŸ–‹
Lewis Sparlin
Lewis Sparlin

πŸ–‹
Logan McCamon
Logan McCamon

πŸ–‹
Lohit Yarra
Lohit Yarra

πŸ–‹
Lora Rusinouskaya
Lora Rusinouskaya

πŸ–‹
Lucia Cerchie
Lucia Cerchie

πŸ–‹
Luis Sanchez
Luis Sanchez

πŸ–‹
Madeline H
Madeline H

πŸ–‹
Marie
Marie

πŸ–‹
Mary Lueder
Mary Lueder

πŸ–‹
Matt McInnis (he/him)
Matt McInnis (he/him)

πŸ–‹ πŸ›
Matt Wang
Matt Wang

πŸ–‹ πŸ›
MattCurcio
MattCurcio

πŸ–‹
Matthew
Matthew

πŸ–‹
Matthew Dean
Matthew Dean

πŸ–‹
Maylene Poulsen
Maylene Poulsen

πŸ–‹
Meg Gutshall
Meg Gutshall

πŸ–‹
Michael Honey-Arcement
Michael Honey-Arcement

πŸ–‹
Michael Jolley
Michael Jolley

πŸ–‹
Mike Rogers
Mike Rogers

πŸ–‹
Mike Street
Mike Street

πŸ–‹
Mohsin
Mohsin

πŸ–‹
Morris Anthony
Morris Anthony

πŸ–‹
Nath Duncan
Nath Duncan

πŸ–‹
Neil Italia
Neil Italia

πŸ–‹
Nerando Johnson
Nerando Johnson

πŸ–‹
Nick Taylor
Nick Taylor

πŸ–‹
Nicole Lee
Nicole Lee

πŸ–‹
Nikkhiel Seath
Nikkhiel Seath

πŸ–‹
Niklas Siefke
Niklas Siefke

πŸ–‹
Niko HoffrΓ©n
Niko HoffrΓ©n

πŸ–‹
Nora Fergany
Nora Fergany

πŸ–‹
Oteri Eyenike
Oteri Eyenike

πŸ–‹
Paceaux
Paceaux

πŸ–‹
Patricio Huerta
Patricio Huerta

πŸ–‹
Piotrek
Piotrek

πŸ–‹
Rad Turkin
Rad Turkin

πŸ–‹
Raeshelle Rose
Raeshelle Rose

πŸ–‹
Rahat Chowdhury
Rahat Chowdhury

πŸ–‹
RamΓ³n Huidobro
RamΓ³n Huidobro

πŸ–‹
Ray Deck
Ray Deck

πŸ–‹
Raynald Mirville
Raynald Mirville

πŸ–‹
Raynaldo Sutisna
Raynaldo Sutisna

πŸ–‹
Rebecca Key
Rebecca Key

πŸ–‹
Reda Baha
Reda Baha

πŸ–‹ πŸ›
Regina Robinson
Regina Robinson

πŸ–‹
Rishabh Singh
Rishabh Singh

πŸ–‹
Roger Gentry
Roger Gentry

πŸ–‹
Ruta R
Ruta R

πŸ–‹
Ryan Kahn
Ryan Kahn

πŸ–‹
Sadie
Sadie

πŸ–‹
Safety Vest 2789
Safety Vest 2789

πŸ–‹
Satoshi S.
Satoshi S.

πŸ–‹
Seth Hall
Seth Hall

πŸ–‹
Shannan Bunch
Shannan Bunch

πŸ–‹
Shannon
Shannon

πŸ–‹
Shelley McHardy
Shelley McHardy

πŸ–‹
Shraddha
Shraddha

πŸ–‹
Simon Prickett
Simon Prickett

πŸ–‹
Simon Robinson
Simon Robinson

πŸ–‹
Spike Vinz Cruz
Spike Vinz Cruz

πŸ–‹
Stephen Blais
Stephen Blais

πŸ–‹
Steve Carroll
Steve Carroll

πŸ–‹
Suchitra Giri
Suchitra Giri

πŸ–‹
Sumit Kharche
Sumit Kharche

πŸ–‹
SuperRoach
SuperRoach

πŸ–‹
Suraj Panchal
Suraj Panchal

πŸ–‹
Suze Shardlow
Suze Shardlow

πŸ–‹
Tami Hughes
Tami Hughes

πŸ–‹
Tammy Miller
Tammy Miller

πŸ–‹
Taryn McMillan
Taryn McMillan

πŸ–‹
Tiffany Pena
Tiffany Pena

πŸ–‹
Tiffany U
Tiffany U

πŸ–‹
Todd Libby
Todd Libby

πŸ–‹ ️️️️♿️
Tom Bousquet
Tom Bousquet

πŸ–‹
Tom Cudd
Tom Cudd

πŸ–‹
Tori Crawford
Tori Crawford

πŸ–‹
Travis Martin
Travis Martin

πŸ–‹
Typing Turtle
Typing Turtle

πŸ–‹
Vanessa
Vanessa

πŸ–‹
Vic Vijayakumar
Vic Vijayakumar

πŸ–‹
Vince Aggrippino
Vince Aggrippino

πŸ–‹
Vitaly Kovalev
Vitaly Kovalev

πŸ–‹
Yolanda Haynes
Yolanda Haynes

πŸ–‹
Yufa
Yufa

πŸ–‹
Yusuf Taiwo Hassan
Yusuf Taiwo Hassan

πŸ–‹
secondl1ght
secondl1ght

πŸ–‹
Álvaro SÑnchez Taboada
Álvaro SÑnchez Taboada

πŸ–‹
Add your contributions

This project follows the all-contributors specification. Contributions of any kind welcome!

Open Source Agenda is not affiliated with "Virtualcoffee.io" Project. README Source: Virtual-Coffee/virtualcoffee.io

Open Source Agenda Badge

Open Source Agenda Rating