logo

Blog

Publish articles on your own blog and rank on Google. The blog is fully Supabase-backed and managed from the Admin Panel, no code needed.

Where to find it

  • Public listing: /blog (also linked in the navbar and footer)
  • Individual posts: /blog/{slug} with SEO meta, Open Graph, reading time, related posts and an RSS feed at /feed.xml
  • Landing page section: "Latest from the blog" (auto-hidden until a post is published)
  • Admin: Admin Panel → Blog

Creating a post

  1. Open Admin Panel → Blog → New post.
  2. Fill in the Title (the URL slug auto-generates from it), an Excerpt (shown on cards & search), Tags and an optional Cover image URL.
  3. Add content with the block composer:
BlockWhat it does
TextA paragraph (supports **bold**, *italic* and [links](url))
HeadingH2 / H3 section heading
ListBullets or a numbered list (one item per line)
QuoteA styled pull quote
ImageAn inline image from a URL, with alt text + caption
DividerA visual separator
  1. Save as draft or Publish.

Inline images

The Image block accepts any public image URL, for example a photo you store in your own Supabase storage bucket, or any hosted image. The URL is used as-is on the page, so make sure it is stable and publicly accessible.

Compatibility

  • Existing posts stored in the legacy lightweight-markdown format are auto-converted to blocks when you open them in the editor.
  • No SQL migration is required: post content lives in the existing body column of blog_posts as JSON.
  • The table, RLS read policy and updated_at trigger are created by supabase/schema.sql.

Extras

  • RSS feed at /feed.xml (auto-updates with published posts).
  • Reading time is computed automatically and shown on each post.
  • Related posts are suggested by shared tags.
  • Posts are included in the sitemap for SEO.