<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Aisha Blake</title>
    <description>The latest articles on DEV Community by Aisha Blake (@aishablake).</description>
    <link>https://dev.to/aishablake</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F213449%2F7dbac5c3-2717-46e9-a636-bf28de45384b.jpg</url>
      <title>DEV Community: Aisha Blake</title>
      <link>https://dev.to/aishablake</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/aishablake"/>
    <language>en</language>
    <item>
      <title>Relicans Summer Camp Week 4: Public Speaking Week</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Mon, 26 Jul 2021 17:34:27 +0000</pubDate>
      <link>https://dev.to/newrelic/relicans-summer-camp-week-4-public-speaking-week-4mjf</link>
      <guid>https://dev.to/newrelic/relicans-summer-camp-week-4-public-speaking-week-4mjf</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;🏕 &lt;strong&gt;Challenge:&lt;/strong&gt; Apply to speak at a conference.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;You've made it to Week 4! We're talking about public speaking but a lot of our thoughts on generating ideas and developing habits apply to all the other topics we've covered in this series, particularly the &lt;a href="https://www.therelicans.com/captainellie/the-relicans-summer-camp-week-3-writing-365g"&gt;Week 3 writing challenge&lt;/a&gt;.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;CFP: Call for Proposals (or Papers). A request for potential speakers to express interest in participating in a specific conference by outlining the talk(s) they'd like to give at that event&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Finding a conference
&lt;/h2&gt;

&lt;p&gt;The sheer number of tech conferences can get overwhelming. It takes time to develop your own criteria for choosing which ones to apply to.&lt;/p&gt;

&lt;h3&gt;
  
  
  Determine your conference values
&lt;/h3&gt;

&lt;p&gt;As you're looking for events to speak at, decide how you'll choose which ones to devote your time and energy towards. What's most important to you in a conference? Are there any policies or characteristics that would raise a red flag? Here are some points to consider:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Does the event have a code of conduct? Does it include contact information? Does it explain how to report an incident? Are there anonymous reporting options?&lt;/li&gt;
&lt;li&gt;Who has spoken in the past? If any speakers have already been announced, are there any known abusers in the current lineup?&lt;/li&gt;
&lt;li&gt;Are any of the organizers part of marginalized communities?&lt;/li&gt;
&lt;li&gt;If the event is in-person, how accessible is the venue? Have the organizers provided that information?&lt;/li&gt;
&lt;li&gt;How are speakers being compensated?&lt;/li&gt;
&lt;li&gt;Is the event run by a community? A company?&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Exercise: Write down your personal speaker rider. For now, it can be a short, private list of preferences. Check out &lt;a href="https://gist.github.com/tatianamac/493ca668ee7f7c07a5b282f6d9132552"&gt;Tatiana Mac's speaker rider&lt;/a&gt; as a particularly thorough example.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The lines you draw here may be different depending on the conference. Maybe you're willing to speak for free for small, community events. Perhaps your expectations around the ethnic diversity of organizers depend on the country in which the conference is based. That's completely up to you!&lt;/p&gt;

&lt;p&gt;Compensation might also go beyond getting paid with money. If you're unwilling or unable to take money for speaking at an event, think about what other "rewards" might be useful to you. A conference team might buy you the equipment you need to record your talk for them or list your company as a sponsor, to name a few.&lt;/p&gt;

&lt;h3&gt;
  
  
  Finding new events
&lt;/h3&gt;

&lt;p&gt;Tools like &lt;a href="https://www.cfpland.com/"&gt;CFP Land&lt;/a&gt; will give you a starting point if you're not sure where to look. It's convenient but remember that not every conference will post a CFP to every (or any) aggregator. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--qgtOfoXZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.therelicans.com/remoteimages/uploads/articles/ey63px4eciy8q8dx2lvr.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--qgtOfoXZ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.therelicans.com/remoteimages/uploads/articles/ey63px4eciy8q8dx2lvr.png" alt="CFP Land home page shows upcoming conference CFPs in chronological order" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;An aggregator will also allow you to filter your results so that it's easier to find events better suited to your needs and interests.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--ITtmGWwR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.therelicans.com/remoteimages/uploads/articles/280cux4fh0v027t0pdwj.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ITtmGWwR--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.therelicans.com/remoteimages/uploads/articles/280cux4fh0v027t0pdwj.png" alt="CFP Land has filters for category, region, and conference start date" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If you're using something like &lt;a href="https://www.papercall.io/events"&gt;PaperCall&lt;/a&gt;, you can also save your abstracts and resubmit the same talks to multiple conferences on the platform. That'll be useful when we discuss tracking your talks later on!&lt;/p&gt;

&lt;h3&gt;
  
  
  Seek recommendations
&lt;/h3&gt;

&lt;p&gt;If you know folks who are already speaking at conferences, ask them for recommendations! A speaker is likely to give you a more detailed (and potentially less biased) view of what's it's like to be a speaker at a given event than that event's CFP.&lt;/p&gt;

&lt;h3&gt;
  
  
  Put yourself out there
&lt;/h3&gt;

&lt;p&gt;You can also take the straightforward route and present yourself as a potential speaker in public. This is often done on Twitter or LinkedIn. You'll find it easier to focus your efforts if you have some idea of what you'd like to talk about. &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--MkVkvYAK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.therelicans.com/remoteimages/uploads/articles/cgcc26dqnzz8ug08b7ie.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--MkVkvYAK--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.therelicans.com/remoteimages/uploads/articles/cgcc26dqnzz8ug08b7ie.png" alt="DrRosieW tweets: I'm looking to speak at more UX/design/product/tech events/conferences. My specialty is behaviour change in health, but I can also speak about Research Ops (esp. consent &amp;amp; data management) and research on sensitive topics. If that's of interest to your audience, please get in touch!" width="800" height="340"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;You also don't need to start with a conference. Reach out to meetups or do lightning talks.&lt;/p&gt;

&lt;h2&gt;
  
  
  Brainstorming talk ideas
&lt;/h2&gt;

&lt;p&gt;This may be influenced by the conferences you're interested in and vice versa! Whichever comes first, coming up with the idea for your talk or settling on a conference to apply to, a brainstorming session can help you loosen up enough to produce an interesting topic.&lt;/p&gt;

&lt;p&gt;Remember, you don't need to be an expert in the thing you're going to talk about. Most people aren't! You're sharing &lt;em&gt;your&lt;/em&gt; take on your chosen topic. That's something absolutely no one else can do as well as you can.&lt;/p&gt;

&lt;p&gt;The writing tips from last week hold true! We'll repost the list of questions to ask yourself here for anyone who hasn't worked through the previous challenges:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;What do you already know?&lt;/li&gt;
&lt;li&gt;What have you learned recently?&lt;/li&gt;
&lt;li&gt;What's something you wish you knew when you got started (with a specific project, tool, tech in general, etc.)?&lt;/li&gt;
&lt;li&gt;What do you want to learn more about? Why?&lt;/li&gt;
&lt;li&gt;What problems have you solved? How did you do it?&lt;/li&gt;
&lt;li&gt;What questions do you have?&lt;/li&gt;
&lt;li&gt;Do you have any content you can reuse, like a video or stream?

&lt;ul&gt;
&lt;li&gt;Hint, if you joined the video, open source, or writing challenges, you can reuse that!&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Writing the abstract
&lt;/h2&gt;

&lt;p&gt;An abstract is like your conference talk pitch. It's a brief synopsis of what you'll talk about meant to convince participants to come and watch the talk itself. Writing a tight, persuasive abstract about a relevant topic will give you the best chance of having your talk accepted.&lt;/p&gt;

&lt;p&gt;This means you don't need to write the whole talk before submitting a proposal! That's potentially a ton of wasted effort if the talk doesn't get picked up by a conference. Unless you're willing to convert your talk into a video or otherwise release the content in some form besides a conference talk, focus on the abstract first.&lt;/p&gt;

&lt;h3&gt;
  
  
  Outline your plan
&lt;/h3&gt;

&lt;p&gt;You may find it helpful to start with a bulleted list of points. If you do, hang onto this list because some organizers will ask for just such an outline in their CFP! Draw some takeaways from your outline to give attendees an idea of what they'll learn from you.&lt;/p&gt;

&lt;h3&gt;
  
  
  Keep it brief
&lt;/h3&gt;

&lt;p&gt;When we say an abstract is meant to be brief, we mean it! When your talk proposal is one of hundreds or thousands, you need to hook your reader quickly. Resist the temptation to add fluff. See if you can get your idea across within five sentences.&lt;/p&gt;

&lt;h3&gt;
  
  
  Test it out
&lt;/h3&gt;

&lt;p&gt;Share your abstract with at least one person who is familiar with your topic and one person who isn't. It might be scary to share this unfinished work but try to choose people you can trust to give honest feedback. The abstract should, as much as possible, get them excited about your presentation. Apply any feedback you get and then repeat the process.&lt;/p&gt;

&lt;h2&gt;
  
  
  Get a Headshot
&lt;/h2&gt;

&lt;p&gt;Your headshot doesn't need to be fancy. It doesn't even need to be a photo of you (though some organizers prefer photos over illustrations). Any clear image of your face should do, but some organizers will request that the image be square.&lt;/p&gt;

&lt;p&gt;It's a good idea to keep this image handy, along with your bio, so you don't have to go looking for it whenever you want to apply to speak somewhere.&lt;/p&gt;

&lt;h2&gt;
  
  
  Craft Your Bio
&lt;/h2&gt;

&lt;p&gt;For some folks, this is the hardest part of all: writing about yourself! If you don't already have a biography, you'll need one for practically every event you'll ever speak at. You can start small, with just the bare facts, and add flair when you're feeling more confident. Think of the following like a mini-worksheet and fill in the brackets.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;[your name] is a [your title] at [your company]. [your pronoun] [has/have] a particular interest in [your professional interest(s)]. Ask them about [your go-to fun fact]!&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;That's enough to get you going! If you want to dig a little deeper and come up with a more original bio, you can construct one using this technique &lt;a href="https://angiejones.tech/"&gt;Angie Jones&lt;/a&gt; shared at &lt;a href="https://www.writespeakcode.com/2019/"&gt;Write/Speak/Code 2019&lt;/a&gt;:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Exercise: Write down ten accomplishments, five technical things you could teach, and five "shiny trinkets" (special or unique things about you). Combine these to form a more personal bio.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Scott Berkun also has some great tips on &lt;a href="https://scottberkun.com/2013/how-to-write-a-good-bio/"&gt;how to write a good bio&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Apply to Speak
&lt;/h2&gt;

&lt;p&gt;Read the CFP, and then read it again. You do not want to have your wonderful proposal rejected because you didn't follow the CFP directions. A common mistake that can cause your proposal to be rejected is including personally identifiable information when submitting it to an anonymized CFP.&lt;/p&gt;

&lt;p&gt;Look at the timeline and note when the CFP opens, when it closes, when you can expect a response, when you would need to turn in any deliverables, and when you would need to travel/speak.&lt;/p&gt;

&lt;p&gt;Some organizers will wait until after the closing deadline has passed before they begin reviewing and selecting talks, but not all. Some conferences will review proposals as soon as they're submitted, and immediately accept or decline. Get your proposal in early, you don't want to be rejected because they have already accepted a talk on your topic.&lt;/p&gt;

&lt;p&gt;General timeline:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;CFP opens 12-6 months in advance&lt;/li&gt;
&lt;li&gt;CFP is rolling or 1-2 months&lt;/li&gt;
&lt;li&gt;Accepted speakers notified 2-4 weeks after CFP close&lt;/li&gt;
&lt;li&gt;Accepted speakers may decline, so rejections are usually sent later

&lt;ul&gt;
&lt;li&gt;You should know whether or not you're speaking at least two months prior to the event but maybe as little as a few weeks!&lt;/li&gt;
&lt;/ul&gt;


&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Be concise!
&lt;/h3&gt;

&lt;p&gt;The selection committee are normally volunteers often working in their free time. They may have hundreds of proposals to read, make sure your proposal—especially your abstract—is succinct and snappy.&lt;/p&gt;

&lt;p&gt;You can add more detailed information in your proposal description but really focus on getting your abstract and title right. These are your hooks, they are what attendees will see in the schedule, but they're also the first thing a member of the selection committee will see too, and with hundreds of proposals to grade if you do not capture their attention with your title and abstract they may not even review the rest of your proposal.&lt;/p&gt;

&lt;h3&gt;
  
  
  Ask for feedback
&lt;/h3&gt;

&lt;p&gt;If there is something about the CFP process you are unsure of, do not be afraid to contact the conference and ask. Also, some conferences may run workshops or provide reviews and feedback on your proposal before you submit it. &lt;/p&gt;

&lt;h3&gt;
  
  
  Apply multiple times (with limits)
&lt;/h3&gt;

&lt;p&gt;Applying to conferences can be a bit of a numbers game. Even with an amazing proposal, you may not be selected. This is not a reflection on you or on your proposal, it could be any number of reasons; they have already accepted a talk on your topic, they have a particular theme for the conference which your talk does not fit into, they simply do not have enough slots in the schedule to accept every talk they want to.&lt;/p&gt;

&lt;p&gt;To maximize your chances of success, you can submit multiple proposals to the same conference. But do so respectfully! Ensure that each of your proposals are relevant to the conference. Ask yourself if you were only going to submit one proposal, would you still be happy to submit that proposal? Remember the selection committee are likely volunteers and very busy, so respect their time. You want them on your side!&lt;/p&gt;

&lt;p&gt;Some conferences might have restrictions on the number of talks you can propose to a single CFP. As always, read the CFP rules carefully first.&lt;/p&gt;

&lt;p&gt;You can also submit to multiple conferences, even if the conferences are going to be at the same or similar time. Just remember, if you are selected to speak at a conference, to withdraw your proposals from any other conferences happening at the same time.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tracking your talks
&lt;/h2&gt;

