EcoByte Dashboard
EcoByte Dashboard
Track and reduce your digital carbon footprint effortlessly.
Small businesses, indie hackers, and content creators (our persona) are increasingly aware of their environmental impact but often overlook their digital footprint. While they may use green hosting, they lack a holistic, easy-to-use tool to quantify the carbon emissions from their cloud services (AWS, Google Cloud, Azure), email providers (Mailgun, SendGrid), website hosting, and SaaS subscriptions. They waste hours manually piecing together vague estimates, struggle to compare providers based on sustainability metrics, and can't generate simple reports to showcase their efforts. This leads to missed opportunities for 'green' marketing and an inability to make data-driven decisions for a more sustainable digital presence, impacting their brand reputation and potentially their bottom line.
EcoByte Dashboard provides a simple, intuitive platform for small businesses to connect and monitor their digital services' estimated carbon emissions. Users can add details about their web hosting, email volume, cloud storage, and even video streaming usage. The platform then calculates an estimated carbon footprint based on pre-defined or user-adjustable emission factors for various providers and regions. Core features include a personalized dashboard showing total emissions over time, breakdown by service, actionable recommendations for greener alternatives, and one-click report generation. EcoByte stands out by focusing exclusively on the digital footprint for small teams, providing clear, simplified data without overwhelming enterprise-grade complexity, and offering practical advice rather than just raw numbers.
Tech Stack
System Architecture
āāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Client ā ā External Services ā
ā (Browser/Mobile) ā ā ā
āāāāāāāāāāā¬āāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā HTTP/S ā Stripe (Payments) ā
ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā¼ ā Resend (Emails) ā
āāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāāāā¤
ā Next.js Frontend āāāāāāāāā ā Carbon Data API (Optional)ā
ā (UI Components) ā ā HTTP/Sāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
āāāāāāāāāāā¬āāāāāāāāāā ā
ā Next.js API ā
ā Routes ā
ā¼ ā
āāāāāāāāāāāāāāāāāāāāā āāā“āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
ā Next.js Backend āāāāāāāŗā Supabase (Auth, DB, Storage, RLS) ā
ā (API Routes, Logic)ā ā PostgreSQL, Edge Functions ā
āāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāDatabase Schema
CREATE TABLE users (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
email TEXT UNIQUE NOT NULL,
password_hash TEXT NOT NULL,
subscription_plan TEXT DEFAULT 'free' NOT NULL,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
CREATE TABLE services (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
service_type TEXT NOT NULL, -- e.g., 'hosting', 'email', 'cloud_storage', 'saas'
name TEXT NOT NULL,
provider TEXT NOT NULL, -- e.g., 'Vercel', 'AWS', 'Mailgun', 'Stripe'
region TEXT, -- e.g., 'us-east-1', 'eu-central-1'
usage_data JSONB, -- Flexible storage for usage metrics (e.g., { 'bandwidth_gb': 100, 'emails_sent': 5000 })
carbon_estimate_gco2e_per_month NUMERIC, -- Pre-calculated estimate or latest calculation
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
CREATE INDEX idx_services_user_id ON services(user_id);
CREATE TABLE carbon_factors (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
service_type TEXT NOT NULL,
provider TEXT NOT NULL,
region TEXT, -- Can be NULL for global factors
factor_value NUMERIC NOT NULL, -- e.g., gCO2e per kWh, per GB, per email
factor_unit TEXT NOT NULL, -- e.g., 'gCO2e/kWh', 'gCO2e/GB', 'gCO2e/email'
source TEXT, -- URL or reference for the factor data
last_updated TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
UNIQUE (service_type, provider, region, factor_unit) -- Ensure unique factors
);
CREATE TABLE reports (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
start_date DATE NOT NULL,
end_date DATE NOT NULL,
total_carbon_gco2e NUMERIC NOT NULL,
report_summary JSONB, -- e.g., { 'breakdown_by_service': { ... }, 'recommendations': [...] }
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
CREATE INDEX idx_reports_user_id ON reports(user_id);
CREATE TABLE subscriptions (
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE,
stripe_customer_id TEXT UNIQUE NOT NULL,
stripe_subscription_id TEXT UNIQUE NOT NULL,
status TEXT NOT NULL, -- e.g., 'active', 'canceled', 'past_due'
plan_id TEXT NOT NULL, -- e.g., 'pro', 'business'
current_period_end TIMESTAMP WITH TIME ZONE,
created_at TIMESTAMP WITH TIME ZONE DEFAULT NOW(),
updated_at TIMESTAMP WITH TIME ZONE DEFAULT NOW()
);
CREATE INDEX idx_subscriptions_user_id ON subscriptions(user_id);API Endpoints
/api/auth/signupRegisters a new user./api/auth/loginAuthenticates a user and issues a session token./api/auth/logoutInvalidates the user's session./api/user/meRetrieves the authenticated user's profile and subscription status./api/servicesLists all digital services for the authenticated user./api/servicesAdds a new digital service for tracking./api/services/[id]Retrieves details for a specific service./api/services/[id]Updates details or usage data for a specific service./api/services/[id]Removes a digital service./api/dashboard/summaryRetrieves aggregated carbon footprint data for the user's dashboard./api/reportsLists all generated reports for the user./api/reportsGenerates a new carbon footprint report for a specified period./api/reports/[id]Retrieves a specific report./api/billing/create-checkout-sessionCreates a Stripe checkout session for subscription upgrades./api/webhooks/stripeStripe webhook endpoint to handle subscription changes and payments.Start Building with AI
Copy this prompt for Cursor, v0, Bolt, or any AI coding assistant
BuilderDaily Team
VerifiedIndie hackers and full-stack engineers creating validated Micro-SaaS blueprints with production-ready tech stacks.
Related Blueprints
More Micro-SaaS ideas you might like to build
MediBrief AI
AI-powered clinical note summarization for healthcare professionals.
AssessGenius AI
Instantly create engaging quizzes from any text using AI.
DevWallet
Automate tracking and optimize your SaaS & cloud spending as a developer.
Gap Alert
Today's gap expires in ~14 hours
Get tomorrow's blueprint delivered to your inbox so you never miss a profitable idea.
(Email delivery launching soon ā sign up to be first!)