10K search impressions produced 8 downloads, so I built a free Skill Builder instead

I’m building Skilly, a Mac app that teaches people how to use desktop software while they work. The product itself works, but our acquisition funnel had an uncomfortable result: roughly 10K search impressions led to only 8 app downloads.

That suggested the jump from “I have a learning problem” to “install a desktop app” was too large. So I built a free Skill Builder on the website.

A visitor describes what they want to learn and gets a full, structured learning-plan preview without creating an account. We ask for email only at delivery so we can send a valid Markdown skill that can be imported into the app. The goal is to provide value before installation, not hide a demo behind signup.

I’m now measuring builder generation → verified email → skill delivery → app activation.

For founders who have used a free tool as an acquisition wedge:

• Does this feel like a credible bridge into a paid product? • Would you optimize first for verified emails or imported skills? • What is the one piece of proof you would add before asking someone to install?

I’ll add the tool link in a comment so this is not just a link post.

reddit.com
u/engmsaleh — 4 days ago

I made a free AI learning-plan generator for people learning desktop software

I’m building Skilly, a screen-aware Mac tutor, and one problem kept coming up: people often know the result they want, but not the sequence of skills needed to reach it.

So I made a free web tool that turns a specific goal — like “build a financial model in Excel” or “create a product render in Blender” — into a structured six-stage learning plan with source references.

You can inspect the complete preview without an account or credit card. If it is useful, the tool can email the Markdown skill file so it can be imported into the optional Mac tutor and followed while working. The generator itself is free.

This is deliberately for learners doing real work, rather than creators selling courses.

I would especially value feedback on:

• Which app and goal you tried • Where the generated instructions became too generic • Whether the sources were specific enough to verify the steps

I’ll put the tool link in a comment so the discussion stays focused on the result.

reddit.com
u/engmsaleh — 4 days ago

Skilly - free AI course generator for learning any desktop software

Most AI course generators I found are built for people selling courses. I wanted one for the person who is simply stuck learning Blender, Excel, Figma, Xcode, or another desktop app.

Today I shipped a free web tool that turns a specific goal into a six-lesson learning plan. For example: “build a financial model in Excel” or “make a portfolio-ready product render in Blender.”

You can see the full preview without creating an account or entering an email. If the plan looks useful, you can have the complete Markdown skill file sent to your inbox and import it into the Skilly Mac app for voice and on-screen guidance while you work.

I deliberately put the email step after the preview because I did not want a blind lead form. The current limitation is that software versions differ, so the generated plan includes source references and asks learners to verify version-specific instructions.

I would genuinely value feedback on three things:

  1. Is the six-lesson preview detailed enough to be useful on its own?

  2. Would you call this a course generator, learning-plan generator, or something else?

  3. Does asking for email only when delivering the file feel like a fair exchange?

I will put the tool link in a comment so this post stays focused on the build and feedback.

reddit.com
u/engmsaleh — 8 days ago
▲ 3 r/roastmystartup+1 crossposts

[macOS testers] Can Skilly get you to the right button without a tutorial?

I’m testing a Mac app that you talk to while you’re stuck inside Blender, Figma, Xcode, or another app. It looks at the current screen, answers out loud, and tries to point you to the control you need.

The project started as a fork of Farza’s open-source clicky: https://github.com/farzaa/clicky

I added tutor mode, a realtime voice pipeline, reusable skills, courses, and automatic language detection. Our version is open source too.

I’m not looking for polite feedback. I need a few Apple Silicon Mac users to test three things:

  1. Does installation and sign-in work the first time?

  2. Can you get a useful answer in your first conversation?

  3. Does the pointer land on the right control, or does it feel unreliable?

The beta is free. I’ll put the download and source links in the first comment so this post stays focused on the test.

39-second demo: https://youtu.be/M29K4g5Z_NA

u/engmsaleh — 11 days ago

10K search impressions, 8 downloads, 1 customer — the activation lesson behind my micro-SaaS

I spent weeks asking how to get more traffic. Then search visibility started moving and exposed a less comfortable problem: traffic was not the main bottleneck.

Over the latest measured 30-day window, Skilly reached roughly 10,080 Google impressions and 27 clicks. Across the product funnel we saw 8 unique downloaders, 5 trial starts, 5 first conversations, and 1 paid customer.