&lt;p&gt;Keep track of your talk ideas, abstracts, slides, and notes! You might not get each and every one accepted, but being able to reference everything you've come up with at a glance can help you build stronger talks in the future.&lt;/p&gt;

&lt;p&gt;Try collecting everything you've created in a single "Speaking" folder somewhere it'll be easy for you to locate later. You can keep adding to that folder for as long as it works for you. Some people will also use a tool like Notion or Trello to keep track of &lt;em&gt;current&lt;/em&gt; proposals.&lt;/p&gt;

&lt;h3&gt;
  
  
  Share completed talks
&lt;/h3&gt;

&lt;p&gt;You can display things like slides and recordings on your website, on GitHub, or on platforms built for the purpose like &lt;a href="https://noti.st/"&gt;Notist&lt;/a&gt;. These serve as a kind of portfolio. In the future, organizers will be able to see a list of the fabulous talks you've already given whenever they're looking for a new speaker to invite to their event! &lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XvhCY1sQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.therelicans.com/remoteimages/uploads/articles/8dmdwteoaoesihhpppem.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XvhCY1sQ--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_800/https://www.therelicans.com/remoteimages/uploads/articles/8dmdwteoaoesihhpppem.png" alt="Aaron Bassett's presentations on Notist" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;You have something to say that's worth sharing with an audience! Take your time, ask for help when you need it, and start applying. It'll get easier and faster over time. &lt;/p&gt;

&lt;p&gt;Consider getting started by applying to &lt;a href="https://community.codenewbie.org/codenewbie/a-new-codeland-opportunity-for-creative-codenewbies-5e82"&gt;CodeLand Recess&lt;/a&gt;! This is a great way to focus all the lessons you've learned over the course of the Relicans Summer Camp into a bite-sized video that will be shared with the CodeNewbie community.&lt;/p&gt;

&lt;p&gt;Also, share your work. We want to see what you create! Be sure to include the #RelicansSummerCamp tag on your post so we can find it easily and award you your camp badge!&lt;/p&gt;

</description>
      <category>relicanssummercamp</category>
      <category>beginners</category>
      <category>community</category>
      <category>learning</category>
    </item>
    <item>
      <title>What Musical Theater Taught Me About Writing Approachable Documentation</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Tue, 27 Apr 2021 21:35:10 +0000</pubDate>
      <link>https://dev.to/aishablake/what-musical-theater-taught-me-about-writing-approachable-documentation-2opi</link>
      <guid>https://dev.to/aishablake/what-musical-theater-taught-me-about-writing-approachable-documentation-2opi</guid>
      <description>&lt;p&gt;If you’re a musical theater fan &lt;em&gt;and&lt;/em&gt; involved in tech, you should absolutely check out &lt;a href="https://www.titleofconf.org/"&gt;&amp;lt;title of conf&amp;gt;&lt;/a&gt;! It’s a conference I conceived of with some of my friends which will showcase the musical and theatrical talents in our industry and teach tech concepts through performance. I named it for &lt;a href="https://www.concordtheatricals.com/p/44841/title-of-show"&gt;[title of show]&lt;/a&gt;, a super meta musical about two guys writing a musical about two guys writing a musical… written by those same two guys.&lt;/p&gt;

&lt;p&gt;Thinking about this show as often as I did growing up taught me a lot about creating impactful projects and putting them out into the world. When that project is a piece of software, one of the best ways to make sure it’s impactful is to write great documentation! Docs guide your users and can help prospective users decide whether your project is worth using.&lt;/p&gt;

&lt;p&gt;The following are my suggestions for making your docs more user-friendly, all gleaned from my most recent listening of [title of show]!&lt;/p&gt;

&lt;h2&gt;
  
  
  Dial in your information architecture
&lt;/h2&gt;

&lt;p&gt;“And now we yell in fortissimo!” - Untitled Opening Number&lt;/p&gt;

&lt;p&gt;First up is the layout of information in your documentation. Is each topic arranged so that the relationships between them are clear? Have you written clear and descriptive headings? Does the reader understand what type of information they’ll find before they click a link on your site? You might have written the greatest tutorial in the galaxy, but it won’t do anyone any good if they can’t find it!&lt;/p&gt;

&lt;p&gt;I recommend checking out Divio’s documentation system. It details how they break documentation into four categories: tutorials, how-to guides, reference guides, and explanation. These four functions of documentation address the various needs of your readers by presenting different types of information. If you separate your docs into these four categories and clarify the purpose of each, you can show readers to better navigate the docs. &lt;/p&gt;

&lt;p&gt;This is perhaps easier if you’re writing from scratch. Totally overhauling an existing site takes care and time. If you don’t have the resources to do a full audit and major update, break the process down into smaller steps. Projects commonly have tutorials spread all over the place. Try starting the process by identifying any rogue tutorials and pulling them into one section.&lt;/p&gt;

&lt;p&gt;You can learn more about the way Divio does documentation by watching Daniele Procida talk about "What nobody tells you about documentation".&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/t4vKPhjcMZg"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;h2&gt;
  
  
  Maximize usability and minimize shame
&lt;/h2&gt;

&lt;p&gt;“You have a painting to paint!” - Die Vampire, Die!&lt;/p&gt;

&lt;p&gt;It’s tempting to talk about how “easy” or “simple” your project is to use because… you want people to use it! It may even be true that &lt;em&gt;most&lt;/em&gt; people who read your docs will agree with you. However, trivializing tasks that may &lt;em&gt;not&lt;/em&gt; be so easy for some of your readers can leave them feeling discouraged. If things go wrong when someone is trying to “just” do something you’ve told them should be a breeze, the next question for a lot of people is “Well then what’s wrong with me?”&lt;/p&gt;

&lt;p&gt;In many cases, you can cut this kind of wording out without changing the surrounding text. This is especially true of adverbs like “quickly” or “simply”. Remove them and the sentence will usually still make sense!&lt;/p&gt;

&lt;h2&gt;
  
  
  Avoid making too many assumptions
&lt;/h2&gt;

&lt;p&gt;“I would know that confidence if I knew a way back to then.” - A Way Back to Then&lt;/p&gt;

&lt;p&gt;Be on the lookout for language that assumes certain knowledge as well. Phrases like “you probably know” or “I’m sure you’re aware” can make people feel small. Even worse is writing docs without stating your assumptions at all! Struggling to make headway through a tutorial only to realize later that you lacked crucial context is an incredibly frustrating experience.&lt;/p&gt;

&lt;p&gt;Beginning with a quick statement of your assumptions and any prerequisites for understanding the material can prevent your readers from falling victim to that frustration.  &lt;/p&gt;

&lt;p&gt;That said, the React docs don’t need to teach you everything about JavaScript even though you need some understanding of the language in order to use React (a JavaScript library which serves as the basis for many websites). When you feel the need to provide extensive background information on a given topic, consider linking out to other documentation rather than reinventing the wheel. For example, you could try referencing the Mozilla Developer Network web docs rather than going into depth about &lt;a href="https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/Arrow_functions"&gt;arrow functions&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Ask for feedback
&lt;/h2&gt;

&lt;p&gt;“I wonder sometimes if she even likes me…” - What Kind of Girl Is She?&lt;/p&gt;

&lt;p&gt;You’ve read this far and probably have some ideas about how you might apply this to your own project. Pause for a moment, though, and consider your actual users. What do &lt;em&gt;they&lt;/em&gt; think? I can sit here and tell you what I think might make your docs better but it’s important to tailor that advice to the people who will actually read them!&lt;/p&gt;

&lt;p&gt;Set up some kind of feedback system so that readers can communicate any issues they encounter. If possible, provide a method that allows them to give feedback on a specific page and include a form, link, button (whatever makes sense for you) on each page. &lt;/p&gt;

&lt;p&gt;If your project is open source, you can ask folks to make the changes they want to see for you. Your docs can be an awesome entry point for new contributors! In general, and especially in this case, it’s super important to lay out a solid style guide to help maintain a consistent voice throughout your docs. Include any conventions around tone, spelling, formatting, and structure in your style guide and hold everyone who writes the docs to it!&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;p&gt;Check in with your docs! Which of these suggestions can you apply to make your own documentation more effective? If you’re looking for community around great documentation, grab a ticket to the next &lt;a href="https://www.writethedocs.org/conf/"&gt;Write the Docs conference&lt;/a&gt;. &lt;/p&gt;

&lt;p&gt;Bonus: if you’re into this whole tech topics as songs thing, check out this password safety PSA in the form of a sea shanty:&lt;/p&gt;


&lt;blockquote class="ltag__twitter-tweet"&gt;
      &lt;div class="ltag__twitter-tweet__media ltag__twitter-tweet__media__video-wrapper"&gt;
        &lt;div class="ltag__twitter-tweet__media--video-preview"&gt;
          &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--obe5hAVM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/ext_tw_video_thumb/1352409487164854272/pu/img/EJu5UW8XhxHts8iw.jpg" alt="unknown tweet media content"&gt;
          &lt;img src="/assets/play-butt.svg" class="ltag__twitter-tweet__play-butt" alt="Play butt"&gt;
        &lt;/div&gt;
        &lt;div class="ltag__twitter-tweet__video"&gt;
          
            
          
        &lt;/div&gt;
      &lt;/div&gt;

  &lt;div class="ltag__twitter-tweet__main"&gt;
    &lt;div class="ltag__twitter-tweet__header"&gt;
      &lt;img class="ltag__twitter-tweet__profile-image" src="https://res.cloudinary.com/practicaldev/image/fetch/s--S8g22CK_--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://pbs.twimg.com/profile_images/1275847667197730817/EWQUVKJi_normal.jpg" alt="Rachel Tobac profile image"&gt;
      &lt;div class="ltag__twitter-tweet__full-name"&gt;
        Rachel Tobac
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__username"&gt;
        @racheltobac
      &lt;/div&gt;
      &lt;div class="ltag__twitter-tweet__twitter-logo"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--ir1kO05j--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-f95605061196010f91e64806688390eb1a4dbc9e913682e043eb8b1e06ca484f.svg" alt="twitter logo"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__body"&gt;
      To reach the ~youth~ we're going to have to make infosec sea shanties, aren't we? Guess so!&lt;br&gt;Behold the tale of kid who reuses their passwords &amp;amp; ends up pwn'd, then learns how to stay safe. We're on a mission to encourage unique passwords stored in a password manager with MFA on. 
    &lt;/div&gt;
    &lt;div class="ltag__twitter-tweet__date"&gt;
      00:15 AM - 22 Jan 2021
    &lt;/div&gt;


    &lt;div class="ltag__twitter-tweet__actions"&gt;
      &lt;a href="https://twitter.com/intent/tweet?in_reply_to=1352409636792492035" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--fFnoeFxk--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-reply-action-238fe0a37991706a6880ed13941c3efd6b371e4aefe288fe8e0db85250708bc4.svg" alt="Twitter reply action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/retweet?tweet_id=1352409636792492035" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--k6dcrOn8--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-retweet-action-632c83532a4e7de573c5c08dbb090ee18b348b13e2793175fea914827bc42046.svg" alt="Twitter retweet action"&gt;
      &lt;/a&gt;
      &lt;a href="https://twitter.com/intent/like?tweet_id=1352409636792492035" class="ltag__twitter-tweet__actions__button"&gt;
        &lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SRQc9lOp--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev.to/assets/twitter-like-action-1ea89f4b87c7d37465b0eb78d51fcb7fe6c03a089805d7ea014ba71365be5171.svg" alt="Twitter like action"&gt;
      &lt;/a&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/blockquote&gt;


</description>
      <category>devrel</category>
      <category>music</category>
    </item>
    <item>
      <title>Why I'm Learning Rust</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Tue, 06 Apr 2021 19:23:09 +0000</pubDate>
      <link>https://dev.to/newrelic/why-i-m-learning-rust-2672</link>
      <guid>https://dev.to/newrelic/why-i-m-learning-rust-2672</guid>
      <description>&lt;p&gt;I've been a JavaScript developer for nearly my entire career. I've even spent much of said career &lt;em&gt;teaching&lt;/em&gt; other people to write JavaScript. And now, all of a sudden, here I am &lt;a href="https://www.twitch.tv/aishacodes"&gt;coming to you live on Mondays (and Tuesdays) to stream Learning Rust&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;I could sum this up quickly by saying "Why? Because I can!" but there are other good reasons to learn Rust and I'd also like to share some of the resources I've used so far.&lt;/p&gt;

&lt;h2&gt;
  
  
  Move fast without breaking things
&lt;/h2&gt;

&lt;p&gt;My (perhaps over-) simplified impression of Rust's goals is that it's trying to be &lt;em&gt;fast, safe, and friendly&lt;/em&gt;. You get the crunchy, low-level goodness that you get with a language like C++ but with guardrails that make it more difficult to make costly mistakes. &lt;/p&gt;

&lt;p&gt;In addition, at least so far, the error messages and documentation I've read have been uncommonly clear and helpful. In the following example, the compiler is not only telling me that I tried to use a variable that doesn't exist but is telling me there's a similar name that &lt;em&gt;does&lt;/em&gt; exist which may be (is) what I'm looking for.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;error[E0425]: cannot find value &lt;span class="sb"&gt;`&lt;/span&gt;filename&lt;span class="sb"&gt;`&lt;/span&gt; &lt;span class="k"&gt;in &lt;/span&gt;this scope
 &lt;span class="nt"&gt;--&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt; src/main.rs:9:23
  |
9 |     println! &lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"{:?}"&lt;/span&gt;, filename&lt;span class="o"&gt;)&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
  |                       ^^^^^^^^ &lt;span class="nb"&gt;help&lt;/span&gt;: a &lt;span class="nb"&gt;local &lt;/span&gt;variable with a similar name exists: &lt;span class="sb"&gt;`&lt;/span&gt;fileName&lt;span class="sb"&gt;`&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Learning with a buddy
