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
- Open Admin Panel → Blog → New post.
- Fill in the Title (the URL slug auto-generates from it), an Excerpt (shown on cards & search), Tags and an optional Cover image URL.
- Add content with the block composer:
| Block | What it does |
|---|---|
| Text | A paragraph (supports **bold**, *italic* and [links](url)) |
| Heading | H2 / H3 section heading |
| List | Bullets or a numbered list (one item per line) |
| Quote | A styled pull quote |
| Image | An inline image from a URL, with alt text + caption |
| Divider | A visual separator |
- 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
bodycolumn ofblog_postsas JSON. - The table, RLS read policy and
updated_attrigger are created bysupabase/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.