The useful lesson was that “more visitors” and “more customers” were two different projects. The biggest leaks were activation friction, Mac permissions, and explaining why a screen-aware voice tutor is useful before asking someone to install it.

What I'm testing next is the embeddable version shown below: a SaaS adds one script tag, imports its docs, and users ask what to do while Skilly points to the exact control. That removes the Mac install step and puts the value inside the product where the confusion happens.

For transparency, Skilly began as a fork of Farza's open-source clicky project (github.com/farzaa/clicky). Our version is also open source at github.com/tryskilly/skilly; we added a Realtime voice pipeline, skills/knowledge layer, courses, multilingual support, and the web widget.

Questions for other micro-SaaS founders:

  1. Would voice + pointer solve a real onboarding problem, or is chat enough?

  2. Is pricing by voice-interaction minute easier to accept than per MAU?

  3. What activation signal would you optimize first?

I'll put the live product link in the first comment.

https://reddit.com/link/1vjbj65/video/jnx7340ju8ih1/player

reddit.com
u/engmsaleh — 11 days ago

Skilly - a voice guide that points SaaS users to the exact button (v2.5 demo + feedback)

Four months ago I shared an early Mac tutor here. Since then, Skilly has evolved into an embeddable voice-and-pointer guide for SaaS products.

A user asks what to do inside the product. Skilly answers from the product docs, then points to the exact button or control on screen. The builder adds one script tag instead of scripting a product tour.

Skilly started as a fork of Farza's open-source clicky project (github.com/farzaa/clicky), and our version remains open source at github.com/tryskilly/skilly. The main additions are a single-call Realtime voice pipeline, a pluggable knowledge/skills layer, course-style progress, multilingual support, and the embeddable web guide shown in the demo.

I'd genuinely value feedback on three things:

  1. Does “voice + pointer” make sense within the first ten seconds?

  2. Would you trust this inside a product you use, or does screen awareness feel uncomfortable?

  3. For builders, is usage-based voice pricing clearer than per-MAU pricing?

Honest criticism is useful. The website link is in my first comment so this post can stay focused on the product and feedback.

https://reddit.com/link/1vjbh9z/video/b6ymm5j1u8ih1/player

reddit.com
u/engmsaleh — 11 days ago

Two weeks ago Google had indexed 3 of my 27 pages. Today it's 97. Here's exactly what changed. I will not promote

Solo founder, about 3 months in. Two weeks ago I finally instrumented my growth channels instead of guessing. The numbers were humbling, so I'm sharing them.

Where I was:

Domain Rating: 3

Google had indexed 3 of 27 pages. The rest sat in "Discovered - currently not indexed", which is Google's polite way of saying "you have no authority, we're not spending crawl budget on you".

A week of reply-guy on X (dozens of tailored replies on "drop your startup" threads): 4 visitors.

Organic search: about 2 visitors a week.

I'd been generating pages and spraying replies. Neither was the lever.

What I changed:

Stopped the volume drops. The only person who ever clicked through came from a back-and-forth conversation, not a broadcast.

Got 4 real dofollow backlinks from directories that actually pass equity (not free backlink list junk).

Resubmitted the sitemap and fixed a 404 error that Google kept encountering.

Set up IndexNow, which pings Bing/Copilot/Perplexity instantly. Google ignores it, but Bing powers ChatGPT search, so it isn't wasted.

Internal linking: every new page is linked from a hub that was already indexed.

Two weeks later:

Domain Rating: 3 -> 7

Indexed pages: 3 -> 97

Organic search: 24 visits in 30 days

Referral traffic: 12 (the backlinks landing)

The lesson I actually needed: authority gates indexing. I kept generating pages hoping to earn authority, but it runs the other way. Four real links moved more than 56 new pages did.

Still unsolved: 160 of my 208 visits are "Direct" and unattributable. And AI assistants cite me for my brand name but never for my category - asking for "best tools" in my space returns competitors and Reddit threads, never my site.

If you've been under DR 10, what actually moved it for you?

reddit.com
u/engmsaleh — 1 month ago

Two weeks ago Google had indexed 3 of my 27 pages. Today it's 97. Here's exactly what changed.

Solo-building a micro SaaS (a voice guide you embed in your product). Two weeks ago, I finally instrumented everything instead of guessing. It was grim:

Domain Rating: 3