&lt;/h2&gt;

&lt;p&gt;Probably the best part of this process for me has been that I'm not doing it alone! My brilliant colleague &lt;a href="https://www.therelicans.com/chaelcodes"&gt;ChaelCodes&lt;/a&gt; is right there with me, which has made the last couple of weeks so much more fun. We approach the material differently, come up with different questions, and can play off of each other's strengths.&lt;/p&gt;

&lt;p&gt;Aaaand sometimes we get sidetracked and I sing songs. 😅&lt;/p&gt;

&lt;p&gt;&lt;iframe src="https://clips.twitch.tv/embed?clip=AcceptableNastyWalletWoofer--BgAAr2q2Sj2&amp;amp;parent=dev.to&amp;amp;autoplay=false" height="399" width="710"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;The point is that &lt;strong&gt;I highly recommend connecting with at least one other person also actively learning whatever you're trying to learn&lt;/strong&gt;. It might be difficult to find someone you vibe with but it's worth the effort!&lt;/p&gt;

&lt;p&gt;Some ideas for finding your learning buddy:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Put out a call on Twitter&lt;/li&gt;
&lt;li&gt;Check your Slack and Discord communities for an "accountability" channel&lt;/li&gt;
&lt;li&gt;
&lt;em&gt;Join&lt;/em&gt; whatever platform people use to talk about your subject of interest&lt;/li&gt;
&lt;li&gt;Ask around at work to see whether anyone has the interest/bandwidth&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Circling back to web dev
&lt;/h2&gt;

&lt;p&gt;My friend &lt;a href="https://laurieontech.com/posts/rust/"&gt;Laurie Barth&lt;/a&gt; was the first person to spark a real interest in Rust for me. She did a great job of sharing her first impressions of the language on her blog. That led to me digging into some of &lt;a href="https://www.christopherbiscardi.com/rust"&gt;Chris Biscardi's writing on &lt;em&gt;his&lt;/em&gt; experience with Rust&lt;/a&gt;. Essentially, hearing what other folks in my very JavaScript-heavy circle were doing with Rust got the wheels spinning in my head too!&lt;/p&gt;

&lt;p&gt;Chris is building a Jamstack framework called &lt;a href="https://github.com/toastdotdev/toast"&gt;Toast&lt;/a&gt; with both Rust and JavaScript that feels like it's right up my alley. I'd like to be able to contribute to the project and better understand how it works!&lt;/p&gt;

&lt;p&gt;I'm not planning on shifting to systems engineering or game dev anytime soon, so it helps to have a project in mind that's relevant to my primary area of interest (broadly, web development).&lt;/p&gt;

&lt;h2&gt;
  
  
  Resources
&lt;/h2&gt;

&lt;p&gt;I'm excited by what I've learned so far! It feels good to have the time and freedom to devote to learning something like this because I want to. If you've decided you want to as well, check out the following resources and be sure to &lt;a href="https://www.twitch.tv/aishacodes?utm_campaign=DevRel&amp;amp;utm_medium=theRelicans&amp;amp;utm_source=blog"&gt;drop in on my Twitch channel&lt;/a&gt; and tell me what you're building with Rust!&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;a href="https://doc.rust-lang.org/book/"&gt;The Rust Programming Language&lt;/a&gt; book&lt;/li&gt;
&lt;li&gt;
&lt;a href="https://github.com/rust-lang/rustlings/"&gt;Rustlings&lt;/a&gt; course&lt;/li&gt;
&lt;li&gt;Chris Biscardi's Egghead playlist &lt;a href="https://egghead.io/courses/learning-rust-by-solving-the-rustlings-exercises-a722"&gt;Learning Rust by Working Through the Rustlings Exercises&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href="https://doc.rust-lang.org/stable/rust-by-example/"&gt;Rust by Example&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
    </item>
    <item>
      <title>Asking for Compensation as a Speaker</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Sat, 03 Oct 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/aishablake/asking-for-compensation-as-a-speaker-3mg3</link>
      <guid>https://dev.to/aishablake/asking-for-compensation-as-a-speaker-3mg3</guid>
      <description>&lt;p&gt;A while back, I published a post about &lt;a href="https://dev.to/aishablake/getting-paid-as-a-speaker-3epi"&gt;getting paid as a speaker&lt;/a&gt;. In that post, I outline how and why you might expect to be paid but not how to &lt;em&gt;ask&lt;/em&gt; for said pay. The bottom line is that you should be compensated for the value you bring to any event.&lt;/p&gt;

&lt;p&gt;You don’t need to agonize over crafting the perfect phrasing. It &lt;em&gt;pays&lt;/em&gt; (heh) to be straightforward and direct. My goal is to help you feel more confident when approaching event organizers about money. Take these snippets and adjust them to fit your own situation!&lt;/p&gt;

&lt;p&gt;Let’s break this down into a few different scenarios…&lt;/p&gt;

&lt;h2&gt;
  
  
  Clarifying the CFP
&lt;/h2&gt;

&lt;p&gt;Usually, if you’re responding to a call for proposals (CFP), you already know what the conference is offering its speakers. That information should be listed somewhere in the CFP, which you should always read carefully before submitting. If the CFP does &lt;em&gt;not&lt;/em&gt; outline speaker pay and/or benefits clearly, it’s time to ask for more details!&lt;/p&gt;

&lt;p&gt;There’s likely contact information somewhere in the CFP. Use that to reach out to the organizers with your questions. Feel free to include anything else you’re unsure of after reading the CFP. The organizers will probably be happy to update it so that others looking to submit don’t stumble over the same things.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Hi! I’m interested in applying to speak at your event but I’d like to understand how speakers will be compensated for their work. Could you outline your plans for paying speakers, please? I want to make sure they’re aligned with my own expectations.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Responding to an invitation
&lt;/h2&gt;

&lt;p&gt;Someone has asked you to speak at their event. Clearly, you are fancy and sought after. And you should be paid! Often, organizers don’t include much information in an initial ask like this. The message is likely to be informal, possibly via social media. You’ll probably have a number of questions for them to answer before you’ll agree to speak. You may also want to include something like the following:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I generally don’t take on unpaid speaking engagements. Please let me know how/if you’re paying your speakers.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Asking on behalf of others
&lt;/h2&gt;

&lt;p&gt;Particularly if you’re more well known, you may receive compensation above and beyond what other speakers are paid. It won’t always be obvious when this happens. If you’re unsure, try to talk with another speaker. Not everyone will be comfortable talking openly about money but transparency can help everyone get the compensation they deserve.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Please feel free to ignore this question if it’s too personal. Did the organizers offer to pay you for speaking?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;If you do find that other speakers aren’t being paid fairly, consider asking for compensation on their behalf. Most conferences have pretty strictly limited budgets but many, especially among the virtual conferences necessitated by the pandemic, are backed by for-profit companies. Even if the event itself doesn’t charge a registration fee, there &lt;em&gt;is&lt;/em&gt; a budget.&lt;/p&gt;

&lt;p&gt;There &lt;em&gt;will&lt;/em&gt; be variations in pay if the conference includes professional and/or celebrity speakers. The following assumes that there’s a mix of folks outside these categories and that &lt;em&gt;some&lt;/em&gt; are being paid far less than others or not at all.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I feel strongly that speakers should be paid equally. How might your team be able to make that happen?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Note that this doesn’t include a yes or no question. It’s not “Is this possible?” or “Could you change this?” You’re asking for suggestions, which will hopefully prompt the other person to actually consider the possibilities. Maybe they can still contact paid speakers about lowering their fees so that everyone can be paid. Perhaps they can get creative about seeking additional sponsorships.&lt;/p&gt;

&lt;h2&gt;
  
  
  Dealing with pushback
&lt;/h2&gt;

&lt;p&gt;Whether no one is being paid or compensation is uneven between speakers, at least one person decided things would be that way. They had reasons for making that decision which you may or may not agree with. The organizer(s) may push back or even get defensive when you propose policy changes. Try not to take it personally, stand firm, and also understand that those changes may not happen.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;I understand that [this is your policy / the budget is tight / whatever the situation is] and I appreciate your consideration. That said, I believe that paying speakers should be a high priority for any event like this.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Knowing when to walk away
&lt;/h2&gt;

&lt;p&gt;You won’t always get the result you want. At that point, it’s your turn to make a decision, to decide what’s most important to you. What’s a deal breaker? At what point do you withdraw from an event over speaker pay?&lt;/p&gt;

&lt;p&gt;This is going to be different for everyone. You may decide you have different expectations for small community events versus larger conferences run by companies. Your reaction might change based on how the organizer(s) field your questions.&lt;/p&gt;

&lt;p&gt;Get as much information as you need and make this decision as early as possible. The closer you are to an event, the more stressful it is for everyone involved when a speaker drops out.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Thank you for clarifying your policies and considering my request. Given what you’ve shared with me, I won’t be able to participate in this event. I’d love to suggest [speaker you’d recommend] as an alternative speaker.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Of course, only recommend others if you feel comfortable doing so. If you know a speaker who won’t have a problem with the event’s policies and you have their consent, this can be an excellent way to share the spotlight with new and/or underrepresented folks. Be sure to include any reasons &lt;em&gt;why&lt;/em&gt; you’d recommend them and suggest a particular talk if you have one in mind.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;p&gt;What would you add or change to these snippets? What other tough conversations have you had as a speaker? If you’re an organizer, how do you approach speaker compensation? &lt;a href="https://twitter.com/AishaBlake"&gt;Hit me up on Twitter&lt;/a&gt; with your thoughts and experiences!&lt;/p&gt;

</description>
    </item>
    <item>
      <title>The Moderator Manual</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Sun, 09 Aug 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/aishablake/the-moderator-manual-ijh</link>
      <guid>https://dev.to/aishablake/the-moderator-manual-ijh</guid>
      <description>&lt;p&gt;The following is a sort of template that you can use as a starting point for your own moderator manual. Each section represents a corresponding section I suggest you include in that manual. This is one small, specific part of my thoughts on &lt;a href="https://dev.to/aishablake/moderating-online-events-13nb"&gt;moderating online events&lt;/a&gt;. Feel free to take and use whatever bits make sense for you and your community!&lt;/p&gt;

&lt;h2&gt;
  
  
  Code of conduct
&lt;/h2&gt;

&lt;p&gt;Provide a link to the code of conduct. Give your moderators the opportunity to ask questions and make suggestions for changes to that code of conduct. You may find that you’ve missed something!&lt;/p&gt;

&lt;h2&gt;
  
  
  Reporting a CoC violation
&lt;/h2&gt;

&lt;p&gt;Outline the process of reporting a code of conduct violation. If you have a standalone form, link to it. If community members need to email a particular address, note it here and include a list of who has access to that inbox. If your mods can’t see reports directly, whoever can will need to be proactive about passing those reports along.&lt;/p&gt;

&lt;h2&gt;
  
  
  Mod powers
&lt;/h2&gt;

&lt;p&gt;Describe what exactly your moderators can do!&lt;/p&gt;

&lt;p&gt;Outline whatever special permissions you’ve given them &lt;em&gt;and how to use those permissions&lt;/em&gt;. This should include the ability to delete messages written by other people, mute community members (preventing them from posting), and ban community members from the platform.&lt;/p&gt;

&lt;p&gt;If you’ve set up &lt;a href="https://dev.to/aishablake/moderating-discord-servers-1i0f"&gt;custom commands for a Discord server&lt;/a&gt; or similar platform, list them here. Explain what they’re for and how to use them. If they take arguments, outline whatever additional information your mods will need to provide.&lt;/p&gt;

&lt;h3&gt;
  
  
  Managing messages
&lt;/h3&gt;

&lt;p&gt;Ordinarily, community members shouldn’t be able to affect anyone else’s messages. However, moderators need to be able to remove any harmful content posted to the community platform.&lt;/p&gt;

&lt;h3&gt;
  
  
  Muting
&lt;/h3&gt;

&lt;p&gt;Often paired with deleting posts, muting allows your moderators to stop a person from posting, either for a set amount of time or indefinitely. Muting someone can give you more time to determine whether further action is necessary.&lt;/p&gt;

&lt;p&gt;Muting can also serve as a kind of cooldown, especially if the muted person knows why they’ve been muted. Different communities have different standards for communication and what you think is common sense may not be so for everyone. If the post in question hasn’t caused serious harm, muting can give the person a chance to correct their behavior.&lt;/p&gt;

&lt;h3&gt;
  
  
  Banning
&lt;/h3&gt;

&lt;p&gt;When someone has caused harm in your community, you may need to consider banning them indefinitely. This should mean they are unable to sign into your platform with the same account/email address but won’t stop someone who’s truly determined from creating an alias and rejoining anyway.&lt;/p&gt;

&lt;p&gt;You may choose to ban someone who has committed multiple smaller offenses. (Keeping notes on mod actions taken with individual members can help here.) You may also decide that certain actions warrant an immediate ban. Whatever you decide, stick to those guidelines. You can always change your processes but such changes shouldn’t be made in the moment, when emotions are high.&lt;/p&gt;

&lt;p&gt;You may occasionally make mistakes here &lt;em&gt;and that’s okay&lt;/em&gt;. The safety of your community should come first. If you’re open to it, include a method for appealing a ban in your code of conduct.&lt;/p&gt;

&lt;h2&gt;
  
  
  Community member actions
&lt;/h2&gt;

&lt;p&gt;Again, if you’ve created any custom commands or functionality that applies to all community members, list them out here.&lt;/p&gt;

&lt;h3&gt;
  
  
  The “Bat Signal”
&lt;/h3&gt;

&lt;p&gt;Ordinarily, you won’t need your whole mod team available every second. It’s good for people to be able to relax and take their minds off of their mod duties for a while. Whether moderating for a one-day event or a long-standing community, each mod should have the confidence to step away from their screen.&lt;/p&gt;

