Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

22 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ”₯ ForgeOS

Where you forge your open source career.

Discover trending repositories, find beginner-friendly issues, and get AI-powered guidance for your first (and hundredth) open source contribution.

One Flutter codebase. Five platforms. Zero backend. Zero cost.

Flutter Dart License: MIT Platform PRs Welcome Stars

Live Demo Β· Report a Bug Β· Request a Feature Β· Contributing


ForgeOS app screenshot

πŸ“š Table of Contents


πŸ’‘ Why ForgeOS

Every developer remembers the exact feeling of wanting to contribute to open source for the first time β€” and not having the faintest idea where to begin.

GitHub's trending page is noisy and skewed toward already-massive projects. Issue trackers bury the two or three approachable tickets under hundreds of stale, half-triaged, or maintainer-only issues. Labels like good first issue exist, but they're scattered across thousands of repositories with no single place to browse them. And even once you find an issue, it's often unclear what it actually involves β€” what files you'll touch, what skills you need, whether it's a five-minute fix or a five-day rabbit hole.

ForgeOS removes that friction end to end. It surfaces trending and beginner-friendly repositories, filters GitHub issues down to the ones explicitly labeled for newcomers, and uses AI to explain what an issue actually involves β€” its difficulty, the skills it requires, and a suggested approach β€” without ever handing you the full solution. No account required. No backend to trust. No subscription. It runs identically on your phone, your desktop, and in the browser, built entirely on free, public APIs.

If you've ever bookmarked a "how to start with open source" blog post and never acted on it, this is the tool that closes that gap.


✨ Features

πŸ”­ Discover

  • πŸ”₯ Trending repositories by day, week, or month β€” filterable by language
  • πŸ”Ž Full repository search with language, topic, minimum-star, and sort filters
  • ⚑ "Active this week" feed of recently updated, currently-popular projects β€” not just perennially famous ones
  • ♾️ Infinite scrolling, pull-to-refresh, tasteful skeleton loading states, and clear empty/error states everywhere

🎯 Contribute

  • 🏷️ Issue finder scoped to good first issue, help wanted, documentation, beginner friendly, and more β€” filterable by language and keyword, unassigned issues only, so you never chase a ticket someone already owns
  • πŸ“ˆ Local contribution tracker β€” mark issues Saved β†’ In Progress β†’ Completed and watch your own momentum build
  • πŸ”– Offline bookmarks for repositories and issues, with bookmarked READMEs cached for offline reading (great for flights, commutes, spotty wifi)
  • πŸ•˜ Recently viewed repositories and full search history, so you never lose a promising find

🧠 Understand

  • πŸ“„ Repository detail pages with rendered Markdown READMEs, syntax-highlighted code blocks, and a dedicated issues tab
  • πŸ‘€ GitHub profile viewer for any user or organization β€” repos, pinned work, activity at a glance
  • πŸ“Š Optional contribution insights via the GitHub GraphQL API β€” good-first-issue counts, help-wanted counts, and commit totals for a repo β€” unlocked once you add a personal access token

πŸ€– AI Assistant (Gemini free tier)

  • πŸ—£οΈ Plain-language explanations of any issue β€” what it's really asking for, stripped of jargon
  • 🎚️ Difficulty estimation (Beginner / Intermediate / Advanced) with the reasoning behind the rating
  • πŸ“š Recommended learning resources and prerequisite skills, tailored to the specific issue
  • 🧭 Implementation guidance β€” approach and pitfalls, deliberately stopping short of a full solution, because the point is to help you learn, not to write the PR for you
  • πŸ—ΊοΈ Step-by-step learning roadmaps tailored to a specific repository, for when you want to go deeper than one issue
  • πŸ“ README summarization for long or dense projects, so you can decide in thirty seconds whether a repo is worth your time
  • πŸ’¬ Follow-up Q&A in a persistent chat interface β€” ask anything about the repo or issue you're looking at

