Dashboard
TechPulse news overview
—
Total Articles
—
Published
—
Drafts
—
Categories
Recent Articles
| Title | Category | Author | Status |
|---|
Articles
Create and manage news articles
ADD ARTICLE
16:9 preview
Supports HTML:
<h2> <h3> <p> <ul><li> <blockquote> <strong> <em> <a href="">Published
Featured / Breaking
All Articles
| Title | Category | Author | Date | Status | Actions | |
|---|---|---|---|---|---|---|
| Loading... | ||||||
Categories
Manage news sections
ADD CATEGORY
All Categories
| Name | Description | Sort | Actions |
|---|
Site Settings
Customize your news website
SITE IDENTITY
AD BANNERS
Add advertisement banner image URLs. Leave blank to hide.
Top banner preview
Mid banner preview
SOCIAL LINKS
CHANGE ADMIN CREDENTIALS
Database Setup
Run all SQL queries in order in your Supabase SQL Editor
1Articles Table
CREATE TABLE IF NOT EXISTS articles (
id bigint generated by default as identity primary key,
title text not null,
slug text unique,
category text,
author text default 'Staff Reporter',
excerpt text default '',
content text default '',
image_url text default '',
image_caption text default '',
tags text default '[]',
meta_desc text default '',
published boolean default true,
featured boolean default false,
published_at timestamptz default now(),
created_at timestamptz default now()
);
ALTER TABLE articles ENABLE ROW LEVEL SECURITY;
CREATE POLICY "public read" ON articles FOR SELECT USING (true);
CREATE POLICY "anon insert" ON articles FOR INSERT WITH CHECK (true);
CREATE POLICY "anon update" ON articles FOR UPDATE USING (true) WITH CHECK (true);
CREATE POLICY "anon delete" ON articles FOR DELETE USING (true);
2Categories Table
CREATE TABLE IF NOT EXISTS news_categories (
id bigint generated by default as identity primary key,
name text not null unique,
description text default '',
image_url text default '',
sort_order int default 1,
created_at timestamptz default now()
);
ALTER TABLE news_categories ENABLE ROW LEVEL SECURITY;
CREATE POLICY "public read" ON news_categories FOR SELECT USING (true);
CREATE POLICY "anon insert" ON news_categories FOR INSERT WITH CHECK (true);
CREATE POLICY "anon update" ON news_categories FOR UPDATE USING (true) WITH CHECK (true);
CREATE POLICY "anon delete" ON news_categories FOR DELETE USING (true);
3Site Settings Table
CREATE TABLE IF NOT EXISTS news_settings (
id bigint generated by default as identity primary key,
key text not null unique,
value text
);
ALTER TABLE news_settings ENABLE ROW LEVEL SECURITY;
CREATE POLICY "public read" ON news_settings FOR SELECT USING (true);
CREATE POLICY "anon insert" ON news_settings FOR INSERT WITH CHECK (true);
CREATE POLICY "anon update" ON news_settings FOR UPDATE USING (true) WITH CHECK (true);
CREATE POLICY "anon delete" ON news_settings FOR DELETE USING (true);
4Sample Data (optional)
Insert some sample categories to get started quickly.
INSERT INTO news_categories (name, sort_order) VALUES
('Technology', 1), ('AI', 2), ('Gadgets', 3),
('Mobile', 4), ('Laptops', 5), ('Gaming', 6),
('Science', 7), ('Tips & Tricks', 8)
ON CONFLICT (name) DO NOTHING;