&lt;p&gt;When there &lt;em&gt;is&lt;/em&gt; a problem (mass harassment, spamming, security breach, etc.), you’ll to get all (or, more likely, several) hands on deck quickly. A “Bat Signal” is a mechanism for doing so and some version of it should be available to all community members. This might be&lt;/p&gt;

&lt;h2&gt;
  
  
  Blocking &amp;amp; privacy settings
&lt;/h2&gt;

&lt;p&gt;What can individuals do to protect themselves? If your community platform allows members to block one another (it should), explain how or link to that platform’s documentation. Your mods should be equipped to relay this information to any community member who needs it.&lt;/p&gt;

&lt;h2&gt;
  
  
  Moderation principles
&lt;/h2&gt;

&lt;p&gt;What are your guiding principles? Do you ban first and ask questions later? Are you able to mediate discussions between community members who disagree? Are your mods and staff members held to different standards than the average person? Use this section to set the tone with your moderators as you head into the next section…&lt;/p&gt;

&lt;h2&gt;
  
  
  Moderation processes
&lt;/h2&gt;

&lt;p&gt;This is where you lay it all out! To the best of your ability, describe the appropriate response to any issue that might arise. This should include:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;how to respond to a CoC violation report&lt;/li&gt;
&lt;li&gt;what to do when someone raises the “Bat Signal”&lt;/li&gt;
&lt;li&gt;how to weigh the severity of a community member’s misconduct&lt;/li&gt;
&lt;li&gt;a chain of possible consequences based on the severity and frequency of a member’s misconduct&lt;/li&gt;
&lt;li&gt;how to respond to spam&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;p&gt;You’ve thought through most of the big things your moderation team will have to do and be. Go, you! Now that you have your moderation policies and processes outlined, it’s time to train your mods on them!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Want to hire me to train/lead your moderation team? &lt;a href="https://twitter.com/AishaBlake"&gt;Reach out via Twitter!&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>Gatsby 101: Build a Personal Website</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Fri, 24 Jul 2020 21:54:18 +0000</pubDate>
      <link>https://dev.to/aishablake/gatsby-101-build-a-personal-website-128j</link>
      <guid>https://dev.to/aishablake/gatsby-101-build-a-personal-website-128j</guid>
      <description>&lt;p&gt;This is a live document for my Codeland workshop! Come back later for a cleaned up version!&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Your commit message"&lt;/span&gt;
git push
npm &lt;span class="nb"&gt;install &lt;/span&gt;gatsby-plugin-mdx
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Add MDX and About page
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;npm install gatsby-plugin-mdx&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Add &lt;code&gt;gatsby-config.js&lt;/code&gt; to your root directory.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
    &lt;span class="s2"&gt;`gatsby-plugin-mdx`&lt;/span&gt;
  &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a new file at &lt;code&gt;src/pages/about.mdx&lt;/code&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="gh"&gt;# About me&lt;/span&gt;

I'm a really wonderful person. Say hi!

Check out my &lt;span class="p"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;blog&lt;/span&gt;&lt;span class="p"&gt;](&lt;/span&gt;&lt;span class="sx"&gt;https://aisha.codes&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;





&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git add &lt;span class="nb"&gt;.&lt;/span&gt;
git commit &lt;span class="nt"&gt;-m&lt;/span&gt; &lt;span class="s2"&gt;"Your commit message"&lt;/span&gt;
git push
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Add a blog
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;npm install gatsby-theme-blog&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Update &lt;code&gt;gatsby-config.js&lt;/code&gt;:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s2"&gt;`gatsby-plugin-mdx`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`gatsby-theme-blog`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;basePath&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`/blog`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;mdxOtherwiseConfigured&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Create a &lt;code&gt;content&lt;/code&gt; directory. Inside that, create directories called &lt;code&gt;assets&lt;/code&gt; and &lt;code&gt;posts&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Add an image called &lt;code&gt;avatar.jpg&lt;/code&gt; to &lt;code&gt;content/assets&lt;/code&gt;. &lt;code&gt;.gif&lt;/code&gt; and &lt;code&gt;.png&lt;/code&gt; will work, too!&lt;/p&gt;

&lt;p&gt;Add a file called &lt;code&gt;first-post.mdx&lt;/code&gt; to &lt;code&gt;content/posts&lt;/code&gt;. It should look something like the following:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight markdown"&gt;&lt;code&gt;&lt;span class="nn"&gt;---&lt;/span&gt;
&lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;"&lt;/span&gt;&lt;span class="s"&gt;My&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;First&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Blog&lt;/span&gt;&lt;span class="nv"&gt; &lt;/span&gt;&lt;span class="s"&gt;Post"&lt;/span&gt;
&lt;span class="na"&gt;date&lt;/span&gt;&lt;span class="pi"&gt;:&lt;/span&gt; &lt;span class="s"&gt;2020-07-24&lt;/span&gt;
&lt;span class="nn"&gt;---&lt;/span&gt;

Today is a good day!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Shadow &lt;code&gt;bio-content.js&lt;/code&gt;
&lt;/h3&gt;

&lt;p&gt;Add a new file at &lt;code&gt;src/gatsby-theme-blog/components/bio-content.js&lt;/code&gt;. This corresponds to the location of the theme file you're trying to update. Your new file should look something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="k"&gt;import&lt;/span&gt; &lt;span class="nx"&gt;React&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt; &lt;span class="nx"&gt;Fragment&lt;/span&gt; &lt;span class="p"&gt;}&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;react&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;

&lt;span class="kd"&gt;const&lt;/span&gt; &lt;span class="nx"&gt;BioContent&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="o"&gt;=&amp;gt;&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;Fragment&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;Words&lt;/span&gt; &lt;span class="nx"&gt;by&lt;/span&gt; &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;a&lt;/span&gt; &lt;span class="nx"&gt;href&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="s2"&gt;https://aisha.codes/&lt;/span&gt;&lt;span class="dl"&gt;"&lt;/span&gt;&lt;span class="o"&gt;&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;Aisha&lt;/span&gt; &lt;span class="nx"&gt;Blake&lt;/span&gt;&lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/a&amp;gt;&lt;/span&gt;&lt;span class="err"&gt;.
&lt;/span&gt;    &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="nx"&gt;br&lt;/span&gt; &lt;span class="o"&gt;/&amp;gt;&lt;/span&gt;
    &lt;span class="nx"&gt;I&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;m a speaker, teacher, and software engineer! I can&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="nx"&gt;t&lt;/span&gt; &lt;span class="nx"&gt;spell&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;
  &lt;span class="o"&gt;&amp;lt;&lt;/span&gt;&lt;span class="sr"&gt;/Fragment&lt;/span&gt;&lt;span class="err"&gt;&amp;gt;
&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;

&lt;span class="k"&gt;export&lt;/span&gt; &lt;span class="k"&gt;default&lt;/span&gt; &lt;span class="nx"&gt;BioContent&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  Customize data
&lt;/h3&gt;

&lt;p&gt;Add a &lt;code&gt;siteMetadata&lt;/code&gt; object to your &lt;code&gt;gatsby-config.js&lt;/code&gt;. The Gatsby blog theme is looking for certain data in certain places within that object. It should now looks something like this:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="nx"&gt;module&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;exports&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
    &lt;span class="na"&gt;siteMetadata&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
        &lt;span class="na"&gt;title&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Aisha Blake`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;author&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Aisha Blake`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;description&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Aisha Blake's personal site for Gatsby 101 at CodeLand`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;siteUrl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`https://gatsby-101-personal-site.netlify.app`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;alternateSite&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`https://aisha.codes`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="na"&gt;social&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`Twitter`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`https://twitter.com/AishaBlake`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
            &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`GitHub`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;url&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`https://github.com/AishaBlake`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="p"&gt;},&lt;/span&gt;
        &lt;span class="p"&gt;],&lt;/span&gt;
    &lt;span class="p"&gt;},&lt;/span&gt;
    &lt;span class="na"&gt;plugins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;[&lt;/span&gt;
        &lt;span class="s2"&gt;`gatsby-plugin-mdx`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
        &lt;span class="p"&gt;{&lt;/span&gt;
            &lt;span class="na"&gt;resolve&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`gatsby-theme-blog`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
            &lt;span class="na"&gt;options&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
                &lt;span class="na"&gt;basePath&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="s2"&gt;`/blog`&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
                &lt;span class="na"&gt;mdxOtherwiseConfigured&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="kc"&gt;true&lt;/span&gt;
            &lt;span class="p"&gt;}&lt;/span&gt;
        &lt;span class="p"&gt;}&lt;/span&gt;
    &lt;span class="p"&gt;]&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h2&gt;
  
  
  Add images
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm &lt;span class="nb"&gt;install &lt;/span&gt;gatsby-transformer-sharp gatsby-plugin-sharp gatsby-image
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



</description>
    </item>
    <item>
      <title>Moderating Discord Servers</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Wed, 15 Jul 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/aishablake/moderating-discord-servers-1i0f</link>
      <guid>https://dev.to/aishablake/moderating-discord-servers-1i0f</guid>
      <description>&lt;p&gt;In case you’re unfamiliar, &lt;a href="https://discord.com/new"&gt;Discord&lt;/a&gt; is a messaging app similar in many ways to Slack. It was originally created for gaming communities, its voice chat making it a great option for staying in sync during cooperative play.&lt;/p&gt;

&lt;p&gt;It’s also good for organizing conversations around specific topics or events!&lt;/p&gt;

&lt;h2&gt;
  
  
  Using Discord
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://womenofreact.com/"&gt;Women of React&lt;/a&gt; was my first online conference of 2020. The organizers (&lt;a href="https://twitter.com/rachelnabors"&gt;Rachel Nabors&lt;/a&gt;, &lt;a href="https://twitter.com/NikkitaFTW"&gt;Sara Vieira&lt;/a&gt;, &lt;a href="https://twitter.com/gurlcode"&gt;Jenn Creighton&lt;/a&gt;, and &lt;a href="https://twitter.com/_phzn"&gt;Kevin Lewis&lt;/a&gt;) used a combination of YouTube for streaming and Discord for community engagement which worked really well and allowed for a ton of customization. The video was public and anyone could watch live along with registered attendees. At the same time, only those registered attendees received an invitation to the Discord server.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;The added step of needing to sign up for the conference was likely a deterrent for trolls who would have seen an event by and for women in tech as a target.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Using Discord allowed us to set up custom mod commands, post to specific channels when certain events occurred, and generally gave us more control than many other platforms would have.&lt;/p&gt;

&lt;p&gt;Personally, I prefer Discord’s &lt;a href="https://discord.com/new/download"&gt;desktop application&lt;/a&gt; over the &lt;a href="https://discord.com/login"&gt;web app&lt;/a&gt;. Choose one or the other (or both!) and create your free server. You only need a name for it to get started.&lt;/p&gt;

&lt;h3&gt;
  
  
  Roles
&lt;/h3&gt;

&lt;p&gt;You can configure up to 250 different roles for members of your Discord server. I’d recommend keeping them to a minimum, though. Start with roles for organizers, speakers, and mods.&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/185d994251d376470af4cc40ba9b132f/ace41/discord-roles.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--B3aNpk2I--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/185d994251d376470af4cc40ba9b132f/b9e4f/discord-roles.png" alt="Discord roles settings" width="590" height="273"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Any organizers who will be involved in moderation or otherwise need administrative access to the Discord server can be given &lt;code&gt;Administrator&lt;/code&gt; permissions. If an organizer or any other staff member doesn’t need special permissions, don’t provide them. You can always add roles or take them away later.&lt;/p&gt;

&lt;p&gt;At a minimum, your &lt;code&gt;Mods&lt;/code&gt; role should have the following permissions:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Kick Members&lt;/li&gt;
&lt;li&gt;Ban Members&lt;/li&gt;
&lt;li&gt;Read Text Channels &amp;amp; See Voice Channels&lt;/li&gt;
&lt;li&gt;Send Messages&lt;/li&gt;
&lt;li&gt;Manage Messages&lt;/li&gt;
&lt;li&gt;Read Message History&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You can certainly include additional permissions depending on your specific community’s needs. Some (like “Change Nickname”) are totally unnecessary but can serve as a fun way to give volunteers a little extra freedom.&lt;/p&gt;

&lt;h3&gt;
  
  
  Channel permissions
&lt;/h3&gt;

&lt;p&gt;By default, everyone has the same basic permissions (write and read messages, etc.) when you create a new public channel. You can restrict access by making it a private channel.&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/13afc490b5806a297109f15516756dcc/73625/discord-create-private-channel.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--DJBUz3Qj--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/13afc490b5806a297109f15516756dcc/b9e4f/discord-create-private-channel.png" alt="Discord create text channel popup" width="590" height="356"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Create a channel specifically for conversations and notifications related to moderation. Use the roles you’ve created to set channel permissions.&lt;/p&gt;

&lt;p&gt;You can get pretty granular with these permissions, all the way down to determining who can use external emojis! As a general rule, give each person the lowest level of permissions they need to fulfill their role. Your mods don’t need to manage webhooks and most participants don’t need to use the &lt;code&gt;@everyone&lt;/code&gt; command.&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/302cd237baddc9772597ce93f0d35466/ec011/discord-private-channel-settings.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--NiY3M-ws--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/302cd237baddc9772597ce93f0d35466/b9e4f/discord-private-channel-settings.png" alt="Discord channel settings" width="590" height="274"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Welcome channel
&lt;/h3&gt;