🎨 Design

  • πŸŒ™ Dark theme by default, with a fully-supported light theme
  • 🎨 Custom Material 3 palette β€” deep charcoal navy (#101820) with warm amber accents (#F2AA4C)
  • πŸ–±οΈ Hover effects, subtle lift/glow interactions, and smooth transitions on desktop and web
  • πŸ“± Fully responsive β€” bottom navigation on mobile, navigation rail on tablet and desktop, content max-width capped so nothing stretches awkwardly on ultrawide monitors

πŸ”„ How It Works

flowchart LR
    A["Browse trending repositories"] --> B["Open a repository"]
    B --> C["Find beginner-friendly issues"]
    C --> D["Ask the AI Assistant"]
    D --> E{"Ready to contribute?"}
    E -->|Yes| F["Bookmark & start working"]
    E -->|Not yet| C
    F --> G["Open your first pull request"]
    G --> H["Mark it as completed"]
Loading

πŸ“Έ Screenshots

Trending & Explore Beginner-Friendly Issues AI Assistant

πŸ—οΈ Tech Stack

Layer Choice Why
Framework Flutter (Web, Android, Windows, macOS, Linux) One codebase, five real targets, native performance
State management Riverpod Compile-safe, testable, no BuildContext gymnastics
Navigation GoRouter (StatefulShellRoute) Deep-linkable, preserves per-tab navigation stacks
Networking Dio Interceptors for auth headers, rate-limit handling, retries
Models Freezed + json_serializable Immutable, exhaustive, boilerplate-free data classes
Local storage Hive Fast, cross-platform key-value storage β€” including Web
Markdown & code flutter_markdown + flutter_highlight Renders real READMEs and code blocks faithfully
Data sources GitHub REST API, GitHub GraphQL API, Gemini API (free tier) No backend of ForgeOS's own β€” every request goes straight from your device to the source

Architecture follows a clean, feature-first structure with a repository pattern separating data sources from UI β€” see docs/ARCHITECTURE.md for a full breakdown.


🧱 Architecture

flowchart TD
    UI["UI Layer"] --> Providers["Riverpod Providers"]
    Providers --> Repositories["Repositories"]

    Repositories --> GitHub["GitHub API"]
    Repositories --> AI["Gemini API"]
    Repositories --> Storage["Hive Storage"]

    Providers -. "State Updates" .-> UI
Loading
  • core/ holds everything cross-cutting: theme, router, the Dio client, local storage, and shared widgets/utilities used across every feature.
  • features/ is organized by domain, not by layer β€” each feature owns its providers, screens, and (where relevant) its own data layer.
  • Network calls never touch UI code directly; every screen reads from a Riverpod provider, which reads from a repository, which talks to Dio or Hive. This keeps the app testable and makes it straightforward to add a new data source without touching a single widget.

πŸ“ Project Structure

lib/
β”œβ”€β”€ app.dart                    # Root widget β€” router + theme wiring
β”œβ”€β”€ main.dart                   # Entry point, Hive bootstrap
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ constants/               # App-wide constants (name, API bases, labels)
β”‚   β”œβ”€β”€ network/                 # Dio client, API exception handling
β”‚   β”œβ”€β”€ router/                  # GoRouter config + adaptive nav shell
β”‚   β”œβ”€β”€ storage/                 # Hive local storage wrapper
β”‚   β”œβ”€β”€ theme/                   # Material 3 theme, color palette, radii
β”‚   β”œβ”€β”€ utils/                   # Formatters, launcher, responsive helpers
β”‚   └── widgets/                 # Shared widgets: hover effects, skeletons,
β”‚                                 # status views, language indicator dots
└── features/
    β”œβ”€β”€ github/                  # REST + GraphQL data sources, domain models
    β”œβ”€β”€ explore/                 # Home (trending) + search
    β”œβ”€β”€ issues/                  # Beginner-friendly issue finder
    β”œβ”€β”€ repo_details/            # Repository page (README / issues / about)
    β”œβ”€β”€ ai/                      # Gemini service, prompts, assistant UI
    β”œβ”€β”€ bookmarks/                # Bookmarks + contribution tracking (offline)
    β”œβ”€β”€ profile/                  # GitHub profile viewer
    β”œβ”€β”€ settings/                 # Theme, API keys, data management
    └── about/                    # About screen + About the Developer screen

πŸš€ Getting Started

Prerequisites

  • Flutter SDK 3.27 or newer (Dart β‰₯ 3.3)
  • A GitHub account (optional, only needed for a personal access token β€” see below)

Installation

git clone https://github.com/ArsalanKaleem/forgeos.git
cd forgeos

# Generate platform folders for your targets
flutter create . --platforms=web,android,windows,macos,linux

# Install dependencies
flutter pub get

# Generate Freezed / JSON models β€” required before first run
dart run build_runner build --delete-conflicting-outputs

# Run
flutter run -d chrome     # Web
flutter run -d windows    # or macos / linux
flutter run                # connected Android device or emulator

Generated *.freezed.dart / *.g.dart files are gitignored by design β€” the build_runner step above recreates them locally on every fresh clone.


βš™οΈ Configuration & API Keys

Both keys below are free and optional β€” ForgeOS is fully usable without either, just with lower GitHub rate limits and no AI features.

Key Purpose Where to get it
Gemini API key Enables all AI Assistant features aistudio.google.com/apikey β†’ paste into Settings β†’ Gemini API Key
GitHub personal access token Raises the REST rate limit from ~60/hr to 5,000/hr and unlocks GraphQL contribution insights (no scopes required β€” a plain classic token is enough) GitHub β†’ Settings β†’ Developer settings β†’ Personal access tokens β†’ paste into Settings β†’ GitHub Token

All keys are stored locally on your device (via Hive) and are sent only to their respective official APIs. ForgeOS has no backend of its own β€” there is nothing for it to log, sell, or leak.


πŸ“¦ Building for Release

Windows
flutter build windows --release

Output: build\windows\x64\runner\Release\forgeos.exe

An Inno Setup script for a proper Windows installer lives at installer/forgeos_installer.iss β€” compile it with Inno Setup to produce a signed-ready ForgeOS-Setup-x.x.x.exe.

Android
flutter build apk --release        # single APK
flutter build appbundle --release  # Play Store bundle
Web
flutter build web --release

Deploy the build/web output to Firebase Hosting, GitHub Pages, Vercel, Netlify, or any static host.

macOS / Linux
flutter build macos --release
flutter build linux --release

πŸ—ΊοΈ Roadmap

  • Push notifications for new beginner-friendly issues matching saved filters
  • "Similar repositories" recommendations powered by Gemini
  • Contribution streaks and lightweight gamification for the local tracker
  • Multi-language localization (UI strings)
  • Optional cloud sync of bookmarks across devices (still no mandatory account)
  • Browser extension: "Explain this issue" button injected directly into github.com

Have an idea? Open a feature request β€” roadmap items are pulled straight from real user requests.


❓ FAQ

Is this affiliated with GitHub? No. ForgeOS is an independent, unofficial client built on the public GitHub REST and GraphQL APIs.

Does it cost anything? No. The app itself is free and open source, and both external APIs it uses (GitHub, Gemini) have generous free tiers that cover normal personal use.

Do I need to sign in? No. Everything works anonymously. A GitHub token is optional and only raises your rate limit β€” it is never used to authenticate you, only to authenticate the request.

Where is my data stored? Entirely on your device, via Hive. Nothing is sent anywhere except the GitHub and Gemini APIs, and only the minimum data each request needs.

Can I self-host or white-label this? Yes β€” it's MIT licensed. Fork it, rebrand it, ship it.


πŸ†š How is this different from…?

GitHub Explore up-for-grabs.net Awesome-list repos ForgeOS
Cross-platform native app ❌ ❌ ❌ βœ…
Filters issues, not just repos ❌ Partial ❌ βœ…
AI explains issue difficulty ❌ ❌ ❌ βœ…
Offline bookmarks & tracking ❌ ❌ ❌ βœ…
No account required βœ… βœ… βœ… βœ…
Works on mobile Partial ❌ ❌ βœ…

🀝 Contributing

Contributions are genuinely welcome β€” an app built to help people make their first open source contribution should itself be an approachable one to contribute to. See CONTRIBUTING.md for setup details, coding conventions, and a list of good-first-issues on this very repo (yes, dogfooding intended).

  1. Fork the repository
  2. Create a feature branch (git checkout -b feature/your-feature)
  3. Commit your changes (git commit -m "Add your feature")
  4. Push to your branch (git push origin feature/your-feature)
  5. Open a Pull Request

Even small contributions count β€” typo fixes, README improvements, and issue triage are just as valuable as code.


⭐ Support the Project

If ForgeOS helped you land your first open source contribution, the single most useful thing you can do is star the repo β€” it's what gets this in front of the next developer staring at GitHub Explore wondering where to start.

Star History Chart


πŸ“„ License

Distributed under the MIT License. See LICENSE for details.


πŸ‘€ Author

Arsalan Kaleem β€” "Somi"

Flutter developer building cross-platform apps across mobile, desktop, and web, with a focus on Firebase, real-time systems, and AI-augmented developer tooling. ForgeOS is one of the ways I like to give back to the open source community that taught me most of what I know.


If this project helped you make your first open source contribution, consider giving it a ⭐ β€” it helps the next person find it too.

About

AI-powered companion for discovering trending GitHub repos and beginner-friendly issues, with Gemini-powered guidance for your first open source contribution. Built with Flutter for Web, Android, Windows, macOS & iOS.

Topics

Resources

Contributing

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages