DEV Community

Cover image for >>Guidelines<


psolymos profile image Peter Solymos Originally published at ・9 min read
This guideline outlines common standards for the Analythium Blog
  1. Add title and make sure that post URL is OK
  2. Upload or select (from Unsplash) a cover photo
  3. Add at least one tag
  4. Leave post access on Public
  5. Add meta title and description - important for SEO
  6. If post appeared elsewhere: add canonical URL (otherwise leave it blank), but be careful with this, can negatively affect SEO
  7. Write text and use inserts/embeds (cick on + sign on new line or type /)

See formatting options here, and here is a more exhaustive description:

Title: Capitalize Each Word

Tags: Capitalize Each Word

Headings: Capitalize first letter only

Lists: when TOC-like:

  • Sentence case
  • Without dot at the end

Lists when part of the text:

  • use no sentence case,
  • add comma or semicolon,
  • maybe a dot at the end.


  1. Topic: What the post is about
  2. Value: What is the business value (how does this save time, money, how does it add value to existing stuff, or how is it unique)
  3. CTA: What is the call-to-action



Post structure

All blog posts must have a title and description, this helps with SEO.


  • Short intro/overview (150 words)
  • Series of logical steps or points / topics
  • Embed conceptual diagram, video or picture to help make case.
  • Call to action
  • Point to Slack/Docs/GitHub or something else.
  • Acknowledgements

If necessary show acknowledgements to others who collaborated or gave feedback you used. When working on GitHub this is available in public history, so use sparingly.


  • Headings: When using steps use the active/imperative voice for headings "Get started" vs "Getting started", "Configure the node" vs "Configuring the node" etc.

Tone / style

  • Be objective, avoid being "cute"
  • Whilst using fun terms like "Boom!", "Fun and profit" and making jokes in text, can work well on a personal blog. The Analythium blog and documentation should have a minimal use of this kind of "fun" or "cute" terms.
  • Quote your sources. If you use a diagram or embed a quote from somewhere, make sure you give it proper attribution.
  • Opinion vs. facts: Opinions should be presented as your own viewpoint. If you have data to back-up your position, this will help make your point credible. If you are stating a fact / objective data, you should also back this up with quotes, links, etc.
  • Plain English: Write in plain English at all times, when a simpler word exists use it, avoid words derived from Latin when possible, avoid gerunds where an active verb can replace it. For some additional recommendations see this post.


  • Add a background post: Each post should have a background photo picked from free stock photography or provided with a Creative Commons license. Do not pull images in from Google without checking that the usage / license is valid first. Crop the background to a width of 1500 pixels. Use JPEG and aim for 200Kb size when exporting (increase compression)
  • In-post images and screenshots: Each blog post should have at least one conceptual diagram. This should show the logical flow or abstract view of the feature, news or design. An embedded Tweet or video could also serve this purpose.
  • Images are important for every post, but try to compress / crop the images as much as is reasonable and possible.

Cross-posting content

Cross-posting content negatively affects SEO scores, so should not be done unless additional care and attention is made. Make sure all content on the blog is original.

Heading 1

Heading 2

Heading 3

Heading 4

Heading 5
Heading 6

Normal text

Emphasize / Bold / Strike through / Superscript / Subscript / link / inline code

  • list item 1
  • list item 2
  1. ordered list item 1
  2. item 2