Google had indexed 3 of 27 pages. The rest sat in "Discovered - currently not indexed", which is Google's polite way of saying "you have no authority, we're not spending crawl budget on you".

A week of X reply-guy (dozens of tailored replies on "drop your startup" threads): 4 visitors.

Organic search: about 2 visitors a week.

I'd been generating pages and spraying replies. Neither was the lever.

What I changed:

Stopped the volume drops. The only person who ever clicked through came from a back-and-forth conversation, not a broadcast.

Got 4 real dofollow backlinks from directories that actually pass equity (not free backlink list junk).

Resubmitted the sitemap and fixed a 404 error that Google kept encountering.

Set up IndexNow, which pings Bing/Copilot/Perplexity instantly. Google ignores it, but Bing powers ChatGPT search, so it isn't wasted.

Internal linking: every new page is linked from a hub that was already indexed.

Today:

Domain Rating: 3 -> 7

Indexed pages: 3 -> 97

Organic search: 24 visits in 30 days

Referral traffic: 12 (the backlinks landing)

The lesson I actually needed: authority gates indexing. I kept generating pages hoping to earn authority, but it runs the other way. Four real links moved more than 56 new pages did.

Still unsolved: 160 of my 208 visits are "Direct" and unattributable. And AI cites me for my brand name but never for my category ("best onboarding tools" returns competitors and Reddit, never me).

If you're under DR 10, what actually moved it for you?

reddit.com
u/engmsaleh — 1 month ago

Two weeks ago Google had indexed 3 of my pages. Today it's 97. Here's exactly what changed.

I'm building a voice guide you embed in your product. Two weeks ago, I finally instrumented everything instead of guessing. It was grim:

Domain Rating: 3

Google had indexed 3 of 27 pages. The rest sat in "Discovered - currently not indexed", which is Google's polite way of saying "you have no authority, we're not spending crawl budget on you".

A week of X reply-guy (dozens of tailored replies on "drop your startup" threads): 4 visitors.

Organic search: about 2 visitors a week.

I'd been generating pages and spraying replies. Neither was the lever.

What I changed:

Stopped the volume drops. The only person who ever clicked through came from a back-and-forth conversation, not a broadcast.

Got 4 real dofollow backlinks from directories that actually pass equity (not free-backlink-list junk).

Resubmitted the sitemap and fixed a 404 Google kept hitting.

Set up IndexNow, which pings Bing/Copilot/Perplexity instantly. Google ignores it, but Bing powers ChatGPT search, so it isn't wasted.

Internal linking: every new page is linked from a hub that was already indexed.

Today:

Domain Rating: 3 -> 7

Indexed pages: 3 -> 97

Organic search: 24 visits in 30 days

Referral traffic: 12 (the backlinks landing)

The lesson I actually needed: authority gates indexing. I kept generating pages hoping to earn authority, but it runs the other way. Four real links moved more than 56 new pages did.

Still unsolved: 160 of my 208 visits are "Direct" and unattributable. And AI cites me for my brand name but never for my category ("best onboarding tools" returns competitors and Reddit, never me).

What got you out of the DR<10 hole?

reddit.com
u/engmsaleh — 1 month ago
▲ 2 r/nocode+1 crossposts

[Beta] Skilly — embed a voice guide that points at your users' screen, into your own product. Looking for builders to try it + tear it apart

Solo founder looking for builders/SaaS folks to try this and tell me where it breaks.

Skilly is an embeddable widget: drop one script tag on your web app, teach it from your own docs, and your users get in-app help that answers out loud and moves their cursor to the exact button they need — instead of opening a ticket or bouncing during onboarding. Usage-based, open-source core, domain-locked to your site.

It's live and working — there's a "Try it on this page" widget on the site, so you can use it in ~10 seconds without installing anything. 30-sec demo of it working below ↓

What I'm after:

- Builders who'd consider in-app guidance in their product — does this fit a real use case, or is it a solution looking for a problem?

- Brutal feedback on the widget UX — the voice and the cursor-pointing, especially.

- Anyone open to being an early design partner — I'll set you up for free.

Try the live widget: tryskilly.app

Repo (open source): github.com/tryskilly/skilly

u/engmsaleh — 2 months ago

I turned my AI tutor into an embeddable widget so any SaaS can add in-app voice guidance that points at the exact button — useful or nah?

