Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/matthieuauger/gatsby-theme-meetup

Create blazing fast meetup sites for your community ⚡️
https://github.com/matthieuauger/gatsby-theme-meetup

Last synced: 11 days ago
JSON representation

Create blazing fast meetup sites for your community ⚡️

Awesome Lists containing this project

README

        


Gatsby



Gatsby Theme Meetup


⚛️ :handshake: :coffee:



Launch your meetup website in minutes :rocket:



Gatsby Theme Meetup is an open source theme based on Gatsby that helps meetup organizers create blazing fast meetup sites to share to their community.




Gatsby Theme Meetup is released under the MIT license.


Current npm package version.

PRs welcome!

Follow @jamstackparis


Demo
·
Quickstart
·
Learn Gatsby
·
About Themes
·

Gatsby Theme Meetup is a simple theme for meetup organizers. Theme features includes

- **Past and futures meetup** fetched from [Meetup](https://www.meetup.com) thanks to [gatsby-source-meetup](https://github.com/phacks/gatsby-source-meetup)

- **Configurable** meetup name, CFP form, videos link and editorial content powered by markdown

- **Translatable texts** for call to action

## :rocket: Get Your Meetup Site Up and Running in 5 Minutes

You can get a new Meetup Gatsby site up and running on your local dev environment in 5 minutes with these four steps:

1. **Create you meetup site directory and bootstrap package.json.**

```shell
mkdir my-awesome-meetup-website
cd my-awesome-meetup-website/
npm init -y
```

1. **Install Gatsby, Gatsby Theme Meetup and its dependencies.**

```sh
npm install react react-dom gatsby @matthieuauger/gatsby-theme-meetup
```

1. **Configure Gatsby to use the Gatsby Theme Meetup**

Open the `my-awesome-meetup-website` directory in your code editor of choice, create a `gatsby-config.js` file at the root with following lines and save your changes

```javascript
module.exports = {
plugins: [
{
resolve: "@matthieuauger/gatsby-theme-meetup"
}
]
};
```

1. **Start the site in `develop` mode.**

```sh
node_modules/.bin/gatsby develop # or install Gatsby CLI globally with npm install -g gatsby-cli
```

At this point, you’ve got a fully functional Meetup website. For now, it fetchs and dislpay content for the JAMstack Paris Meetup.

## :paintbrush: Configure site for your meetup

The theme offers simple configurations directly by modifying the `gatsby-config.js` file in your site directory.

:point_up: **Beware, when updating your gatsby-config.js file, you must stop and start again `gatsby develop` so it can source the new configuration** :point_up:

- **Meetup Name** (_default: JAMstack Paris_)
- **Homepage Headline** (_default: Le meetup bimestriel autour de la JAMstack_)
- **Meetup.com group URL**. You can get it in [the URL of your Meetup](https://www.meetup.com/fr-FR/JAMstack-paris/) (_default: jamstack-paris_)
- **Videos Url** (_by default, redirect to the [JAMstack Paris Youtube Page](https://www.youtube.com/channel/UC66eQOycjMnaqzpbRUhEK2w)_)
- **Talk Proposal Url** (_by default, redirect to the [JAMstack Paris form](https://docs.google.com/forms/d/e/1FAIpQLScYo0W4QAkRHLj0fS_TXZXFuSUJ_cRlmyJCeRTPDQVt9RBNog/viewform)_)

Here is an example of a `gatsby-config.js` configuration for the JAMstack London Meetup.

```javascript
module.exports = {
plugins: [
{
resolve: "@matthieuauger/gatsby-theme-meetup",
options: {
meetupName: "JAMstack London",
meetupHomepageHeadline: "The JAMstack meetup with a cup of tea 🍵",
meetupDotComGroupUrlName: "JAMstack-London",
displayVideosLink: false,
//meetupVideosUrl = 'https://www.youtube.com/channel/UC66eQOycjMnaqzpbRUhEK2w'
talkProposalUrl: "#",
//textBlocksPath: `${__dirname}/src/text-blocks`,
dateFormat: `dddd DD MMMM YYYY`,
translations: {
PROPOSE_A_TALK: "Propose a talk →",
FETCH_VIDEOS: "See videos →",
LAST_MEETUPS: "Last meetups",
ALL_MEETUPS: "All meetups →",
REGISTER_ON_MEETUP: "Register on Meetup →"
},
currentMeetupColor: "#EFCC74",
pastMeetupColors: ["#E6BB91", "#DDDEC4", "#F3DBD1"]
}
}
]
};
```

:point_up: **Beware, when updating your gatsby-config.js file, you must stop and start again `gatsby develop` so it can source the new configuration** :point_up:

## :writing_hand: Personalize Editorial Content

Editorial content consists of three blocks on the website.

1. The main text at the top of the page (usually a description of your Meetup but can be whatever)
![Top text Editorial Content](./assets/editorial-content-what-is-jamstack.png)

1. The main text at the bottom of the page (usually a call to action for talk proposals)
![Bottom text Editorial Content](./assets/editorial-content-submit-a-talk.png)

1. The footer (usually some credits or sponsorship links)
![Bottom text Editorial Content](./assets/editorial-content-footer.png)

These contents are [markdown files](/packages/%40matthieuauger/gatsby-theme-meetup/src/text-blocks) sourced by Gatsby during build time.

To override these:

1. **Create the text-blocks directory in your site which will contain your markdown editorial content.**

```shell
mkdir -p src/text-blocks
```

1. **Copy the [Markdown files](/packages/%40matthieuauger/gatsby-theme-meetup/src/text-blocks) inside your site directory.**

```shell
cp node_modules/@matthieuauger/gatsby-theme-meetup/src/text-blocks/*.md src/text-blocks
```

1. **Add option in the configuration to tell Gatsby to source content from your directory**


```javascript
module.exports = {
plugins: [
{
resolve: "@matthieuauger/gatsby-theme-meetup",
options: {
//
// ... your configuration here
//
textBlocksPath: `${__dirname}/src/text-blocks`,
//
// ... you configuration here
//
}
}
]
};
```

1. **Edit the copied markdown files in your code editor. Beware not to change the _type_ field at the top of the markdown files.**

:point_up: **Beware, when updating your gatsby-config.js file, you must stop and start again `gatsby develop` so it can source the new configuration** :point_up:

## :lipstick: Change Logo

Look at the [Advanced configuration](#ghost-advanced-configuration) section.

## :ghost: Advanced configuration

For more advanced configurations, you can use [Component Shadowing](https://www.gatsbyjs.org/blog/2019-04-29-component-shadowing/).
For example to override the logo.

1. **Create the directory structure in your site which will contain your shadow component.**

```shell
mkdir -p src/@matthieuauger/gatsby-theme-meetup/components/Header
```

1. **Copy the [base Logo component](/packages/%40matthieuauger/gatsby-theme-meetup/src/components/Header/MeetupLogo.component.js) inside your site directory.**

```shell
cp node_modules/@matthieuauger/gatsby-theme-meetup/src/components/Header/MeetupLogo.component.js src/@matthieuauger/gatsby-theme-meetup/components/Header
```

1. **Edit the component and use an image of your choice**

:point_up: **Beware, when shadowing components, you must stop and start again `gatsby develop` so it can load your shadowed components** :point_up:

## :handshake: How to Contribute

Whether you're helping us fix bugs, improve the docs, or spread the word, we'd love to have you as part of the Gatsby community! :muscle::purple_heart:

This repository contains the published package on NPM but also a fully functional development environment with Yarn Workspaces.

Pull the sources, run `yarn install`, `yarn workspace jamstack-london-demo-website gatsby develop` and you're ready to go.

I will read give feedbacks to new Pull Request as fast as possible.

## :memo: License

Licensed under the [MIT License](./LICENSE).