generated from inherentlee/11ty
Compare commits
25
Commits
ea48b89f92
..
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
56963da02c | ||
|
|
bbc88efe34 | ||
|
|
a8719799f9 | ||
|
|
a77cabf9f1 | ||
|
|
d706703dd1 | ||
|
|
d6d52e8bef | ||
|
|
67908bcd0a | ||
|
|
1b41d37b26 | ||
|
|
b0d68de18f | ||
|
|
a913d145b1 | ||
|
|
85788ca8e9 | ||
|
|
0a517c7fc6 | ||
|
|
850ef1c270 | ||
|
|
eba8241ed7 | ||
|
|
8bcea43bbf | ||
|
|
6cd8a7c884 | ||
|
|
b2bba0a459 | ||
|
|
0e1ca62428 | ||
|
|
24a3125b6b | ||
|
|
827e94efd1 | ||
|
|
e247babe70 | ||
|
|
c9709de658 | ||
|
|
fc4160c507 | ||
|
|
b6f4979a59 | ||
|
|
0e5a04be82 |
+25
@@ -0,0 +1,25 @@
|
|||||||
|
kind: pipeline
|
||||||
|
type: docker
|
||||||
|
name: default
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: build
|
||||||
|
image: node:current
|
||||||
|
environment:
|
||||||
|
REPOSITORY: district-dharma-site
|
||||||
|
GIT_USER: inherentlee
|
||||||
|
GIT_TOKEN:
|
||||||
|
from_secret: GIT_TOKEN
|
||||||
|
commands:
|
||||||
|
- git config credential.helper '!f() { echo username=$GIT_USER; echo "password=$GIT_TOKEN"; };f'
|
||||||
|
- git submodule update --remote --init --merge
|
||||||
|
- npm install
|
||||||
|
- npm run build
|
||||||
|
- apt-get update && apt-get install -y rsync
|
||||||
|
- rsync -uavh _site/ $REPOSITORY --delete --exclude .git
|
||||||
|
- cd $REPOSITORY
|
||||||
|
- git checkout main
|
||||||
|
- git config --global --add safe.directory /drone/src/$REPOSITORY
|
||||||
|
- git add -A
|
||||||
|
- git commit -m "drone build $(TZ=':America/Los_Angeles' date)"
|
||||||
|
- git push
|
||||||
@@ -0,0 +1,3 @@
|
|||||||
|
[submodule "district-dharma-site"]
|
||||||
|
path = district-dharma-site
|
||||||
|
url = https://heckin.technology/inherentlee/district-dharma-site.git
|
||||||
@@ -12,6 +12,16 @@
|
|||||||
},
|
},
|
||||||
"protected": true
|
"protected": true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"icon": "error",
|
||||||
|
"label": "Help",
|
||||||
|
"target": {
|
||||||
|
"name": "Project.Documentation",
|
||||||
|
"params": {
|
||||||
|
"path": "/README.md"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"icon": "document-stack",
|
"icon": "document-stack",
|
||||||
"label": "Pages",
|
"label": "Pages",
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
{
|
|
||||||
"alt": "A chickadee on a fence post.",
|
|
||||||
"title": null
|
|
||||||
}
|
|
||||||
@@ -30,32 +30,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"type": "image",
|
|
||||||
"default": null,
|
|
||||||
"icon": "image",
|
|
||||||
"key": "hero",
|
|
||||||
"label": "Hero image",
|
|
||||||
"options": {
|
|
||||||
"resolutionHint": "1800",
|
|
||||||
"removable": true,
|
|
||||||
"simple": false
|
|
||||||
},
|
|
||||||
"tab": "Page data",
|
|
||||||
"validation": {
|
|
||||||
"max": null,
|
|
||||||
"required": false,
|
|
||||||
"unit": "filesize (MB)"
|
|
||||||
},
|
|
||||||
"value": null,
|
|
||||||
"version": 1,
|
|
||||||
"visibility": {
|
|
||||||
"hidden": false,
|
|
||||||
"showByValue": {
|
|
||||||
"field": null
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"type": "rich text",
|
"type": "rich text",
|
||||||
"default": null,
|
"default": null,
|
||||||
|
|||||||
@@ -1,96 +1,40 @@
|
|||||||
# 11ty Template
|
# District Dharma
|
||||||
|
|
||||||
Template repository for my 11ty projects.
|
Home page for District Dharma based out of DC.
|
||||||
|
|
||||||
## full drone/submodule setup from scratch
|
## Prerequisites
|
||||||
|
|
||||||
### 1. create repo
|
1. **Heckin' Tech Gitea Personal Access Token (PAT)**
|
||||||
|
1. Click on your user in the upper right and choose "Settings" from the dropdown
|
||||||
|
1. Go to "Applications" in the left-hand settings menu
|
||||||
|
1. Choose "Generate new token"
|
||||||
|
- Token name is up to you
|
||||||
|
- Token access should be public only
|
||||||
|
- Token permissions should be read & write on repositories
|
||||||
|
1. **Save your token somewhere secure. If lost, you must generate a new token**
|
||||||
|
1. **Repository access:** Lee will grant contributor permissions. Repository URL is [heckin.technology/inherentlee/district-dharma](https://heckin.technology/inherentlee/district-dharma)
|
||||||
|
|
||||||
in heckin gitea, create destination repo.
|
## Managing content
|
||||||
|
|
||||||
### 2. add dronefile to source repo
|
### Content management system
|
||||||
|
|
||||||
Filename: `.drone.yml`, in root of repo. Note the `<vars>` to replace.
|
Your content management system is Mattrbld. Mattrbld can be found at [mattrbld.com](mattrbld.com). The first time you access it (or access in a new browser, on a new machine, or with cookies wiped), you will need to give it the repository URL above and set up a user name. Feel free to just set your full name (spaces are ok). This will label your "commits" (changes) to the repository as you.
|
||||||
|
|
||||||
```yaml
|
### Checking for changes
|
||||||
kind: pipeline
|
|
||||||
type: docker
|
|
||||||
name: default
|
|
||||||
|
|
||||||
steps:
|
It's unlikely there will be conflicts between changes I make and changes you would like to make. However, it's never a bad idea to go to the "Dashboard" tab and choose to check for updates.
|
||||||
- name: build
|
|
||||||
image: node:current
|
|
||||||
environment:
|
|
||||||
REPOSITORY: <dest-repo>
|
|
||||||
GIT_USER: <username>
|
|
||||||
GIT_TOKEN:
|
|
||||||
from_secret: GIT_TOKEN
|
|
||||||
commands:
|
|
||||||
- git config credential.helper '!f() { echo username=$GIT_USER; echo "password=$GIT_TOKEN"; };f'
|
|
||||||
- git submodule update --remote --init --merge
|
|
||||||
- npm install
|
|
||||||
- npm run build
|
|
||||||
- apt-get update && apt-get install -y rsync
|
|
||||||
- rsync -uavh _site/ $REPOSITORY --delete --exclude .git
|
|
||||||
- cd $REPOSITORY
|
|
||||||
- git checkout main
|
|
||||||
- git config --global --add safe.directory /drone/src/$REPOSITORY
|
|
||||||
- git add -A
|
|
||||||
- git commit -m "drone build $(TZ=':America/Los_Angeles' date)"
|
|
||||||
- git push
|
|
||||||
```
|
|
||||||
|
|
||||||
### 3. create PAT
|
### Making changes
|
||||||
|
|
||||||
in heckin, go to settings > applications, and create a PAT with read & write permissions to repositories.
|
All changes will be in the "Pages" tab. There are two pages:
|
||||||
|
|
||||||
### 4. activate project in drone and add PAT
|
- **attribution:** This page has a brief site creator attribution, mentions the site generator, credits the fonts used, and reports that no generative AI was used in creating the site. It is unlikely you will need to edit this page.
|
||||||
|
- **index:** This page includes the body content for the home page of District Dharma. Note that it does *not* include the contact form at the bottom, which cannot be created via Mattrbld and is done on the backend. For form changes, contact me.
|
||||||
|
|
||||||
in drone, find your project and activate it.
|
### Saving changes
|
||||||
|
|
||||||
in the settings, I chose to disable pull requests and forks. I set my runner timeout to 15m.
|
To save your changes and see them reflected in the live site, you will navigate to the "Dashboard" tab and sync your changes. Here you will need to enter the email you use for the Heckin' Tech Gitea as well as the generated PAT. If you receive any non-transient errors, feel free to reach out to me.
|
||||||
|
|
||||||
you can set your PAT either as a project secret or an organization secret. In either case call it `GIT_TOKEN`.
|
## Contact
|
||||||
|
|
||||||
### 5. first commit to submodule
|
If for any reason you are having trouble finding me, all my contact information can be found at [leecat.art/contact](https://leecat.art/contact).
|
||||||
|
|
||||||
assuming we are committing the _site folder...
|
|
||||||
|
|
||||||
```sh
|
|
||||||
cp -r _site ../temp
|
|
||||||
cd ../temp
|
|
||||||
|
|
||||||
git init
|
|
||||||
git add -A
|
|
||||||
git commit -m "first"
|
|
||||||
|
|
||||||
git remote add origin <remote-url>
|
|
||||||
git push -u origin main
|
|
||||||
```
|
|
||||||
|
|
||||||
### 6. add submodule to local repo
|
|
||||||
|
|
||||||
in root dir of local repo, add the submodule.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
git submodule add <remote-url>
|
|
||||||
```
|
|
||||||
|
|
||||||
if you used the SSH url, set it to the HTTPS url.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
git submodule set-url <dest-repo> <remote-url-https>
|
|
||||||
git add .gitmodules # the changes from submodule add are auto-staged, this config change isn't
|
|
||||||
```
|
|
||||||
|
|
||||||
commit your changes and push.
|
|
||||||
|
|
||||||
```sh
|
|
||||||
git commit -m "add submodule"
|
|
||||||
```
|
|
||||||
|
|
||||||
(commit your dronefile changes too.)
|
|
||||||
|
|
||||||
### 7. profit
|
|
||||||
|
|
||||||
if it doesn't work, cry
|
|
||||||
|
|||||||
@@ -1,3 +1,4 @@
|
|||||||
<footer>
|
<footer>
|
||||||
|
<p>© 2026</p>
|
||||||
<p><a href="/attribution/">site attribution</a></p>
|
<p><a href="/attribution/">site attribution</a></p>
|
||||||
</footer>
|
</footer>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ layout: page.njk
|
|||||||
{{ content | safe }}
|
{{ content | safe }}
|
||||||
|
|
||||||
<form action="https://formgrid.dev/api/f/842wiwnz" method="POST" class="contact-form">
|
<form action="https://formgrid.dev/api/f/842wiwnz" method="POST" class="contact-form">
|
||||||
<h2 class="center">Contact Us</h2>
|
<h2 class="center">Get in touch</h2>
|
||||||
<p class="center">All fields
|
<p class="center">All fields
|
||||||
<span aria-hidden="true">marked with an asterisk (<span class="red">*</span>)</span>
|
<span aria-hidden="true">marked with an asterisk (<span class="red">*</span>)</span>
|
||||||
are required.</p>
|
are required.</p>
|
||||||
@@ -16,14 +16,14 @@ layout: page.njk
|
|||||||
<label for="name">Name <span class="red" aria-hidden="true">*</span></label>
|
<label for="name">Name <span class="red" aria-hidden="true">*</span></label>
|
||||||
<input id="name" type="text" name="name" placeholder="Your Name"
|
<input id="name" type="text" name="name" placeholder="Your Name"
|
||||||
required aria-required="true" aria-describedby="name-error">
|
required aria-required="true" aria-describedby="name-error">
|
||||||
<p id="name-error" class="error">Name cannot be empty</p>
|
<p id="name-error" class="error">Name cannot be empty.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="form-field">
|
<div class="form-field">
|
||||||
<label for="email">Email <span class="red" aria-hidden="true">*</span></label>
|
<label for="email">Email <span class="red" aria-hidden="true">*</span></label>
|
||||||
<input id="email" type="email" name="email" placeholder="you@example.com"
|
<input id="email" type="email" name="email" placeholder="you@example.com"
|
||||||
required aria-required="true" aria-describedby="email-error">
|
required aria-required="true" aria-describedby="email-error">
|
||||||
<p id="email-error" class="error">Email cannot be empty</p>
|
<p id="email-error" class="error">Email cannot be empty and must be a valid email.</p>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
@@ -31,7 +31,7 @@ layout: page.njk
|
|||||||
<label for="message">Message <span class="red" aria-hidden="true">*</span></label>
|
<label for="message">Message <span class="red" aria-hidden="true">*</span></label>
|
||||||
<textarea id="message" name="message" rows="4" placeholder="What's your message?"
|
<textarea id="message" name="message" rows="4" placeholder="What's your message?"
|
||||||
required aria-required="true" aria-describedby="message-error"></textarea>
|
required aria-required="true" aria-describedby="message-error"></textarea>
|
||||||
<p id="message-error" class="error">Message cannot be empty</p>
|
<p id="message-error" class="error">Message cannot be empty.</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<button type="submit" class="form-button">Send message</button>
|
<button type="submit" class="form-button">Send message</button>
|
||||||
|
|||||||
@@ -1,11 +1,6 @@
|
|||||||
---
|
---
|
||||||
layout: base.njk
|
layout: base.njk
|
||||||
---
|
---
|
||||||
|
|
||||||
{% if hero %}
|
|
||||||
<img id="hero" src="{{ hero.src }}" alt="{{ hero.alt }}">
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
<div id="content">
|
<div id="content">
|
||||||
<h1>{{ title }}</h1>
|
<h1>{{ title }}</h1>
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,13 @@ form button {
|
|||||||
margin: 1rem auto;
|
margin: 1rem auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@media (any-hover: hover) {
|
||||||
|
form button:hover {
|
||||||
|
background-color: var(--color-accent);
|
||||||
|
color: var(--color-bg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.name-email {
|
.name-email {
|
||||||
display: grid;
|
display: grid;
|
||||||
grid-template-columns: repeat(2, 1fr);
|
grid-template-columns: repeat(2, 1fr);
|
||||||
|
|||||||
+30
-8
@@ -11,6 +11,7 @@
|
|||||||
--color-text: light-dark(var(--color-dark), var(--color-light));
|
--color-text: light-dark(var(--color-dark), var(--color-light));
|
||||||
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
--color-bg: light-dark(var(--color-light), var(--color-dark));
|
||||||
--color-accent: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
--color-accent: light-dark(var(--color-blue-dark), var(--color-blue-light));
|
||||||
|
--color-accent-flipped: light-dark(var(--color-blue-light), var(--color-blue-dark));
|
||||||
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
--color-red: light-dark(var(--color-red-dark), var(--color-red-light));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -27,6 +28,12 @@
|
|||||||
margin: 0; /* 2. Remove default margins */
|
margin: 0; /* 2. Remove default margins */
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*:focus-visible {
|
||||||
|
outline-offset: .12rem;
|
||||||
|
outline: .12rem solid var(--color-accent);
|
||||||
|
border-radius: .25rem;
|
||||||
|
}
|
||||||
|
|
||||||
html {
|
html {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
}
|
}
|
||||||
@@ -92,6 +99,7 @@ h1, h2, h3, h4, h5, h6 {
|
|||||||
font-variant: small-caps;
|
font-variant: small-caps;
|
||||||
font-family: Montserrat;
|
font-family: Montserrat;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
|
letter-spacing: 5%;
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
@@ -111,6 +119,7 @@ p {
|
|||||||
a {
|
a {
|
||||||
color: var(--color-accent);
|
color: var(--color-accent);
|
||||||
text-decoration-thickness: .15rem;
|
text-decoration-thickness: .15rem;
|
||||||
|
transition: text-decoration-thickness .5s;
|
||||||
}
|
}
|
||||||
|
|
||||||
a:visited {
|
a:visited {
|
||||||
@@ -118,21 +127,34 @@ a:visited {
|
|||||||
text-decoration-color: var(--color-accent);
|
text-decoration-color: var(--color-accent);
|
||||||
}
|
}
|
||||||
|
|
||||||
*:focus-visible {
|
@media (any-hover: hover) {
|
||||||
outline-offset: .1rem;
|
a:hover {
|
||||||
outline: .1rem solid var(--color-accent);
|
text-decoration-thickness: .25rem;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Header/nav/footer */
|
/* Header/nav/footer */
|
||||||
header {
|
header {
|
||||||
height: 20vh;
|
height: 20vh;
|
||||||
padding: 1rem;
|
padding: calc(20vh / 8);
|
||||||
background-color: var(--color-accent);
|
background-color: var(--color-accent);
|
||||||
}
|
}
|
||||||
|
|
||||||
.logo {
|
.logo {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
width: auto;
|
width: auto;
|
||||||
|
padding: calc(20vh / 30);
|
||||||
|
border: calc(20vh / 50) solid var(--color-accent);
|
||||||
|
border-radius: calc(20vh / 3);
|
||||||
|
}
|
||||||
|
|
||||||
|
header a:focus-visible {
|
||||||
|
outline: none; /* covered by logo rule below */
|
||||||
|
}
|
||||||
|
|
||||||
|
header a:focus-visible .logo {
|
||||||
|
border-color: var(--color-text);
|
||||||
|
outline: calc(20vh / 30) solid var(--color-accent-flipped);
|
||||||
}
|
}
|
||||||
|
|
||||||
@media (prefers-color-scheme: light) {
|
@media (prefers-color-scheme: light) {
|
||||||
@@ -150,10 +172,12 @@ header {
|
|||||||
footer {
|
footer {
|
||||||
background-color: var(--color-accent);
|
background-color: var(--color-accent);
|
||||||
color: var(--color-bg);
|
color: var(--color-bg);
|
||||||
|
padding: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
footer p {
|
footer p {
|
||||||
text-align: center;
|
text-align: center;
|
||||||
|
margin: 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
footer a,
|
footer a,
|
||||||
@@ -162,8 +186,6 @@ footer a:visited {
|
|||||||
text-decoration-color: var(--color-bg);
|
text-decoration-color: var(--color-bg);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Misc */
|
footer a:focus-visible {
|
||||||
#hero {
|
outline: .15rem solid var(--color-accent-flipped);
|
||||||
aspect-ratio: 40 / 9;
|
|
||||||
object-fit: cover;
|
|
||||||
}
|
}
|
||||||
|
|||||||
Submodule
+1
Submodule district-dharma-site added at e84896b26a
+2
-2
@@ -1,8 +1,8 @@
|
|||||||
---
|
---
|
||||||
title: Attribution
|
title: Attribution
|
||||||
|
___mb_schema: /.mattrbld/schemas/page.json
|
||||||
---
|
---
|
||||||
|
This site is built using [{{ eleventy.generator }}](https://www.11ty.dev/){target="_blank"} by [Lee Cattarin](https://leecat.art){target="_blank"}. It is hosted by [heckin' technology](https://heckin.technology/){target="_blank"}.
|
||||||
This site is built using [{{ eleventy.generator }}](https://www.11ty.dev/){target="_blank"} by [Lee Cattarin](https://leecat.art){target="_blank"}.
|
|
||||||
|
|
||||||
The header font is [Monserrat](https://fonts.google.com/specimen/Montserrat){target="_blank"}. The body font is [Atkinson Hyperlegible Next](https://www.brailleinstitute.org/freefont/){target="_blank"}, developed by the Braille Institute.
|
The header font is [Monserrat](https://fonts.google.com/specimen/Montserrat){target="_blank"}. The body font is [Atkinson Hyperlegible Next](https://www.brailleinstitute.org/freefont/){target="_blank"}, developed by the Braille Institute.
|
||||||
|
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 176 KiB |
+21
-5
@@ -1,13 +1,29 @@
|
|||||||
---
|
---
|
||||||
title: Welcome
|
title: Welcome to District Dharma
|
||||||
hero: null
|
hero: null
|
||||||
layout: index.njk
|
layout: index.njk
|
||||||
___mb_schema: /.mattrbld/schemas/page.json
|
___mb_schema: /.mattrbld/schemas/page.json
|
||||||
---
|
---
|
||||||
## About
|
## Who we are
|
||||||
|
|
||||||
The chickadees are a group of North American birds in the family Paridae included in the genus Poecile. Species found in North America are referred to as chickadees; species found elsewhere in the world are called tits. They are small-sized birds overall, usually having the crown of the head and throat patch distinctly darker than the body. They are at least 6 to 14 centimeters (2.4 to 5.5 inches) in size.
|
District Dharma Collective is a community of practitioners rooted in Washington, DC — a city that sits at the center of so much that is uncertain, contested, and in flux. We currently gather in the Dupont Circle neighborhood, and our doors are open to anyone who finds their way to us.
|
||||||
|
|
||||||
## Schedule
|
We come from different Buddhist traditions and paths, but we gather around a shared conviction: that the dharma has something vital to say to us in these times of upheaval and unrest. We sit together, study the teachings, and ask hard questions about how ancient wisdom meets this present moment — personally, collectively, and in the world around us.
|
||||||
|
|
||||||
Their name reputedly comes from the fact that their calls make a distinctive "chick-a-dee-dee-dee", though their normal call is "fee-bee", and the "chick-a-dee-dee-dee" call is an alarm call. The number of "dees" depends on the predator.
|
In our study, we are intentional about whose voices we center. Alongside traditional texts, we lift up the teachings of BIPOC and Queer dharma teachers, honoring the full breadth of wisdom that is alive in contemporary Buddhist communities.
|
||||||
|
|
||||||
|
We believe that practice and community are inseparable. Whether you are new to meditation, returning after years away, or a long-committed practitioner seeking a spiritual home, you are welcome here. We hold no single tradition and no single teacher — only a shared willingness to show up: on the cushion, in study, and for one another.
|
||||||
|
|
||||||
|
## What we do
|
||||||
|
|
||||||
|
We gather in a space that spends its weekdays as a psychotherapy office — and there's something intentional about that. Each time we meet, we transform it together, arranging cushions and chairs before settling into thirty minutes of sitting meditation. Newcomers are always welcome to ask for guidance; no experience is assumed.
|
||||||
|
|
||||||
|
After a short break, we move into a dharma talk and discussion rooted in whatever text we're exploring as a group. We tend toward contemporary teachers whose voices are too rarely centered — writers like Lama Rod Owens and Kaira Jewel Lingo — alongside more traditional teachings. The conversation that follows is as much a part of the practice as the sitting.
|
||||||
|
|
||||||
|
## When we meet
|
||||||
|
|
||||||
|
We gather on the first and third Sunday of each month, from 10:30 am to noon, at 1633 Q Street NW, Washington, DC — in the heart of Dupont Circle.
|
||||||
|
|
||||||
|
## Come sit with us
|
||||||
|
|
||||||
|
Our space is intimate, and we set it up ourselves before each gathering — so it helps us to know you're coming. If you'd like to join us, reach out using the form below and we'll be in touch with everything you need to know!
|
||||||
|
|||||||
Reference in New Issue
Block a user