Solo founder. I built Skilly — a voice assistant that watches a screen and moves the cursor to the exact button. It started as a consumer Mac app; nobody converted to a paid version, so I made the engine embeddable for other products instead.

Now it's one script tag: drop it on your SaaS, teach it from your own docs/content, and your users get in-app help that answers out loud + points at the right element — instead of opening a ticket or bouncing during onboarding. Usage-based, open-source core, domain-locked to your site.

Short demo of it working (embedded on my own site) below ↓

The micro-SaaS reason I'm posting: support load + activation drop-off is where small teams bleed, and I'm trying to validate whether "embed a guide that points" is something you'd actually ship — or a nice-to-have I'm overrating.

Honest questions:

  1. Would in-app voice + pointer guidance cut your support/onboarding load, or do your users just not want voice?

  2. What would make you trust a 3rd-party widget enough to embed it?

reddit.com
u/engmsaleh — 2 months ago
▲ 9 r/BuildToShip+6 crossposts

Nobody was paying for my Mac app, so I split it into a 2nd product for a totally different buyer — the reasoning + what scared me

Building in public means posting the uncomfortable ones too, so here's mine.

I've spent months on Skilly — an open-source voice tutor for macOS. You ask out loud what you're stuck on; it watches your screen, talks you through it, and moves your cursor to the exact button. It genuinely works: people install it, clear the annoying macOS permissions onboarding, and come back and use it.

The problem I couldn't ignore: activation is fine, payment is ~zero. For months, I tweaked the consumer funnel — pricing, trial length, and onboarding — and the paid number didn't move.

So I made a call that still makes me nervous: I split Skilly into two products.

- For People: the consumer Mac tutor (unchanged).

- For Builders: the same voice-and-pointer engine, embeddable into someone else's product (one script tag, usage-based). The thesis: a company paying for in-app user guidance is a clearer buyer than an individual paying $19/mo to learn Blender.

What I changed this week: made Builders the homepage, added usage-based pricing, and wired a "book a call" path to find design partners.

What still scares me:

  1. Splitting a solo founder's focus across two ICPs is the classic trap — did I just halve my attention?

  2. The consumer SEO/content I built for months now points at the "wrong" funnel.

  3. Zero builder customers yet — this is a bet, not validation.

If you've pivoted B2C→B2B (or run both): did splitting help, or should I have killed one side outright?

(30-sec demo of the embed working below ↓)

Repo (open source): github.com/tryskilly/skilly

u/engmsaleh — 4 days ago

5 SOLIDWORKS API landmines that cost me weeks — save yourself the pain

I've been working deep in the SOLIDWORKS API (C# .NET, in-process add-in) and hit things that no documentation warns you about:

  1. CreateLine returns null on the first vertical segment.

SW's auto-relation suggester chokes when the first line in a fresh sketch is exactly vertical (x1 == x2) with no existing geometry to relate to. Retry with SetAddToDB(true) for just that first segment, then turn it off — otherwise FeatureExtrusion3 fails with "sketch may not be a closed profile."

  1. CreateArc's direction parameter is short, not int.

Pass an int, and you get CS1503. The compiler won't help — it silently boxes to the wrong type.

  1. SetSelectionMark doesn't exist on ISelectionMgr in SW 2024.

The docs reference it. It's not there. Use CreateSelectData() → set .Mark → AddSelectionListObject() instead.

  1. FeatureExtrusion3 returns null on annular sketches.

If you have an inner + outer profile (think pipe cross-section), FeatureExtrusion3 silently returns null. FeatureExtrusionThin2 is the workaround. ChatGPT will hallucinate a fix — it doesn't know this.

  1. Programmatic sketches leave disjoint segments.

Even with SetAddToDB(true) and EditRebuild3(), segments authored through the API don't auto-merge coincident endpoints. SketchAddConstraints("sgMERGEPOINTS") on each pair works but is fragile. Test with the CreateLine retry pattern, not always-on AddToDB.

These all came from building something that programmatically creates and validates CAD geometry — the kind of work where "returned null with no clear reason" becomes your full-time job.

https://preview.redd.it/11bo26138z1h1.png?width=1920&format=png&auto=webp&s=20df55ce9362085d388093e3af222e8da47a1726

Anyone else hit SW API weirdness that isn't documented? Drop yours below.