1 + 1 = 2
H <- function(x) {
var myChart = echarts.init(document.getElementById('main')); myChart.setOption({ legend: {}, tooltip: {}, dataset: { dimensions: ["Date","Calgary","Central","Edmonton","North","South"], source: [{"Date":"2020-03-06","Calgary":1},{"Date":"2020-03-07","Calgary":2},{"Date":"2020-03-08","Calgary":3,"Edmonton":2},{"Date":"2020-03-09","Calgary":4,"Edmonton":2},{"Date":"2020-03-10","Calgary":7,"Edmonton":5},{"Date":"2020-03-11","Calgary":11,"Central":1,"Edmonton":7},{"Date":"2020-03-12","Calgary":13,"Central":1,"Edmonton":7},{"Date":"2020-03-13","Calgary":23,"Central":1,"Edmonton":7},{"Date":"2020-03-14","Calgary":36,"Central":1,"Edmonton":13},{"Date":"2020-03-15","Calgary":45,"Central":1,"Edmonton":14},{"Date":"2020-03-16","Calgary":61,"Central":2,"Edmonton":19,"North":1,"South":1},{"Date":"2020-03-17","Calgary":67,"Central":3,"Edmonton":26,"North":2,"South":1},{"Date":"2020-03-18","Calgary":89,"Central":3,"Edmonton":29,"North":3,"South":3},{"Date":"2020-03-19","Calgary":103,"Central":3,"Edmonton":37,"North":9,"South":4},{"Date":"2020-03-20","Calgary":127,"Central":5,"Edmonton":52,"North":12,"South":6},{"Date":"2020-03-21","Calgary":153,"Central":7,"Edmonton":59,"North":15,"South":7},{"Date":"2020-03-22","Calgary":183,"Central":13,"Edmonton":64,"North":17,"South":8},{"Date":"2020-03-23","Calgary":210,"Central":26,"Edmonton":79,"North":18,"South":8},{"Date":"2020-03-24","Calgary":245,"Central":34,"Edmonton":93,"North":20,"South":10},{"Date":"2020-03-25","Calgary":294,"Central":37,"Edmonton":111,"North":22,"South":12},{"Date":"2020-03-26","Calgary":300,"Central":37,"Edmonton":111,"North":26,"South":12}] }, xAxis: {type: 'category'}, yAxis: {}, series: [ {type: 'line'}, {type: 'line'}, {type: 'line'}, {type: 'line'}, {type: 'line'} ], dataZoom: [{ type: 'inside', start: 0, end: 100 }, { start: 0, end: 100, handleIcon: 'M10.7,11.9v-1.3H9.3v1.3c-4.9,0.3-8.8,4.4-8.8,9.4c0,5,3.9,9.1,8.8,9.4v1.3h1.3v-1.3c4.9-0.3,8.8-4.4,8.8-9.4C19.5,16.3,15.6,12.2,10.7,11.9z M13.3,24.4H6.7V23h6.6V24.4z M13.3,19.6H6.7v-1.4h6.6V19.6z', handleSize: '80%', handleStyle: { color: '#fff', shadowBlur: 3, shadowColor: 'rgba(0, 0, 0, 0.6)', shadowOffsetX: 2, shadowOffsetY: 2 } }], toolbox: { show: true, orient: 'vertical', feature: { dataZoom: {}, magicType: {type: ['line', 'bar']}, restore: {}, saveAsImage: {} } } });

Checking bookmarks

psolymos/bSimsBird Point Count Simulator. Contribute to psolymos/bSims development by creating an account on GitHub.GitHubpsolymos
This is a github repo
Bird Point Count SimulatorA highly scientific and utterly addictive bird point count simulator to test statistical assumptions, aid survey design, and have fun while doing it. The simulations follow time-removal and distance sampling models based on Matsuoka et al. (2012) <doi:10.1525/auk.2012.11190>, Solymos …bSims 0.2-2
This is the pkgdown version
Point count data analysis: How to violate assumptions and get away with itThis book provides material for the workshop ‘Analysis of point-count data in the presence of variable survey methodologies and detection error’ at the AOS 2019 conference.Peter Solymos
This is bookdown version

must be the wrong number

— Péter Sólymos (@psolymos ) May 27, 2020
Introducing the bSims R package for simulating bird point counts – Péter SólymosThe bSims R package is a highly scientific and utterly addictive bird point count simulator. Highly scientific, because it implements a spatially explicit me...Péter SólymosComparing the PIF approach to a pixel-based approach for birds in AlbertaThis talk is an earlier draft of the research paper: Sólymos, P., Toms, J. D., Matsuoka, S. M., Cumming, S. G., Barker, N. K. S., Thogmartin, W. E., Stralberg, D., Crosby, A. D., Dénes, F. V., Haché, S., Mahon, C. L., Schmiegelow, F. K. A., and Bayne, E. M., 2020. Lessons learned from comparing spa…Speaker Deck<!--kg-card-begin: html--><!--kg-card-end: html--><!--kg-card-begin: html-->

Made with Visme Infographic Maker

<!--kg-card-end: html-->

Embed Shiny app:

<!--kg-card-begin: html--><!--kg-card-end: html-->

Click on "Preview" to see how the page looks.

Discussion (0)

Editor guide