&lt;p&gt;Add a channel purely to guide new members of your server. Post your code of conduct and any Discord-specific instructions to this channel and then lock it down. (In the channel’s settings, deny &lt;em&gt;everyone&lt;/em&gt; permission to write messages.) This way, everyone who joins the server will at least &lt;em&gt;see&lt;/em&gt; the information. Whether they’ll &lt;em&gt;read&lt;/em&gt; it is another story. 😅&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/1fe9fc96e8bf1025b91165d986df98d4/92c30/discord-welcome.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--672WNA6a--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/1fe9fc96e8bf1025b91165d986df98d4/b9e4f/discord-welcome.png" alt="Discord welcome channel: Welcome to Epsilonx2. This is the beginning of this server." width="590" height="203"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Make sure your welcome channel is at the top of your channel list! New members will be routed to whichever channel comes first. You can drag and drop to reorder your channels.&lt;/p&gt;

&lt;h2&gt;
  
  
  Installing Dyno Bot
&lt;/h2&gt;

&lt;p&gt;Now we get to the fun stuff! &lt;a href="https://dyno.gg/"&gt;Dyno&lt;/a&gt; is a customizable bot for managing Discord servers. Sign up with Discord and select the “Add to server” button. Choose the server you’d like to add the bot to and then confirm the list of permissions you’d like it to have. Not all of those permissions are necessary. Use your best judgment (you can probably uncheck “Speak”, for example) and make adjustments later if and when you need to.&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/8be1546e1b5355e02bd3b12a9e1eaefa/01a39/add-dyno.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--Il8aZucE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/8be1546e1b5355e02bd3b12a9e1eaefa/b9e4f/add-dyno.png" alt="Add to server prompt: Dyno wants access to your account. This will allow Dyno to access your username and avatar, know what servers you're in, but not read you a bedtime story. Add bot to: title of conf" width="590" height="308"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once that’s done, you’ll be redirected to your Dyno dashboard and you can begin customizing it to fit your needs. Direct your attention to the modules section. Hit “See All” or navigate to the modules section by selecting it from the navbar on the left.&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/7491254bca250e7272445f94f73ad991/079dc/dyno-dashboard.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--T-5nX8tP--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/7491254bca250e7272445f94f73ad991/b9e4f/dyno-dashboard.png" alt="Dyno dashboard" width="590" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Try not to get overwhelmed by all the options! For right now, focus on the Automod and Moderation modules.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring the Automod module
&lt;/h3&gt;

&lt;p&gt;Beginning with the Automod module, select “Settings”. First, create a new &lt;code&gt;mod-log&lt;/code&gt; channel in Discord and set that as your log channel. This way, you don’t have to sift through conversation to read your log. This can have the exact same permissions as the &lt;code&gt;mods&lt;/code&gt; channel you already created. From there, you can determine what should happen when each filter catches a message on your server. I suggest the following settings:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Banned Words: Delete, Warn&lt;/li&gt;
&lt;li&gt;All Caps: Warn&lt;/li&gt;
&lt;li&gt;Duplicate Text: Delete&lt;/li&gt;
&lt;li&gt;Mass Mentions: Delete, Warn, Auto Mute&lt;/li&gt;
&lt;li&gt;Link Cooldown: Warn&lt;/li&gt;
&lt;li&gt;Image Spam: Delete, Warn, Auto Mute&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;See how you do with these settings and adjust if you need to. Depending on the audience or the focus of your event, for example, you might choose to use the All Links filter to keep members from posting any links at all.&lt;/p&gt;

&lt;p&gt;You can adjust the limits that trigger these filters. Want to be a little more lax about emoji use? Try increasing the limit from the default four to whatever you think is reasonable. Maybe change the amount of time users who break the rules stay automuted. Setting these up now, &lt;em&gt;before&lt;/em&gt; things go wrong, will allow you more bandwidth to deal with more pressing issues that Automod might not catch during your event.&lt;/p&gt;

&lt;p&gt;To finish setting up the Automod module, list the channels and roles you’d like Automod to ignore. Generally, your rules should apply to everyone across all channels. If you need to relax individual rules for mods and/or staff, try adjusting the settings of the relevant filter individually. You can do so by clicking the gear icon next to the filter you’d like to adjust.&lt;/p&gt;

&lt;h3&gt;
  
  
  Configuring the Moderation module
&lt;/h3&gt;

&lt;p&gt;The Moderation module is a little more straightforward. First, check the settings you’d like to enable. I recommend checking the following options:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;DM users on kick/ban/mute&lt;/li&gt;
&lt;li&gt;Delete mod commands after executed&lt;/li&gt;
&lt;li&gt;Enable ban match command&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="///static/1cfb503f9c90a771d55485f1c58ae823/354b7/dyno-mod-settings.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--INme-srE--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/1cfb503f9c90a771d55485f1c58ae823/b9e4f/dyno-mod-settings.png" alt="Dyno Moderation module settings" width="590" height="325"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Sometimes moderators make mistakes. Whenever your moderators take any action, the reason for that action should be clearly logged. Your moderation log channel will automatically receive a list of mod actions. Use your &lt;code&gt;mod-log&lt;/code&gt; channel for this as well.&lt;/p&gt;

&lt;h3&gt;
  
  
  Writing custom commands
&lt;/h3&gt;

&lt;p&gt;Dyno Bot covers most of the operations you’re likely to need out of the box but it doesn’t provide a method for members of the server to report violations of the code of conduct from within Discord. Adding custom commands gives you more flexibility and control over your participants’ experience. The following sections show a few commands I recommend.&lt;/p&gt;

