Generated: 2026-05-15
Package: iconic_studio_pro · Flutter (Dart ≥ 3.0, Flutter stable channel)
Version: 1.0.0+1
Platforms: Android · iOS · Web
Account type: Individual user (no organizations or enterprises found)
Total public repositories: 4
| # | Repository | Description | Language | Has Real Code? | Status |
|---|---|---|---|---|---|
| 1 | Iconic-studio-pro | Premium icon editor with diamond refraction shaders | Dart / Flutter | ✅ Yes | Active — 19 open issues, CI running |
| 2 | curly-dollop | CardSnap — digital business card micro-SaaS | HTML / Node.js | ✅ Yes | Has code; no CI; 1 open issue |
| 3 | verbose-chainsaw | GitHub Copilot Agent Mode learning exercise | Shell | Exercise template with no real project; 2 open issues | |
| 4 | U | "We here 2" | — | ❌ No | Completely empty — no commits, no files |
The primary project. Full details in the sections below.
A digital business card SaaS concept built in Node.js + Express + SQLite.
- Users create a card (name, links, photo) and share it via a short URL.
- Three pricing tiers: Free / Pro ($9/mo) / Business ($29/mo).
- Pages: landing, drag-and-drop builder, shareable card view, AI prompt generator.
- Planned but not implemented: Stripe billing, NFC integration, CRM export.
- No CI, no tests, no deployment config. Codebase is an early prototype.
Auto-generated from the GitHub Skills "Build Applications with GitHub Copilot Agent Mode" template.
- Contains only scaffolding:
.devcontainer,.github/steps,.github/prompts,docs/, and aREADME.mdthat links to an exercise issue. - No application code. This is a guided tutorial workspace, not a real project.
- Created 2026-04-27. Description: "We here 2".
- Zero commits, zero files. The Git repository was initialized but nothing was ever pushed.
Iconic Studio Pro is a premium, mobile-first icon editor built with Flutter.
Its signature feature is a real-time GLSL diamond-refraction shader rendered via
flutter_shaders. Users upload a custom image, wrap it in a live diamond effect,
tune a full set of visual parameters, and export the result as a high-resolution PNG.
A creator-marketplace layer is scaffolded (icon packs, Firestore, Storage) but is not yet wired into the main navigation flow.
| File | Purpose |
|---|---|
lib/main.dart |
App entry point, all core editor UI and logic |
lib/auth_screen.dart |
Local (SharedPreferences-backed) auth state, sign-up/sign-in/sign-out screens |
lib/editor_storage.dart |
Persists editor slider values and import counter across restarts |
lib/export_helper.dart |
Conditional export — routes to export_io.dart or export_web.dart |
lib/export_io.dart |
Native file-save via path_provider |
lib/export_web.dart |
Web download via dart:html anchor trigger |
lib/app_colors.dart |
Central AppColors constants (background, panel, gold, etc.) |
lib/firebase_service.dart |
Firebase auth, Firestore (packs/icons), Storage helpers — scaffolded |
lib/firebase_options.dart |
Placeholder FlutterFire config — must be replaced before Firebase goes live |
lib/packs_screen.dart |
Icon-pack list UI (Firestore-backed grid) |
lib/pack_editor_screen.dart |
Per-pack icon editor with embedded StudioPage |
shaders/diamond_master.frag |
GLSL fragment shader: Voronoi facets, refraction, dispersion, sparkle, shimmer |
assets/icons/ |
Bundled icon assets |
test/widget_test.dart |
Widget smoke tests + EditorState unit tests |
.github/workflows/ci.yml |
CI: analyze → test → build (Android, iOS, Web) |
FIREBASE_SETUP.md |
Step-by-step guide for FlutterFire configuration |
deliverables/ |
Internal planning documents (not shipped) |
| Feature | Detail |
|---|---|
| Image import | file_picker with 2-import free tier; paywall after limit |
| Live GLSL preview | Diamond facets via Voronoi hash; animated light, sparkle, shimmer |
| Controls | Scale, Rotation, Brightness, Contrast, Saturation, Blur, Refraction Index, Sparkle Intensity, Facet Depth |
| Export | 3× pixel-ratio PNG via RepaintBoundary.toImage |
| Persistent state | All slider values + import counter saved in SharedPreferences via EditorStorage |
| Embedded mode | StudioPage(embeddedMode: true) skips storage and fires onStateChanged callback |
| Responsive layout | Side-panel desktop ≥600 px; stacked mobile < 600 px |
The current auth system is local-only — no remote back-end required:
AuthState(ChangeNotifier) stores login state inSharedPreferences.- Passwords are hashed with SHA-256 via the
cryptopackage. AuthGatewraps the app root and showsAuthScreenuntil the user is logged in.- A separate Firebase auth path exists in
firebase_service.dartbut is not currently wired into the main app flow.
The following Firebase-backed features are implemented but not yet integrated into the primary app navigation:
FirebaseService: email auth, user profile (Firestore), pack CRUD, icon CRUD, Storage upload, import counter sync, marketplace publish/download.PacksScreen: grid of user-owned icon packs (Firestore stream).PackEditorScreen: per-pack icon management with embedded editor sheet.- Firestore and Storage security rules documented in
FIREBASE_SETUP.md. - Critical:
lib/firebase_options.dartstill holds placeholder values and must be replaced with real keys fromflutterfire configure.
| Check | Status |
|---|---|
flutter analyze --fatal-infos |
❌ Currently failing on main |
flutter test |
⏭ Skipped (blocked by analyze failure) |
| Android / iOS / Web builds | ⏭ Skipped (blocked by analyze failure) |
lib/export_web.dart:2—dart:htmlis deprecated; should usepackage:web+dart:js_interoplib/export_web.dart:12— local variableanchoris unusedlib/main.dart:10— unused importflutter_svglib/pack_editor_screen.dart:415— unused field_previewKeylib/pack_editor_screen.dart:470—_packsis private toFirebaseService; must use public APIlib/pack_editor_screen.dart:536-538—embeddedMode,initialState,onStateChangednamed params not recognized (API mismatch)test/widget_test.dart:78—AppColorsnot imported; const expression compile error
- Colors — use
AppColorsconstants; never write rawColor(0x…)literals in widget code. - Color API — use
color.withValues(alpha: x), not the deprecatedcolor.withOpacity(x). - EditorState — immutable value object; always update via
.copyWith(…). - No SharedPreferences in
main.dart— persistence lives exclusively ineditor_storage.dartandauth_screen.dart; a test enforces this. - Tests — pump
MaterialApp(home: StudioPage())directly; do not pumpIconStudioPro(that exercisesAuthGateand breaks studio assertions).
| Package | Use |
|---|---|
flutter_shaders ^0.1.2 |
GLSL shader rendering |
file_picker ^6.1.1 |
Image import |
path_provider ^2.1.3 |
Native file-save path |
crypto ^3.0.3 |
Password hashing |
flutter_svg ^2.0.10 |
SVG rendering (currently imported but unused in main.dart) |
firebase_core ^2.32.0 |
Firebase initialization |
firebase_auth ^4.20.0 |
Firebase email auth |
cloud_firestore ^4.17.5 |
Pack and icon documents |
firebase_storage ^11.7.7 |
Icon image uploads |
shared_preferences ^2.2.3 |
Local editor state and auth persistence |
| Priority | Area | What to Build |
|---|---|---|
| 🔴 Now | CI stabilization | Fix the 7 active analyzer errors so tests and builds can run |
| 🔴 Now | Firebase setup | Run flutterfire configure; wire Firebase.initializeApp at app startup |
| 🟠 Next | Auth unification | Decide local vs Firebase auth; remove the unused path |
| 🟠 Next | Navigation | Connect PacksScreen into the main app flow (tab bar or drawer) |
| 🟡 Soon | Real paywall | Replace the placeholder "coming soon" snackbar with RevenueCat/in-app purchase |
| 🟡 Soon | Editor polish | Undo/redo, presets, multiple export sizes/formats, onboarding tour |
| 🟢 Later | Marketplace | Public pack discovery, ratings, thumbnails, creator profiles |
| 🟢 Later | More shaders | Additional visual effects beyond diamond refraction |
| 🟢 Later | Web showcase | Landing page for the app |
This report was auto-generated from a full source and CI review.