GithubHelp home page GithubHelp logo

2013.cascadiajs.com's Introduction

CascadiaJS Website

Platform and Services

This website is built on Enhance and deploys to Begin.

It currently depends on the following external services:

Enhance Structure

Enhance is an opinionated HTML web framework that renders pages on the server and supports progressive enhancement on the client for SPA-like experiences.

An Enhace app has two top-level directories: app and public.

The app Directory

The app directory contains all the code for our application, in addition to Markdown files that power many of the static webpages.

Disclaimer: Enhance is a new and rapidly changing web framework. We will do our best to keep this README up to date, but please reference the Enhance docs as the source of truth.

Here's a brief rundown of each subdirectory and its purpose:

  • api - controllers for paths in our web app, they generally call APIs and load data, which is passed to the view logic in pages
  • elements - custom elements that render and expand on the server
  • markdown - static Markdown files
  • pages - views (generally in HTML) that, if needed, render data passed from their API controller

The public Directory

This contains static files (images, css, etc).

Enhance makes all of these files available via the special /_public/ path off the root. In addition, this project has turned on fingerprinting, so when you deploy a file to the cloud (i.e. /images/logo.png), its filename is re-written with a unique hash attached (i.e. /images/logo-abc123.png) and when you reference this file in your markup (using just /images/logo.png), Enhance will re-write the response to the client on-the-fly to reference the filename with the attached hash.

App Design

For the most part, file-based routing makes it pretty clear what paths are supported by our app. For instance, the existence of pages/2024/index.mjs tells you that the app supports a /2024 web page.

Pages that require data to render are paired with an identically names JS file in the api directory.

There are two files named $$.mjs that live in the api and pages directories. The dollar sign ($$) functions as a wildcard and catches paths that are not defined by named files. This enables us to render Markdown files from the md directory based on the path requested:

  • /code-of-conduct will render markdown/code-of-conduct.md
  • /2024/cfp will render md/2024/cfp.md

If there is no Markdown file that matches the path, a 404 error will be returned.

Install

  • clone this repo
  • npm i
  • install the Begin CLI, see instructions here

Setup

If you need to run/test the mailing list subscription action (POST /signup) you will need to configure the following environment variables: CIO_SITE_ID, CIO_API_KEY, CIO_APP_KEY

Run dev server

npm start

Generating social sharing images for speakers and other web pages

You'll need to install puppeteer globally first:

PUPPETEER_EXPERIMENTAL_CHROMIUM_MAC_ARM=true npm i puppeteer -g

Then link it so that you can run the script

npm link puppeteer

Making contributions

If you would like to make a contribution, please fork this repo and send us a pull request.

2013.cascadiajs.com's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

2013.cascadiajs.com's Issues

Vancouver Locals Guide needed

As a first time visitor to Vancouver, I need advice from the locals on where to eat and what to see!

  • If your mom was in town for just two days to see all the sights, where would you take her?
  • If your cool friend was in town for the weekend, what would you recommend for eats?

Something along the lines of http://sassconf.com/pages/nyc-primer/ would be awesome. Thanks!

Getting more women involved in the open call for speaker (CFS)

As a husband to an amazing wife and a father to two beautiful daughters, I am very invested in getting more women involved in the developer community, both online and offline. This is sometimes considered the "third rail" of developer community discourse, and I am not trying to make any broad statements or offer any broad solutions.

I am, however, the curator for this conference. I care deeply about the talks that are going to be given. They are the single most important reason that people attend a conference, and the curation of these talks are the single biggest way that I can add value, or subtract it if I do a poor job.

I believe that in order to maximize the odds of finding 20 amazing talks, I should cast as wide a net as possible and get as many different perspectives possible. Some of the best talks I've seen as an attendee have come from people who were "unknown" to the broader developer community. Some of the worst were from "celebs".

I also know, based on the data in this repo, that the overwhelming majority of the existing proposals are by men. I feel that this is not an accurate reflection of the available pool of female developers who might be interested in giving a talk at CascadiaJS. Therefore I feel like there is a communications failure: I have not worked hard enough to reach women who code via the channels that they are on.

Some people might think that by tweeting at @WomenWhoCode, I am displaying a preference for female speakers or that I would compromise our selection process to favor proposals from women. This is not the case. Our selection process is completely identity-blind (name, gender, etc) and focuses purely on the abstract submitted.

Thanks for reading this far, I'm eager to hear what people think of this. And please help us spread the word about the CFS for CascadiaJS 2013, it closes on 8/15!

A better way to allocate tickets?

The sole purpose of any conference is to match the right speakers with the right attendees. That is when magic happens and communities truly grow and become stronger.

However, there is an issue when demand for a conference outstrips supply of tickets. CascadiaJS (like many JSConf conferences) strives to create a deliberately intimate environment for its attendees and speakers. This means smaller venues and fewer tickets.

Our current solution is to sell multiple batches of tickets during documented windows of time. The earlier you buy a ticket (before speakers and other details are announced) the cheaper they are. If you're not on your computer, attempting to buy a ticket during the prescribed window, they will likely be sold out by the time you show up. This is our attempt to allocate tickets to those that care the most about attending. We are using "attention" (attention to email, attention to Twitter, setting reminders, etc) as a proxy for desire to attend the conference.

But perhaps there is a better way. Some have suggested a lottery would be more fair. What do you think?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.