&lt;p&gt;When you’re ready, hit “Add Command” and fill in the form that pops up. Whatever you enter under “Command” will be what members will need to type, prefixed by a question mark, in order to use the command. The text under “Responses” detail what happens when the command is run. For more detailed documentation of the custom command syntax, check out &lt;a href="https://wiki.dyno.gg/modules/customcommands"&gt;Custom Commands on the Dyno wiki&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/b429324504d79ac937bee2adce0372b9/e95bd/dyno-add-command.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SZ6u2qDv--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/b429324504d79ac937bee2adce0372b9/b9e4f/dyno-add-command.png" alt="Dyno add command menu" width="590" height="494"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Report
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{delete}
{respond:#mods}
**TIME:** {date}, {time12} EST
**CHANNEL:** {channel}
**REPORTER:** {user.name}
**OFFENDER** : $1
**REASON:** $2+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Run this command with &lt;code&gt;?report [username][message]&lt;/code&gt;. The command will be deleted immediately and the response will be sent to the &lt;code&gt;mods&lt;/code&gt; channel. That response will contain the time the report was submitted, the username of the reporter, the username of the person they’re reporting, and a message. The &lt;code&gt;$1&lt;/code&gt; represents the first argument (or the first word that came after &lt;code&gt;?report&lt;/code&gt;) and the &lt;code&gt;$2+&lt;/code&gt; represents the second argument (or word) plus everything after that.&lt;/p&gt;

&lt;h4&gt;
  
  
  Anonymous Report
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{delete}
{respond:#mods}
**TIME:** {date}, {time12} EST
**CHANNEL:** {channel}
**OFFENDER** : $1
**REASON:** $2+
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;You &lt;em&gt;could&lt;/em&gt; call it a day and congratulate yourself on a job well done… or you could take one more step to give your participants the option to report code of conduct violations anonymously. Remove the &lt;code&gt;**REPORTER:** {user.name}&lt;/code&gt; line from the responses and you’ve got yourself an anonymous reporting system!&lt;/p&gt;

&lt;p&gt;There are a few issues with this method. Make sure to give the command a distinct name. If you find that you’re getting a lot of spam via the anonymous reporting command, you can always create a separate anonymous reports channel (the same way you created &lt;code&gt;mod-log&lt;/code&gt;) and send responses there.&lt;/p&gt;

&lt;h4&gt;
  
  
  Call mods
&lt;/h4&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;{delete}
{respond:#mods}
{&amp;amp;Mod}, {user.name} needs your attention in {channel}!
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The &lt;code&gt;?mods&lt;/code&gt; command is used as an alternative to calling publicly for moderator support, which could draw unwanted attention. It will also be deleted upon use but posts a message to the &lt;code&gt;mods&lt;/code&gt; channel. You can replace the third line with whatever you’d like to use as an alert for the moderation team.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;p&gt;Once you’ve got your server all set up, make sure your mods (and all your community members, really) understand the reporting process and know how to use your custom commands! For more tips on training moderators, see my post on &lt;a href="https://dev.to/aishablake/moderating-online-events-13nb"&gt;moderating online events&lt;/a&gt;.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Moderating Online Events</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Mon, 22 Jun 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/aishablake/moderating-online-events-13nb</link>
      <guid>https://dev.to/aishablake/moderating-online-events-13nb</guid>
      <description>&lt;p&gt;So you’ve decided to jump into the world of &lt;a href="https://dev.to/aishablake/running-online-tech-conferences-1013"&gt;running online tech conferences&lt;/a&gt;! It may not be what you’re used to, but there are tons of resources available to learn from. Most of my participation in online events up to this point has involved training and leading moderation teams, so I’d like to do my part and share what I know.&lt;/p&gt;

&lt;h2&gt;
  
  
  Online event safety
&lt;/h2&gt;

&lt;p&gt;The first thing you need to understand is that your community’s safety is as important now as it’s ever been. Just because you’re not meeting in meat space doesn’t mean your attendees are now magically safe from harm. You need to take steps to reduce harm &lt;em&gt;before&lt;/em&gt; it happens. That means having a comprehensive, enforceable code of conduct and a well-trained, properly supported moderation team.&lt;/p&gt;

&lt;h3&gt;
  
  
  Writing a code of conduct
&lt;/h3&gt;

&lt;p&gt;A code of conduct lays out the expectations for anyone involved in your event, clarifying the kinds of behavior that are or are not acceptable. The more detailed and thoughtful you are in crafting this document, the less confusion your attendees will need to deal with. Everyone who attends your event needs to agree to the code of conduct, which should include clear instructions for reporting violations.&lt;/p&gt;

&lt;p&gt;There’s no need to reinvent the wheel. Start with the &lt;a href="https://confcodeofconduct.com/"&gt;Conference Code of Conduct template&lt;/a&gt; and build from there. Get as specific as you can. If you have policies you want people to adhere to, spell them out. Now is not the time to rely on vague phrases like “Be kind.” Feel free to check out &lt;a href="https://womenofreact.com/code-of-conduct"&gt;Women of React’s code of conduct&lt;/a&gt; for an example in the wild.&lt;/p&gt;

&lt;p&gt;In addition to outlining proper &lt;em&gt;conduct&lt;/em&gt;, a code of conduct should do the following:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Explain exactly how participants should report violations (including an option to do so anonymously)&lt;/li&gt;
&lt;li&gt;Tell participants how they’ll be able to recognize event team members&lt;/li&gt;
&lt;li&gt;Hold team members to at least the same level of accountability as everyone else&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Choosing your moderators
&lt;/h3&gt;

&lt;p&gt;Your mods are your enforcers. The organizer(s) of an event can’t be everywhere at once. Delegate! Find trustworthy community members willing to pitch in. You may be accustomed to providing tickets and/or hotel rooms in exchange for “volunteer” work at in-person conferences. Especially if you’re making money, consider paying your moderators.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Want to hire me to train/lead your moderation team? &lt;a href="https://twitter.com/AishaBlake"&gt;Reach out via Twitter!&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Reach out to your community for volunteers but try to go beyond your own social circles and recruit a diverse team to minimize bias. You need to be able to trust your moderation team to uphold the safety of your online event. Ask for recommendations from other organizers. If you open an application process, ask for references.&lt;/p&gt;

&lt;p&gt;Recruit more mods than you think you need. Especially since this is an online event, some percentage of your volunteers will probably drop out at the last minute. Don’t take it personally if that happens, just prepare for the possibility. The number you actually need depends on the number of people chatting, the number of separate channels you set up, and the amount of time your event will be live.&lt;/p&gt;

&lt;h2&gt;
  
  
  Training moderators
&lt;/h2&gt;

&lt;p&gt;I love a good onboarding process! You could have 20 enthusiastic mods ready and rarin’ to go on the day of your online conference but… they won’t be very effective if they don’t know what tools they have available to them or how you’d like them to respond when issues arise.&lt;/p&gt;

&lt;p&gt;Prep your moderators and let them ask questions ahead of time. You may find that doing this exposes holes in your carefully laid plans. That’s great! Now you’ve got more time to fill them in.&lt;/p&gt;

&lt;h3&gt;
  
  
  Writing a mod manual
&lt;/h3&gt;

&lt;p&gt;Writing a &lt;a href="https://dev.to/aishablake/the-moderator-manual-ijh"&gt;moderator manual&lt;/a&gt; for your mod team not only gives &lt;em&gt;them&lt;/em&gt; a reliable point of reference but it also forces &lt;em&gt;you&lt;/em&gt; to articulate how you want them to take care of your community.&lt;/p&gt;

&lt;p&gt;This can be a living document! Just make sure you’re proactive in communicating with your mods as you make changes.&lt;/p&gt;

&lt;h3&gt;
  
  
  Live moderator training
&lt;/h3&gt;

&lt;p&gt;Sharing your plans is important but getting the moderators together to talk and ask questions and even to practice exercising their mod powers..? Next level. Hop on a video call and give a brief demo showing how to use the platform. Walk through everything the mods might have to do, let them practice muting, locking down channels, whatever you’ve given them access to.&lt;/p&gt;

&lt;p&gt;Walk your mods through a few different scenarios. What should they do if you get a report about someone who’s threatened a community member in the past? What’s the procedure if someone drops the n-word in chat? Figure that stuff out now while everyone is relatively calm.&lt;/p&gt;

&lt;p&gt;Provide your mods with some canned replies that they can use if a community member confronts them about an action they’ve taken. (You can also include this in your moderator manual!)&lt;/p&gt;

&lt;h2&gt;
  
  
  Selecting a community forum
&lt;/h2&gt;

&lt;p&gt;You’ll need to weigh your own priorities and skills against the various offerings out there. Each has its own set of baked in (and sometimes third-party, supplemental) moderation tools. No matter what you choose, you always have the option of incorporating Discord as a space for rich, ongoing communication while relying on a separate platform for broadcasting.&lt;/p&gt;

&lt;h3&gt;
  
  
  Discord
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://womenofreact.com"&gt;Women of React&lt;/a&gt; used YouTube to stream the entire conference. However, the organizers disabled comments in YouTube and focused all the discussion in Discord. Since invitation to the Discord server was restricted, this kept the content widely accessible while increasing attendees’ safety. You can also &lt;a href="https://www.youtube.com/watch?v=r26XzJ6fpaI"&gt;stream directly to your Discord server&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;See my post on &lt;a href="https://dev.to/aishablake/moderating-discord-servers-1i0f"&gt;moderating Discord servers&lt;/a&gt; for a detailed guide on setting your moderators up for success with &lt;a href="https://discord.com/new"&gt;Discord&lt;/a&gt; and &lt;a href="https://dyno.gg/"&gt;Dyno Bot&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  YouTube
&lt;/h3&gt;

&lt;p&gt;You can also opt to keep both the stream and the conversation in one place using YouTube’s live chat feature, assigning moderators at the channel level. This means that moderators have permission to moderate all of your live streams, not just a particular event, so make sure you remove mod permissions as needed when your event is finished! Moderators can remove comments as well as flag, hide, and mute participants.&lt;/p&gt;

&lt;p&gt;For more information, see &lt;a href="https://support.google.com/youtube/answer/9826490?hl=en&amp;amp;ref_topic=9257984"&gt;Google’s docs on moderating live chat&lt;/a&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Twitch
&lt;/h3&gt;

&lt;p&gt;The team behind the &lt;a href="https://www.twitch.tv/collections/HZM7vo80GBb0NA"&gt;BlackGirlGamers Summit&lt;/a&gt; relied on Twitch to broadcast the even, which made sense given the organization’s focus on gaming and large existing audience on that platform. Moderators are an essential part of Twitch culture and they have some basic capabilities at their disposal out of the box. (Twitch has more info on &lt;a href="https://help.twitch.tv/s/article/Managing-Roles-for-your-Channel?language=en_US"&gt;managing roles for your channel&lt;/a&gt;.) By default, your moderator(s) can change the chat mode as well as ban or timeout participants.&lt;/p&gt;

&lt;p&gt;That said, regular streamers tends to use bots to augment the basic moderation tools. (&lt;a href="https://nightbot.tv/"&gt;Nightbot&lt;/a&gt; is one very popular example.) You can apply more nuanced permissions to different members of your community, set up custom commands, even set messages to post at specific intervals. This kind of setup makes more sense if you’re building a community over time versus planning for a one-time event.&lt;/p&gt;

&lt;p&gt;Twitch has a number of &lt;a href="https://help.twitch.tv/s/topic/0TO3a000000Yu88GAC/channel-moderation?language=en_US"&gt;articles on channel moderation&lt;/a&gt; to help you consider all your options.&lt;/p&gt;

&lt;h3&gt;
  
  
  Vito
&lt;/h3&gt;

&lt;p&gt;Vito is a brand new broadcasting tool developed by the folks behind the ticketing service &lt;a href="https://ti.to/home"&gt;Tito&lt;/a&gt;. I was first introduced to the platform while leading the moderation team for Kim Crayton’s &lt;a href="https://ti.to/kim.crayton.llc/introduction-to-being-an-antiracist/en"&gt;Introduction to Being an Antiracist&lt;/a&gt; workshop. The team has been super responsive to feedback so far, even adding moderation features in the week leading up the event.&lt;/p&gt;

&lt;h3&gt;
  
  
  Self-hosted
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://juneteenthconf.com/"&gt;JuneteenthConf&lt;/a&gt; and several other events have hosted their live streams on their own sites. You have complete control in this case. Mix and match whatever tools you’d like. Include a chat option or not. You can &lt;a href="https://www.youtube.com/channel/UCbbgMoZpzSPu6nv1yysylHw/videos"&gt;watch the recordings on YouTube&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next steps
&lt;/h2&gt;

&lt;p&gt;Check out &lt;a href="https://dev.to/aishablake/moderating-discord-servers-1i0f"&gt;Moderating Discord Servers&lt;/a&gt; for a more detailed look at that workflow. You can also &lt;a href="https://twitter.com/AishaBlake"&gt;reach out via Twitter&lt;/a&gt; for help training your mod team.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>Running Online Tech Conferences</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Thu, 07 May 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/aishablake/running-online-tech-conferences-1013</link>
      <guid>https://dev.to/aishablake/running-online-tech-conferences-1013</guid>
      <description>&lt;p&gt;Today should have been an absolutely joyous day for me. Today should have been full of music and laughter and spectacle. Today should have been the day the curtain rose on &lt;a href="https://dev.to/aishablake/announcing-title-of-conf-29nb"&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;For some of us, tech conferences serve the purpose of not only providing a venue for learning and sharing new information but for making new human connections as well. They’re a place to renew old friendships and forge new ones, scout out potential employers, and explore corners of the industry we don’t get a chance to play in during the workweek.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This year, amidst rolling waves of tragedy, there’s no safe way to hold the in-person industry events we love.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;That means we need to rely on online (or remote) events, which come with their own benefits and challenges! They’re all we have right now but there’s an argument for continuing to support online events into the future. Typically, the cost of putting on a remote event will be considerably lower than its (rough) in-person equivalent. In addition to being accessible to anyone with an internet connection (a barrier in itself), online events pass those savings on to attendees.&lt;/p&gt;

&lt;p&gt;Of course, travel would be restricted this year whether we forged ahead with our online conferences or not, but no more in-person conferences means no more conference travel. The time and money that went into shuffling through airports and booking fancy hotel rooms to nap in can be redirected elsewhere. Things were getting so out of hand that I’d noticed some folks stop attending events outside their local area entirely and some conferences begin attempting to offset their carbon footprint.&lt;/p&gt;

&lt;p&gt;But it’s a bit of a balancing act. There are still marketing and production costs to be paid and yet attendees seem to expect online-only content to be free. Some speakers may need equipment or training in order to deliver a solid performance. Not everyone who can deliver a stirring keynote to a live audience knows how to elicit the same feelings in their viewers through the lens of a camera.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;This post is a detailed look at my thoughts on running an online tech conference.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;I’ll keep it updated as I learn new things and my opinions change. I’ll also use this as a kind of hub for any related blog posts that I write!&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Not sure where to start as an online conference organizer? Kevin Lewis gave a wonderful presentation called &lt;a href="https://www.youtube.com/watch?v=56rvtjZ9x3g"&gt;“So you want to run an online event”&lt;/a&gt; for DevRelCon Earth 2020.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Accessibility
&lt;/h2&gt;

&lt;p&gt;Any conference site you create should be designed, built, and tested for accessibility, just like any other. You’ll also need to audit whatever platform you choose to broadcast the event. There are a few additional considerations to take into account.&lt;/p&gt;

&lt;h3&gt;
  
  
  Captions
&lt;/h3&gt;

&lt;p&gt;Providing captions for your video content is absolutely essential. The best option is to contract with a professional live captioning service. You’ll get the best quality captions from humans listening to each speaker as opposed to automated captions which rely on everyone enunciating very clearly. Even with everyone doing their best, automated captioning tools simply might not recognize every word your speakers say.&lt;/p&gt;

&lt;p&gt;Reach out to &lt;a href="https://whitecoatcaptioning.com/"&gt;White Coat Captioning&lt;/a&gt; to arrange captioning services.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Share your favorite service providers with me on &lt;a href="https://twitter.com/AishaBlake"&gt;Twitter&lt;/a&gt;. I’d love to add more options to this post!&lt;/p&gt;
&lt;/blockquote&gt;

</description>
    </item>
    <item>
      <title>Build and Publish a Blog with Gatsby and Netlify</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Mon, 16 Mar 2020 00:00:00 +0000</pubDate>
      <link>https://dev.to/aishablake/build-and-publish-a-blog-with-gatsby-and-netlify-6al</link>
      <guid>https://dev.to/aishablake/build-and-publish-a-blog-with-gatsby-and-netlify-6al</guid>
      <description>&lt;p&gt;Teaching is one of the &lt;em&gt;best&lt;/em&gt; ways to solidify your own knowledge. Blogging has a relatively low barrier to entry for folks who want to start sharing what they know, so it’s a great place to start even if you’re early on in your career or feel like you’re too green. You have something unique to share, regardless of how many years you’ve been practicing!&lt;/p&gt;

&lt;h2&gt;
  
  
  The Plan
&lt;/h2&gt;

&lt;p&gt;The idea here is to pull some common threads together into one. You’ll not only create a Gatsby blog but you’ll &lt;em&gt;publish&lt;/em&gt; one complete with your first post, which you’ll then share with the world! In this tutorial, you’ll:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Decide what you want to write about&lt;/li&gt;
&lt;li&gt;Create a new Gatsby site&lt;/li&gt;
&lt;li&gt;Publish your new site on Netlify&lt;/li&gt;
&lt;li&gt;Register a domain&lt;/li&gt;
&lt;li&gt;Point your custom domain to Netlify&lt;/li&gt;
&lt;li&gt;Customize links to your posts on social media&lt;/li&gt;
&lt;li&gt;Publish to dev.to from your RSS feed&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Why Gatsby?
&lt;/h2&gt;

&lt;p&gt;I built my &lt;a href="https://aisha.codes/"&gt;new blog&lt;/a&gt; as a Gatsby site because I wanted to try Gatsby out. I knew that some really excellent people (including &lt;a href="https://twitter.com/marisamorby"&gt;Marisa Morby&lt;/a&gt;, &lt;a href="https://twitter.com/marcysutton"&gt;Marcy Sutton&lt;/a&gt;, and &lt;a href="https://twitter.com/jlengstorf"&gt;Jason Lengstorf&lt;/a&gt;) worked there, which gave me confidence in the tool before ever touching any code.&lt;/p&gt;

&lt;p&gt;Once I got started, I understood more of the hype I’d heard about the developer experience. Gatsby tries to make it easier for developers to make fast, accessible, performant sites. Since trying it, I’ve spun up a ton of little sites to try stuff out and even launched a couple (like &lt;a href="https://www.titleofconf.org/"&gt;titleofconf.org&lt;/a&gt;). Gatsby has made my side projects so much fun! 💖&lt;/p&gt;

&lt;p&gt;A blog seems to be many folks’ first foray into Gatsby. In hard times, it’s even more important for people to have an outlet for reflection that works for them. A blog can be a great vehicle for that reflection as well as an approachable introduction to a given framework.&lt;/p&gt;

&lt;h2&gt;
  
  
  Before You Begin Blogging
&lt;/h2&gt;

&lt;p&gt;Perhaps you can relate: I get caught up in analysis paralysis &lt;em&gt;all the time&lt;/em&gt; and end up not writing anything. Try to work towards a clear vision of your blog’s purpose but don’t let a lack of one stop you from building it in the first place. This should help you focus your writing and, importantly, give you a stopping point. You can’t be all things to all people and neither can your blog.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Think about &lt;em&gt;why&lt;/em&gt; you’re writing, &lt;em&gt;what&lt;/em&gt; you’re writing, and &lt;em&gt;who&lt;/em&gt; you’re writing for.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twitter.com/radiomorillo"&gt;Stephanie Morillo&lt;/a&gt;’s book &lt;a href="https://www.developersguidetocontent.com/"&gt;“The Developer’s Guide to Content Creation”&lt;/a&gt; is magic and you should buy it. A master of content marketing, Stephanie breaks down a wonderfully approachable process for developing and publishing content. I highly recommend it, especially if you find yourself overwhelmed by the prospect of sharing your work publicly.&lt;/p&gt;

&lt;h3&gt;
  
  
  Perfect is the Enemy
&lt;/h3&gt;

&lt;p&gt;For the purposes of this exercise, you don’t have time to waffle about what you’re going to create. Instead, I’m going to tell you what and how to write and you’re going to do it &lt;em&gt;in fifteen minutes or less&lt;/em&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Clear away as many distractions as possible.&lt;/strong&gt; Close all your tabs, ask your partner to watch the kids, lock the door, turn on Do Not Disturb, whatever you have to do.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Start a timer for ten minutes.&lt;/strong&gt; And no cheating! You’re sticking to this ten-minute limit so that you don’t lose steam.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write down the last thing you learned.&lt;/strong&gt; Hopefully, this wasn’t a terribly long time ago. This needn’t be a technical topic but it should be some kind of skill. Maybe you learned to cook a new recipe, drive a car, or read a new set of words in Portuguese.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Write as much as you can about that thing without stopping&lt;/strong&gt; until the timer runs out. Try to keep jotting down everything you think of in those ten minutes. What prompted you to learn this thing? What was your process like? What have you done with your new skill(s) so far? What resources did you find most useful?&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Edit your post for five minutes.&lt;/strong&gt; Break things out into separate paragraphs, add headings, check spelling and grammar, and round out your last couple of thoughts. You’ve only got five minutes, so make it quick!&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;You did it! Now you have a post that can provide some value to your future readers to include in your blog. It’s probably a little messy but that’s okay. You can always go back and make edits later (&lt;em&gt;after&lt;/em&gt; you publish this).&lt;/p&gt;

&lt;h3&gt;
  
  
  Collect Your Tools
&lt;/h3&gt;

&lt;p&gt;Once you’ve got some idea of where you want to take this blog, even if that idea is a little loose, you’re ready to get started! I’m making some assumptions about what you already know in this post. You’ll need to use:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;a text editor&lt;/li&gt;
&lt;li&gt;the command line&lt;/li&gt;
&lt;li&gt;Git&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;As long as you know what these things are, you should be able to follow along. If you’re not sure where to begin or what I’m talking about, you may want a little background first. Gatsby has a super &lt;a href="https://www.gatsbyjs.org/tutorial/part-zero/"&gt;in-depth tutorial&lt;/a&gt; that will get you up and running from Step 0.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Make sure you’ve installed the Gatsby command line interface (CLI).&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;You can do so with &lt;code&gt;npm install -g gatsby-cli&lt;/code&gt;. This will allow you to run Gatsby commands in your terminal from anywhere in your folder structure.&lt;/p&gt;

&lt;p&gt;You’re also going to need to create accounts on &lt;a href="https://www.github.com/"&gt;GitHub&lt;/a&gt; and &lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt; if you don’t already have them, but those will be covered in more detail later.&lt;/p&gt;

&lt;h2&gt;
  
  
  Choosing a starter
&lt;/h2&gt;

&lt;p&gt;A starter is a fully functional Gatsby site that’s made to be copied. You can use one to (you guessed it) &lt;em&gt;start&lt;/em&gt; your own Gatsby project. I used &lt;a href="https://www.gatsbyjs.org/starters/gatsbyjs/gatsby-starter-blog/"&gt;&lt;code&gt;gatsby-starter-blog&lt;/code&gt;&lt;/a&gt; as the basis for mine. Once you’ve cloned a starter, that’s it. It totally separate from its source and won’t be updated unless &lt;em&gt;you&lt;/em&gt; update it.&lt;/p&gt;

&lt;h3&gt;
  
  
  The Starter Library
&lt;/h3&gt;

&lt;p&gt;You can explore your options in Gatsby’s &lt;a href="https://www.gatsbyjs.org/starters/?v=2"&gt;starter library&lt;/a&gt;. If you’re already using a particular content management system (CMS) like Contentful or WordPress, you may want to begin with a starter built to use that CMS as a data source.&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/2f29f2073be4254f0e101dbab4332cba/079dc/starter-blog-filter.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rtohdkgX--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/2f29f2073be4254f0e101dbab4332cba/b9e4f/starter-blog-filter.png" alt="Gatsby starter library with the blog filter enabled" width="590" height="369"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Using the Official Blog Starter
&lt;/h2&gt;

&lt;p&gt;This tutorial uses the official blog starter but you can substitute whichever starter you’d like. To do so, replace the following GitHub URL with that of the starter you’ve chosen. Open up your terminal and run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;gatsby new my-blog https://github.com/gatsbyjs/gatsby-starter-blog
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;After a few moments, you should end up with a new directory (folder) called &lt;code&gt;my-blog&lt;/code&gt;. That directory will be the root of your blog, so open it up in your text editor of choice. You don’t have to do anything at all to this code! Run &lt;code&gt;gatsby develop&lt;/code&gt; in your shiny new root directory and then navigate to &lt;a href="http://localhost:8000"&gt;http://localhost:8000&lt;/a&gt; to see it running in the browser.&lt;/p&gt;

&lt;p&gt;Since this is a &lt;em&gt;blog&lt;/em&gt; starter, a few things have already been done for you. You’ll find a &lt;code&gt;content&lt;/code&gt; folder in the root of your project. As you might imagine, this is where your content goes. You’ve even got a few fake blog posts in there to demonstrate how to add your own posts. Each is contained in a &lt;a href="https://www.gatsbyjs.org/docs/glossary/markdown/"&gt;Markdown&lt;/a&gt; (.md) file.&lt;/p&gt;

&lt;h3&gt;
  
  
  Editing the Starter
&lt;/h3&gt;

&lt;p&gt;You’ll also want to customize the metadata contained in &lt;code&gt;gatsby-config.js&lt;/code&gt; with your own information. You’re not limited to these fields. The &lt;a href="https://www.gatsbyjs.org/docs/gatsby-config/#sitemetadata"&gt;&lt;code&gt;siteMetadata&lt;/code&gt;&lt;/a&gt; object is yours to play with, so feel free to add whatever information you think is relevant to your entire site.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  siteMetadata: {
    title: `My Even Newer Blog`,
    author: {
      name: `Aisha Blake`,
      summary: `who lives and works in Detroit singing and petting dogs.`,
    },
    description: `A blog covering JavaScript, web accessibility, speaking, and building teams in the tech industry.`,
    siteUrl: `https://aisha.codes`,
    social: {
      twitter: `AishaBlake`,
    },
  },
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;If you check back in on the browser at this point, you’ll notice that something is still not quite right. Your name and bio are there on the front page and that Twitter link might point to the right place but Kyle’s photo is still up there and, regardless of your actual gender, the tagline includes the phrase “You should follow &lt;em&gt;him&lt;/em&gt; on Twitter.”&lt;/p&gt;

&lt;p&gt;To fix &lt;em&gt;that&lt;/em&gt;, you’ll need to:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Replace the avatar image.&lt;/li&gt;
&lt;li&gt;If you don’t use “he”, swap in the appropriate pronoun. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The avatar image is located at &lt;code&gt;content/assets/profile-pic.jpg&lt;/code&gt;. You can get rid of the existing image entirely. Include a photo of you at the same location and you’ll be all set!&lt;/p&gt;

&lt;p&gt;The bio is at &lt;code&gt;src/components/bio.js&lt;/code&gt;. Near the bottom of that file, you’ll find the Twitter link. Change that text to whatever you’d like. Mine is “Say hi on Twitter!” For more guidance, check out the Gatsby docs page on &lt;a href="https://www.gatsbyjs.org/docs/modifying-a-starter/"&gt;modifying a starter&lt;/a&gt;. (I wrote it while interviewing for my role at Gatsby. 😄)&lt;/p&gt;

&lt;h3&gt;
  
  
  Adding Your First Post
&lt;/h3&gt;

&lt;p&gt;Even if you’re not using the official starter, you likely have at least one sample blog post already. This is about you, so you’re going to replace any sample content with &lt;em&gt;your&lt;/em&gt; content. Remember the 15-minute post about the last thing you learned? Now is its time to shine! &lt;code&gt;gatsby-starter-blog&lt;/code&gt; puts blog posts in &lt;code&gt;content/blog/&lt;/code&gt;, so you can get rid of anything else in there. Create a folder and name it with the slug you want your post to have. Inside the folder, create a file named &lt;code&gt;index.md&lt;/code&gt;. If you want to include images in your blog post, create a folder for that inside your post folder. It’s not strictly necessary, but it helps keeps things organized.&lt;/p&gt;

&lt;p&gt;For example, I want this post to be available at &lt;a href="https://aisha.codes/build-and-publish-a-blog/"&gt;aisha.codes/build-and-publish-a-blog/&lt;/a&gt;, so I need to name the folder it’s in &lt;code&gt;build-and-publish-a-blog&lt;/code&gt;. The Markdown file inside is named &lt;code&gt;index.md&lt;/code&gt;. I also have a folder that will contain any images used in this post.&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/afac0d61497c5bfab31fd02dc2834c82/be82e/folder-structure.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1dF9kPYY--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/afac0d61497c5bfab31fd02dc2834c82/b9e4f/folder-structure.png" alt="Create new blog posts at content &amp;gt; blog &amp;gt; and then a file or folder named with the slug you want for your post" width="590" height="239"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once you’ve done this, you should be able to see your new post. The official starter will display an entry for the new post on the front page of your blog. You should also be able to access it at &lt;code&gt;localhost:8000/your-file-name&lt;/code&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Deploying with GitHub and Netlify
&lt;/h2&gt;

&lt;p&gt;At this point, you’ve got something to show for all your hard work but it only exists on your own computer. In order to show the rest of the world, you’ll need to &lt;em&gt;host&lt;/em&gt; this site somewhere else. Next, you’ll host your code on GitHub and use &lt;a href="https://www.netlify.com/"&gt;Netlify&lt;/a&gt; to deploy it.&lt;/p&gt;

&lt;p&gt;Use your GitHub account to sign up for Netlify (since you’re going to end up connecting these two accounts anyway). Once you’re logged in, you should be dropped into the “Sites” page. Take a moment now to push whatever you have so far to a remote repository. You can skip the following section if you already know how to do so.&lt;/p&gt;

&lt;h3&gt;
  
  
  Pushing to GitHub
&lt;/h3&gt;

&lt;p&gt;In the root of your project, run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git init
git add .
git commit -m "Start my new blog"
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Then, on GitHub, &lt;a href="https://github.com/new"&gt;create a new repository&lt;/a&gt; (or project). I’d recommend naming it whatever you named your local root directory to reduce confusion. Future you will thank you! Don’t worry about any of the other options for now. Give it a name and hit “Create repository”.&lt;/p&gt;

&lt;p&gt;Whenever you create a new repository on GitHub like this, you’re presented with four options. In this case, you want to “push an existing repository from the command line” since you ran &lt;code&gt;git init&lt;/code&gt; earlier. Go ahead and copy the two commands under that heading and paste them into your terminal.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;git remote add origin git@github.com:your-GitHub-username/your-repo-name.git
git push -u origin master
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The first command connects the remote repository at the link provided to your local one and names that remote repo “origin”. The second command pushes your changes to origin’s master branch. &lt;code&gt;-u&lt;/code&gt; is short for &lt;code&gt;--set-upstream&lt;/code&gt; and including it means that, in the future, you’ll be able to push changes from your local &lt;code&gt;master&lt;/code&gt; branch to origin’s by running the shorter command &lt;code&gt;git push&lt;/code&gt;.&lt;/p&gt;

&lt;h3&gt;
  
  
  Connecting Your Repo
&lt;/h3&gt;

&lt;p&gt;Over to Netlify! From the “Sites” page, select “New Site from Git” to get started. You’ll be presented with a few providers. If you followed along with the previous section, you’ll need to choose GitHub. Once that’s done, you’ll need to install and configure the Netlify app to work with your GitHub account. You can give Netlify access to all repositories owned by that account or only select repositories. It’s entirely up to you.&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/48fd74eb29bba2987332b4904ed951b6/bb319/install-netlify.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--SbSBrAot--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/48fd74eb29bba2987332b4904ed951b6/b9e4f/install-netlify.png" alt="Install and/or configure Netlify for the GitHub account or organization of your choice" width="590" height="359"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The next step is to set your build options and deploy! This should already be prepped for you. Unless you’d like to use a branch other than &lt;code&gt;master&lt;/code&gt; to kick off automatic deploys, all that’s really left to do is hit “Deploy site”. Note that Netlify has already detected the fact that this is a Gatsby site and knows the commands it will need to run to build your project.&lt;/p&gt;

&lt;p&gt;You should see that your site is building. Once it’s finished, the deploy will be marked “Published” on your dashboard. You (and everyone else) will be able to see the live site at some randomly generated, likely whimsical URL.&lt;/p&gt;

&lt;h2&gt;
  
  
  Setting Up a Custom Domain
&lt;/h2&gt;

&lt;p&gt;That whimsical domain is probably not where you want to send your readers, potential employers, or anyone else. Netlify will help you get set up with a shiny new custom domain.&lt;/p&gt;

&lt;p&gt;If you already have one, that’s awesome! You’ll need to point it to the code you just hosted on Netlify. The specifics of &lt;em&gt;how&lt;/em&gt; to do that will vary slightly and depend on the registrar you went with. Try googling something like ”[registrar] netlify custom domain” to find instructions for your situation. For more information, check out &lt;a href="https://docs.netlify.com/domains-https/custom-domains/#assign-a-domain-to-a-site"&gt;Netlify’s guide on assigning a domain to a site&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Paying for your domain through Netlify is a little more straightforward. They’ll take care of any necessary provisioning for you!&lt;/p&gt;

&lt;p&gt;If you still have the “Getting started” prompt, you can select the “Set up a custom domain” option from there. Either way, you can also go to Settings &amp;gt; Domain management &amp;gt; Domains &amp;gt; Custom domains. Input the domain you’d like to use and hit “Verify”. If the domain is taken, you’ll be prompted to indicate whether or not it’s yours. If it isn’t taken, you’ll be prompted to add a payment method and register it through Netlify.&lt;/p&gt;

&lt;h3&gt;
  
  
  Choosing Your Domain Name
&lt;/h3&gt;

&lt;p&gt;This is the part where I tend to have a little &lt;em&gt;too&lt;/em&gt; much fun. You only need one domain. Try using your full name. The cost of registering your domain name will vary, partly depending on the top-level domain (TLD) you choose. For example, aishablake.com was the first domain I ever registered. I’ve also seen folks use .dev and .codes for tech-related sites. Whatever the cost, you’ll typically be charged yearly.&lt;/p&gt;

&lt;p&gt;I have a habit of buying domain names and then not using them. I highly recommend at least &lt;em&gt;starting&lt;/em&gt; with just one that you intend to use immediately but it’s your life and you should do what you want. If you have a little extra money, you may want to consider getting [your first name][your last name].com, even if you don’t want it for this blog, if it’s available.&lt;/p&gt;

&lt;h2&gt;
  
  
  Publishing to DEV
&lt;/h2&gt;

&lt;p&gt;Once you’re all paid up and your domain is all hooked up, you &lt;em&gt;could&lt;/em&gt; stop there. You have a blog live at your own custom domain and you can update that blog anytime you’d like by pushing to &lt;code&gt;master&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Chances are, unless you’ve already built up an audience elsewhere, very few people will stumble across your blog organically. You can improve your search engine optimization (SEO) game but that takes time and it takes &lt;em&gt;content&lt;/em&gt;. Your lone blog post, no matter how wonderful, will probably not draw readers in all by itself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Sharing your work can attract feedback and questions, which in turn help you plot your own course.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://dev.to/"&gt;DEV Community&lt;/a&gt; is a blogging platform catering to tech professionals and hobbyists. The DEV team does a fantastic job of fostering community and actively promotes useful content. Once you have an account, navigate to Settings &amp;gt; Publishing from RSS to configure your DEV account to &lt;a href="https://dev.to/settings/publishing-from-rss"&gt;fetch posts from your blog&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;a href="///static/ebc6b3771934b082cf160ddc4395d8ac/da6b3/feed-settings.png"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--2NBMumAL--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://aisha.codes/static/ebc6b3771934b082cf160ddc4395d8ac/b9e4f/feed-settings.png" alt="RSS feed settings, which allow you to set your RSS feed URL, whether you want to mark the RSS source as canonical URL by default, and whether DEV should replace self-referential links with DEV-specific links" width="590" height="263"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Since you’re using the Gatsby blog starter, you’ve already got an RSS feed out of the box. You’ll give DEV your own domain plus &lt;code&gt;/rss.xml&lt;/code&gt;. Check the boxes for marking the RSS source as the canonical URL by default and for replacing self-referential links with DEV-specific links.&lt;/p&gt;

&lt;p&gt;The first box will mark &lt;em&gt;your&lt;/em&gt; site as the &lt;a href="https://moz.com/learn/seo/canonicalization"&gt;canonical&lt;/a&gt; source, so search engines like Google will recognize that they should send people there when your content comes up as a search result. When you publish on both your own site and DEV or any other platform, you create duplicate content. In the absence of a canonical link, having duplicate content can make it more difficult for people to find your work via search engines.&lt;/p&gt;

&lt;p&gt;The second box will let DEV know you want any self-referential (or relative) links converted to DEV-specific ones. If you’re planning to pull in a bunch of posts that link to each other, this is a good option. Checking this box will allow you to avoid manually updating each relative link in every post.&lt;/p&gt;

&lt;h2&gt;
  
  
  Next Steps
&lt;/h2&gt;

&lt;p&gt;You did it! You have accomplished so much in walking through this tutorial. To recap:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;You wrote your first blog post.&lt;/li&gt;
&lt;li&gt;You built a blog with Gatsby.&lt;/li&gt;
&lt;li&gt;You deployed that blog to Netlify.&lt;/li&gt;
&lt;li&gt;You pointed a custom domain to your blog.&lt;/li&gt;
&lt;li&gt;You shared your work on DEV.&lt;/li&gt;
&lt;li&gt;You improved your blog’s SEO.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;There are tons of features and optimizations you can add if you so choose. Perhaps you want to &lt;a href="https://www.gatsbyjs.org/tutorial/seo-and-social-sharing-cards-tutorial/#implementing-social-seo"&gt;incorporate social media cards&lt;/a&gt; or &lt;a href="https://www.gatsbyjs.org/packages/gatsby-remark-reading-time/"&gt;add a reading time estimate&lt;/a&gt; to each post. Get creative with it! And please, be sure to let me know if you use this tutorial to publish your own blog. I’d love to read it. 😄&lt;/p&gt;

</description>
      <category>blogging</category>
      <category>gatsby</category>
      <category>beginners</category>
      <category>jamstack</category>
    </item>
    <item>
      <title>Sponsor Me</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Thu, 19 Dec 2019 00:35:46 +0000</pubDate>
      <link>https://dev.to/aishablake/sponsor-me-3jkk</link>
      <guid>https://dev.to/aishablake/sponsor-me-3jkk</guid>
      <description>&lt;p&gt;To the tune of &lt;a href="https://www.youtube.com/watch?v=JgVnpMkXOas"&gt;Grow For Me&lt;/a&gt; from Little Shop of Horrors:&lt;/p&gt;

&lt;p&gt;I will give you dope rhymes&lt;br&gt;
I will give you plays&lt;br&gt;
I’ll ask you for something:&lt;br&gt;
To fund my main stage!&lt;br&gt;
I'm beggin' you sweetly.&lt;br&gt;
I'm down on my knees.&lt;br&gt;
Oh, please sponsor meeeee!&lt;/p&gt;

&lt;p&gt;I will give you brain food,&lt;br&gt;
Some lessons to learn.&lt;br&gt;
I’ll teach you what you need&lt;br&gt;
To increase what you earn!&lt;br&gt;
I’d like some live captions&lt;br&gt;
Some coffee and tea,&lt;br&gt;
So please sponsor me!&lt;/p&gt;

&lt;p&gt;I want to have free childcare onsite&lt;br&gt;
For parents to share.&lt;br&gt;
And an afterparty&lt;br&gt;
That goes all night,&lt;br&gt;
All are welcome there!&lt;br&gt;
I want to record all the sessions&lt;br&gt;
From open to end.&lt;br&gt;
Plus mentoring, quiet rooms,&lt;br&gt;
Pronoun pins, catering&lt;br&gt;
For everyone who attends!&lt;/p&gt;

&lt;p&gt;I’ve got a great venue&lt;br&gt;
The team’s picked a day&lt;br&gt;
But nothing will happen&lt;br&gt;
Unless they can paaaaaaay!&lt;br&gt;
I’ll grab you a table.&lt;br&gt;
A sign will decree&lt;br&gt;
That your company’s... sponsored me!&lt;/p&gt;

&lt;p&gt;&lt;em&gt;I had a lot of fun writing this. If you or your company is interested in supporting &lt;a href="https://www.titleofconf.org"&gt;&amp;lt;title of conf&amp;gt;&lt;/a&gt;, please check out &lt;a href="https://www.titleofconf.org/sponsor/"&gt;titleofconf.org/sponsor&lt;/a&gt; or get in touch with me directly!&lt;/em&gt;&lt;/p&gt;

</description>
      <category>devrel</category>
      <category>conferences</category>
    </item>
    <item>
      <title>Getting Paid as a Speaker</title>
      <dc:creator>Aisha Blake</dc:creator>
      <pubDate>Thu, 29 Aug 2019 00:00:00 +0000</pubDate>
      <link>https://dev.to/aishablake/getting-paid-as-a-speaker-3epi</link>
      <guid>https://dev.to/aishablake/getting-paid-as-a-speaker-3epi</guid>
      <description>&lt;p&gt;This post is adapted from a &lt;a href="https://twitter.com/AishaBlake/status/1166948612364021760"&gt;Twitter thread&lt;/a&gt; I wrote on the subject. I saw the following tweet and thought “Okay! I’ll give it a try because this has been on my mind lately.”&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Can we talk about speaker pay? I just discovered that this was a thing. Myself and I’m sure many others would love to hear approaches/advice on this. Someone should make a thread or something about how they charge, why, things to consider, etc. &lt;a href="https://t.co/pOdF8Sn0KJ"&gt;https://t.co/pOdF8Sn0KJ&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;— 🍁Pariss Athena🎃 (@ParissAthena) &lt;a href="https://twitter.com/ParissAthena/status/1166913497206263811?ref_src=twsrc%5Etfw"&gt;August 29, 2019&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  My Experience
&lt;/h2&gt;

&lt;p&gt;First up, a little background on me for context: I’ve been speaking for a few years off and on and really kicked it into high gear last year. I attended around 20 different conferences, most of them as a speaker.&lt;/p&gt;

&lt;p&gt;I’ve volunteered for some conferences (notably &lt;a href="https://www.thestrangeloop.com/"&gt;Strange Loop&lt;/a&gt; and &lt;a href="https://www.codemash.org/"&gt;CodeMash&lt;/a&gt;) and co-organize &lt;a href="https://selfconference.org/"&gt;self.conference&lt;/a&gt; and &lt;a href="https://2019.detroit.wordcamp.org/"&gt;WordCamp Detroit&lt;/a&gt;. I’m starting a musical tech conference called &lt;a href="https://www.titleofconf.org/"&gt;&amp;lt;title of conf&amp;gt;&lt;/a&gt;. I’ve participated in tech conferences in most of the ways it’s possible to do so!&lt;/p&gt;

&lt;p&gt;I’ve also taught courses, workshops, and bootcamps online and in person. This gets into slightly different territory, so I’ll break my comments down based on the type of activity, focusing primarily on giving talks and running workshops at conferences.&lt;/p&gt;

&lt;h2&gt;
  
  
  Speaking at Conferences
&lt;/h2&gt;

&lt;h3&gt;
  
  
  Lightning Talks
&lt;/h3&gt;

&lt;p&gt;While many conferences will offer opportunities to give lightning talks during the event, those talks are often unplanned. It’s unusual for a speaker to be compensated by the conference for a lightning talk alone. Often, attendees will sign up to give one during the conference itself.&lt;/p&gt;

&lt;p&gt;In rare cases, when lightning talks are built into the main schedule, they may be submitted ahead of time with speakers receiving some or all of the same benefits afforded to those giving regular sessions. &lt;a href="https://theleaddeveloper.com/cfp"&gt;The Lead Developer&lt;/a&gt; and &lt;a href="http://bangbangcon.com/give-a-talk.html"&gt;!!Con&lt;/a&gt; are both wonderful conferences that emphasize shorter (10-minute) presentations.&lt;/p&gt;

&lt;h3&gt;
  
  
  Regular Sessions
&lt;/h3&gt;

&lt;p&gt;The majority of conference sessions are 30- to 60-minute, lecture-style presentations. For most people, when we talk about “speaker pay” in terms of a tech conference, we’re not discussing a rate that you negotiate. Usually, the conference will determine ahead of time what they’re willing to offer to speakers. The absolute bare minimum here is a free ticket.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If a tech conference you’re considering applying to wants their speakers to pay for a ticket, RUN FOR THE HILLS.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Other common speaker benefits include money for travel and hotel accommodations. The conference might book these for you or, more often, they’ll reimburse you for these costs after the conference. If you can’t front that kind of money, it’s worth asking the organizers to do so.&lt;/p&gt;

&lt;p&gt;Some events will have you sign a performance agreement. For self.conference, the main reason we do this is to have some sort of written agreement that says you’ll pay us back the money we spend on your hotel if you don’t show up. If you receive a performance agreement, read it carefully before signing! If you’re not comfortable with a certain clause, ask to have it amended or struck from the agreement. Understand ahead of time how important any such changes are to you and whether or not you’re willing to walk away from a speaking opportunity if your request is denied.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Tatiana Mac has an incredible &lt;a href="https://gist.github.com/tatianamac/493ca668ee7f7c07a5b282f6d9132552"&gt;speaker rider&lt;/a&gt; that you should read. It clearly lays out everything she requires of conferences she speaks at.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Look for specifics when reading through a conference’s website/CFP. Is there an upper limit to how much the conference will reimburse? This will sometimes be different depending on your distance from the venue. They may offer sponsorship benefits if your company pays for you. My number one tip for &lt;a href="https://dev.to/aishablake/5-tips-for-getting-your-next-conference-talk-accepted-cic"&gt;getting your conference talk accepted&lt;/a&gt; in the first place is to &lt;em&gt;read the CFP&lt;/em&gt;. This will not only help you determine what you should submit but also how you can expect to be compensated for your contribution to a conference.&lt;/p&gt;

&lt;h3&gt;
  
  
  Workshops
&lt;/h3&gt;

&lt;p&gt;Less commonly, conferences offer honorariums for speakers delivering workshops (or possibly for all speakers). Expect $100-300 if the event is in the US. If folks need to sign up for a particular workshop ahead of time, you’ll likely get a percentage of the income specific to your session.&lt;/p&gt;

&lt;p&gt;To be honest, I’ve found certain organizers to be somewhat disingenuous in their commitment to paying speakers via honorariums. Receiving a check for $200 after a conference doesn’t help me if the conference doesn’t &lt;em&gt;also&lt;/em&gt; provide assistance for travel and a hotel. Offering a small honorarium without a clearly defined policy for travel and accommodation funding does not count as “paying all speakers”.&lt;/p&gt;

&lt;h2&gt;
  
  
  Private Engagements
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;If you’ve got a company asking you to teach or come to them to speak, you choose your speaker fee.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;If you’re asked to speak or give a workshop outside of a conference, that’s a whole other beast. You need to consider the resources it’ll take to prepare and deliver that talk and then probably double or triple whatever you’re thinking about charging. Consider how much time and effort it’ll take you to research, write, design, and prepare this talk. It’s helpful if you already have an hourly rate for freelancing because you can use that to estimate. Make sure to bake any travel-related costs in.&lt;/p&gt;

&lt;p&gt;The wonderful &lt;a href="https://twitter.com/LRW3bb"&gt;Laura Webb&lt;/a&gt; recently shared these resources with me to help gauge what you should consider charging for these types of speaking engagements:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://grantbaldwin.typeform.com/to/mKgF8q"&gt;Fee Calculator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.speakerlauncher.com/understanding-speaking-fees/"&gt;Understanding Speaking Fees and How Much You Should Get Paid to Speak&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Other Possible Benefits
&lt;/h2&gt;

&lt;p&gt;Rarely, you may get a per diem for food. I wouldn’t expect to be offered more than $50/day. Keep track of your expenses, hold onto your receipts, and be ready to submit everything to the organizers promptly after the event.&lt;/p&gt;

&lt;p&gt;If you’re more established and/or well known, you can expect a little more in the way of compensation. This is not to be confused with a formal speaking fee. In this scenario, if you’re able, I urge you to advocate for other speakers who may not have the same privileges.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;If you’ve been invited to speak as opposed to submitting via a call for proposals, you have some leverage.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Always, always communicate with the organizers of an event if you’re interested in speaking but something they’ve published doesn’t work for you. Can’t wait for reimbursement? Ask the organizers to book travel and hotel accommodations for you. Need to bring a plus one for emotional support? Request an additional ticket to the conference. Got laid off? Let them know you’ll need help to cover things like food and local travel.&lt;/p&gt;

&lt;p&gt;I hope this has been helpful to you! I’m always happy to talk about this sort of thing. If you have questions or want feedback on anything (what to charge, talk abstracts, how to choose conferences), please reach out!&lt;/p&gt;

</description>
      <category>speaking</category>
      <category>career</category>
      <category>conferences</category>
      <category>talkpay</category>
    </item>
  </channel>
</rss>
