Feature requests inside your web, iOS and Android apps (React, React Native, Swift, Kotlin, Vue, Svelte and more). Users ask and vote, you hear it on Telegram, Slack or Discord, and everyone who asked
BusinessGitHub @youaskedOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
Feature requests your users can vote on, built into your app. Ask. Ship. Tell.
Loading the full README.
Read the full README ↗Feature requests your users can vote on, and a "you asked, it's live" moment when you ship.
apps/api: Hono on Cloudflare Workers + D1. Public widget API (/v1/*, publishable key), admin API
(/v1/admin/*, secret key) and a test dashboard at /admin.
packages/react: @youasked/react, the widget for React and Next.js, plus @youasked/react/server (signUser).
packages/js: @youasked/js, the same widget for any other website (Vue, Svelte, Angular, Nuxt, Astro, plain HTML), as a script tag or ES module.
packages/react-native: @youasked/react-native, native views for React Native and Expo.
packages/swift: the iOS SDK in SwiftUI, installed with Swift Package Manager from this repo (Package.swift at the root).
packages/android: the Android SDK in Jetpack Compose, installed from JitPack (com.github.youasked:youasked).
packages/cli: youasked, the setup command. npx youasked init creates an app, saves the keys and wires up the widget.
packages/mcp: @youasked/mcp, an MCP server so a coding agent can list requests, reply, set status and merge.
npx youasked init
Then, to let your agent read and ship requests:
claude mcp add youasked -e YOUASKED_SECRET_KEY=ya_sec_… -- npx -y @youasked/mcp
Commit with "closes YA-12" and the request ships. POST /v1/signup {name, email?} is what init calls (5 apps per IP per day while in beta).
import { YouAsked } from "@youasked/react";
<YouAsked appKey="ya_pub_…" user={{ id: user.id }} signature={signatureFromYourServer} />
Sign the user id on your server so nobody can vote as someone else:
import { signUser } from "@youasked/react/server";
const signature = await signUser(process.env.YOUASKED_SECRET_KEY!, user.id);
Leave out user for anonymous visitors. trigger="none" hides the floating button; open it with
useYouAsked().open() or openYouAsked(). Colours follow shadcn tokens automatically, or pass appearance.
UPLOADS R2 bucket (wrangler r2 bucket create youasked-uploads).
Every request also records the page path (no query string).<AskAbout topic="charts" prompt="Want more from charts?" />: a quiet link next to a feature. Opens the
composer asking "What would make charts better?" and saves the topic with the request.<AskForIt query={searchText} />: for empty search states, "Can't find “export”? Ask for it". After a locked
feature, use openYouAsked({ view: "new", draft: "Export to Excel", topic: "locked" }).
openYouAsked also takes topic and placeholder.users.last_whats_new_at, anonymous
visitors by device id), only counting things that shipped after their first visit, once per visit.<YouAsked demo />: no appKey, no network. Sample requests, working votes, posts and comments, and a pretend
team that replies a few seconds later. For docs, Storybook and landing pages.npm install
npm run dev:api # wrangler dev, local D1
npm run build # builds @youasked/react and @youasked/mcp
npm run typecheck # api, react, cli, mcp
Create an app: npx youasked init --api http://localhost:8787, or POST /v1/signup, or POST /v1/apps with
Authorization: Bearer $ADMIN_TOKEN and {"name": "..."}.
The SDKs and tools under packages/ (React, JS, React Native, Swift, Android, the CLI and the MCP server) are MIT. The hosted API, dashboard and website under apps/ are FSL-1.1-MIT: you can read, run and self-host them for your own apps, but not offer them as a competing hosted service. Each release becomes MIT two years after it ships. See LICENSE.