---
label: Blog post
hide_body: false
fields:
- type: list
  name: categories
  label: Categories
  config:
    use_select: false
    min: '1'
    max: '5'
  description: Categories for posts
- type: datetime
  name: date
  label: Date
  description: Date of writing
- type: text
  name: slug
  label: Post slug
  description: URL slug
- type: list
  name: tags
  label: Tags
  description: Social media tags
- type: text
  name: title
  label: Post title
  description: Title of the post
- name: description
  type: text
  config:
    required: false
  label: Description
  description: Social media blurb
- name: social_image
  type: file
  config:
    maxSize: 250
  label: Social image
  description: Custom image for social media cards
pages:
- content/posts/server-side-analytics-with-caddyserver-and-goaccess.md
- content/posts/teachingkotlin-kotlin-for-android-java-developers.md
- content/posts/teachingkotlin-part-1-classes-and-objects-and-everything-in-between.md
- content/posts/teachingkotlin-part-2-variables.md
- content/posts/why-i-went-back-to-the-gradle-groovy-dsl.md
- content/posts/why-should-you-be-using-kotlin-s-explicit-api-mode-for-your-library-projects.md

---
label: Blog post
hide_body: false
fields:
- type: list
  name: categories
  label: Categories
  config:
    use_select: false
    min: '1'
    max: '5'
  description: Categories for posts
- type: datetime
  name: date
  label: Date
  description: Date of writing
  config:
    date_format: YYYY-MM-DD
    export_format: YYYY-MM-DD
  default: now
- type: text
  name: slug
  label: Post slug
  description: URL slug
- type: list
  name: tags
  label: Tags
  description: Social media tags
- type: text
  name: title
  label: Post title
  description: Title of the post
- name: description
  type: text
  config:
    required: false
  label: Description
  description: Social media blurb
- name: social_image
  type: file
  config:
    maxSize: 64
  label: Social image
  description: Custom image for social media cards
pages:
- content/posts/server-side-analytics-with-caddyserver-and-goaccess.md
- content/posts/teachingkotlin-kotlin-for-android-java-developers.md
- content/posts/teachingkotlin-part-1-classes-and-objects-and-everything-in-between.md
- content/posts/teachingkotlin-part-2-variables.md
- content/posts/why-i-went-back-to-the-gradle-groovy-dsl.md
- content/posts/why-should-you-be-using-kotlin-s-explicit-api-mode-for-your-library-projects.md

Update from Forestry.io - Updated Forestry configuration
Update from Forestry.io - Updated Forestry configuration