reddit.com
u/engmsaleh — 3 months ago
▲ 30 r/Houdini

I open-sourced a 12-hour Houdini curriculum (markdown format, intermediate)

Built this for a side project I'm working on (an AI tutor for macOS) and figured the curriculum itself was worth sharing as a standalone resource, since the SideFX docs are great but spread across dozens of pages, and the FX TD path specifically has a lot of "Solaris or DOPs?" ambiguity for people coming from other 3D tools.

Repo: https://github.com/tryskilly/skilly/blob/feature/skills-bridge-swift/skills/houdini-essentials/SKILL.md

Coverage (9 stages, ~12h of content, intermediate level — assumes basic 3D knowledge):

  1. SOP sources for FX (attributes, geometry spreadsheet, File Cache)

  2. Pyro Sparse — fire/smoke, shape operators, Clamp Below tuning

  3. FLIP fluids — Solver 2.0, particle separation, meshing

  4. RBD destruction — Bullet Solver SOP + Voronoi fracture

  5. Vellum — XPBD cloth/soft body/hair + the new rigid + fluid variants

  6. Solaris/LOPs — Stage context, SOP Import, MaterialX, light LOPs

  7. Karma — CPU vs XPU (honest write-up on Apple Silicon's current "no Metal" reality), denoiser, IPR, USD Render ROP

  8. Caching, versioning, $HIP variables, production hygiene

Grounded in Houdini 21 docs (verified May 2026 — no H21.5 or H22 yet). Apache-2.0, PRs welcome. Each gotcha is sourced to the SideFX docs/forums, where I could.

This isn't a replacement for the official docs or Applied Houdini — it's a structured "what to read in what order, what trips up the FX TD path, and what's the current 2026 answer" map.

Happy to take feedback on what's missing for v1.1.

reddit.com
u/engmsaleh — 3 months ago

I made a free, 6-hour After Effects curriculum and pushed the source on GitHub. All sourced from the official Adobe Help Center for AE v26 (Jan 2026). Apache-2.0.

What it covers:

  • Compositing vs editing — the mental model that catches almost every Premiere migrator off-guard
  • Timeline panel + Composition panel + Project panel — what each one is FOR (this is where most beginners get lost)
  • The Properties panel that landed in 2023-2024 — using it instead of the legacy Effect Controls
  • Keyframes + the graph editor (with the ease curves that make motion not look broken)
  • Anchor point + scale + rotation + opacity — Animation 101 done right
  • Pre-comps explained as containers (the "why" before the "how")
  • Render queue + Adobe Media Encoder handoff
  • Common beginner pitfalls flagged with what they look like on screen ("why is my keyframe not doing anything", "why does my scale look chunky", etc.)

Read on GitHub directly — it's pure markdown, no app required: https://github.com/tryskilly/skilly/tree/main/skills/after-effects-basics

Disclosure: I built this as part of an AI tutor app for Mac (it's the "lesson plan" the AI follows when teaching AE). But the curriculum stands on its own — you can read it like a textbook on GitHub.

Looking for: feedback on what's missing for absolute beginners. If there's a specific concept you wish more tutorials covered, drop it in the comments and I'll fold it into v1.1.

reddit.com
u/engmsaleh — 4 months ago

i'm a Mac dev who shipped Skilly recently — voice-first AI tutor that watches your screen + walks you through any Mac app. it works with Figma out of the box (no plugin to install), since it captures the screen via macOS ScreenCaptureKit and answers your spoken questions about whatever's on screen.

specifically for Figma:

  • ask "how do i make this an auto-layout" → cursor moves to the right panel + voice walks you through
  • ask "what's the difference between hug and fill" → real explanation, not just docs paste
  • works during real work sessions (not just demos)

it's an open-source fork of farzaa/clicky. free 15 min trial on first launch, no card needed.

what i'd actually love feedback on:

  1. for figma users — what's the most frequent "stuck" moment for you? (Frame vs Group? Auto Layout edges? Variable scopes?)
  2. is there a specific Figma feature you'd want a "tutorial mode" for?
  3. for designers who use voice memos / voice notes — do you find voice + screen helpful or distracting?

happy to share the github link in a comment if anyone wants to peek at the architecture.

reddit.com
u/engmsaleh — 4 months ago

8 days ago, I launched Skilly (voice-first AI tutor for Mac, fork of farzaa/clicky). I've been keeping every distribution attempt logged, so I have numbers instead of vibes. Sharing the messy, honest version because the polished retrospectives I read while building never matched my reality.

THE NUMBERS (last 7 days)

  • 104 pageviews / 104 sessions
  • 8 download CTA clicks (7.7% landing → click rate)
  • 12 actual app launches (some bypass the site via direct GitHub release)
  • 3 users granted all macOS permissions (the #1 funnel leak — 75% drop-off here)
  • 2 completed first voice turn

WHAT WORKED

  1. Reddit comments > announcement posts. Best ROI was a single comment in this sub on a "what are you building" thread — scored 3 organic. Most of my actual posts scored 1.

  2. r/SwiftUI technical post. One engineer responded with production-grade architecture advice across 4 rounds. That thread is now a real technical exchange, not a marketing post. Real expert relationships compound way more than view counts.

  3. A r/macapps thread about the original Clicky (which I forked) drove 2 organic referrals. I never posted there — being the active fork of an existing project people care about is its own marketing.

WHAT DIDN'T

  1. r/IndieHackers — 3 auto-removals, karma-gated. Don't try without 10+ in-sub karma first.

  2. New-domain Reddit filter — any post containing my product URL in the body gets killed by Reddit's site-wide filter. 6+ days post-launch, still active. Workaround: drop URL only in follow-up comments.

  3. r/MacOS Saturday post — flair-fit was right (Developer Saturday), positioning was wrong. Score 0, ratio 0.25.

  4. Directory submissions (BetaList, TAAFT, Toolify, etc.) — felt like hustle for hustle's sake. No measurable referral traffic.

  5. X reply-guy on auto-templates — generic replies got buried. Custom thread-specific replies got engagement.

WHAT I'D DO DIFFERENTLY

Long-tail SEO from day 1 instead of day 60. Agensi (linked here in this sub recently) went 0 to 8K users in 8 weeks via 86 articles answering specific search queries. We just shipped 9 articles. Should have started day 1.

THE BIGGEST UNFIXED LEAK

75% of users who download don't grant all macOS permissions. Just enabled session replay to find where in the onboarding they're stuck. If you've shipped a Mac app with screen-recording + accessibility prompts, did you find a flow that gets above 50% through?

What's been your top channel in the first 30 days?

reddit.com
u/engmsaleh — 4 months ago
▲ 7 r/SwiftUI+2 crossposts

Hey r/swiftui — shipped Skilly last week, a Mac menu-bar app where you talk to an AI that can see your screen. UI is SwiftUI hosted in NSStatusItem + a floating overlay panel for the live conversation.

Open source (MIT, fork of farzaa/clicky with tutor-mode added on top): https://github.com/tryskilly/skilly

Live: https://tryskilly.app

Three SwiftUI/AppKit interop questions I'd love to take on (real things in the codebase):

  1. Menu-bar panel pattern — MenuBarPanelManager.swift uses NSPanel hosting a SwiftUI view (CompanionPanelView). Works, but becomeKey / canBecomeKey semantics + SwiftUI's u/Environment

  2. Floating overlay window — OverlayWindow.swift is an always-on-top, click-through-when-idle overlay that appears next to whatever app the user is in. Currently toggling NSWindow.ignoresMouseEvents based on the hover state. Feels brittle. Better SwiftUI-native pattern out there?

  3. ScreenCaptureKit + SwiftUI — CompanionScreenCaptureUtility.swift triggers capture from a SwiftUI button. The TCC permission prompt UX feels rough; first-time users often miss the modal. Anyone figured out a way to anchor it to a SwiftUI view's coordinate space?

Also, the audio side (OpenAIRealtimeClient.swift + RealtimeAudioPlayer.swift) uses AVAudioEngine for the Realtime API's audio in/out — barge-in (user interrupting the AI mid-sentence) is the hardest part. AVAudioSession.interruptionNotification helps but isn't perfect. If anyone's wired Realtime into Swift, would love to compare notes.

All code's there, all critiques welcome. Honest, "your fork looks like clicky" is totally fair — adding the value layer is the whole exercise. (.dismiss) don't really talk to each other. Anyone built menu-bar SwiftUI apps with cleaner dismissal handling?

u/engmsaleh — 2 months ago