Skip to content

A production-ready Flutter Blog App built with Clean Architecture, Supabase backend, Offline storage, Firebase Hosting support, and modern state management using Bloc. Fully scalable and easy to extend.

Notifications You must be signed in to change notification settings

tm33976/Blog-App

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Blog App (Flutter + Supabase)

📌 Overview

This is a fully functional Blog Application built using Flutter with a scalable Clean Architecture and Supabase as the Backend‑as‑a‑Service (BaaS).
It includes user authentication, blog creation with images, tagging, and a clean, maintainable folder structure.

The app is designed for:

  • 🧑‍💻 Developers learning scalable Flutter architecture
  • 🚀 Teams building production‑ready apps
  • 📝 Users who want to create and publish blog posts with images and tags
  • 🔧 Anyone looking for an example of Flutter + Supabase best practices

✨ Features

🔐 Authentication

  • Email Sign‑In / Sign‑Up
  • Secure user session handling
  • Built using Supabase Auth

📝 Blog Management

  • Create blog posts
  • Upload an image with each post
  • Add multiple tags
  • Store metadata like title, content, author, timestamp
  • Fetch posts from Supabase database

🗄 Supabase Integration

  • Supabase Auth
  • Supabase Storage (for blog images)
  • Supabase Database (blog table)

🧱 Clean Architecture

This project uses a production‑ready layered architecture:

  • Presentation Layer → UI + State Management (Bloc / Provider)
  • Domain Layer → Entities + Use Cases
  • Data Layer → Repositories + Data Sources
  • Core Layer → Constants, Errors, Utilities

This ensures:

  • Better testability
  • Easier scaling
  • Low coupling
  • High readability

🏗 Scalability

This app is built with long‑term scalability in mind:

⚡ Modular Code Structure

Each feature (auth, blogs, user profile, etc.) can be expanded independently.

🔌 Replaceable Backend

Although this app uses Supabase, you can replace it with:

  • Firebase
  • Appwrite
  • Your own backend

…without changing UI logic.

🔎 Clean Data Flow

All data passes through well‑defined Use Cases and Repositories.
This guarantees easy debugging and feature expansion.


🛠 Tech Stack

  • Flutter (Dart)
  • Supabase
  • Bloc / Provider (depending on your project setup)
  • Clean Architecture
  • Image Uploading with Supabase Storage

🚀 Getting Started

1. Clone the repository

git clone https://github.com/tm33976/Blog-App.git
cd Blog-App

2. Install dependencies

flutter pub get

3. Add your Supabase credentials

lib/core/secrets/app_secrets.dart

Add:

const supabaseUrl = "YOUR_SUPABASE_URL";
const supabaseAnonKey = "YOUR_SUPABASE_ANON_KEY";

4. Run the app

flutter run

🏁 Conclusion

This Blog App showcases:

  • Proper clean architecture
  • Real-world Supabase integration
  • Image uploading
  • Tag‑based blog creation
  • Complete auth flow

It is scalable, maintainable, and ready to be used as:

  • A learning template
  • A personal project
  • A base for a production app

Feel free to fork and improve!


👨‍💻 Author

Tushar Mishra
Email - tm3390782@gmail.com

About

A production-ready Flutter Blog App built with Clean Architecture, Supabase backend, Offline storage, Firebase Hosting support, and modern state management using Bloc. Fully scalable and easy to extend.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published