# Can FckSignups Be Integrated with Existing Web Applications?

> Integrate FckSignups with your existing web app via iframe, API calls, or static tool schema. Streamline user signups effortlessly.

- Repository: [Abdullah/FckSignups](https://github.com/BraveOPotato/FckSignups)
- Tags: how-to-guide
- Published: 2026-09-07

---

**Yes, FckSignups (now NoSignups) can be integrated with existing web applications through iframe embedding, direct API calls to its Cloudflare Worker, or by consuming its static tool schema.**

FckSignups is a standalone React and TypeScript single-page application that hosts a curated directory of no-signup tools. Because the frontend renders entirely client-side in [`src/main.tsx`](https://github.com/BraveOPotato/FckSignups/blob/main/src/main.tsx) and the backend operates as stateless serverless functions, **FckSignups integration with existing web applications** requires no database connections or complex server configuration.

## Embed the Full UI via Iframe

The simplest integration method loads the complete React application inside an iframe. Since [`src/main.tsx`](https://github.com/BraveOPotato/FckSignups/blob/main/src/main.tsx) bootstraps the entire SPA and [`src/App.tsx`](https://github.com/BraveOPotato/FckSignups/blob/main/src/App.tsx) handles routing internally, you can embed the live site without hosting any code yourself. This approach leverages the existing [`src/components/Home/Tools/ToolCard.tsx`](https://github.com/BraveOPotato/FckSignups/blob/main/src/components/Home/Tools/ToolCard.tsx) component rendering and search functionality without requiring you to rebuild the interface.

```html
<!-- Example: embed the full NoSignups UI -->
<iframe
  src="https://nosignups.net"
  style="width:100%; height:800px; border:none;"
  sandbox="allow-scripts allow-same-origin"
></iframe>

```

The iframe loads the production build, which retrieves the static tool list and handles all navigation internally.

## Integrate via the Cloudflare Worker API

For deeper integration, call the stateless API endpoints defined in [`cloudflare-worker/worker.ts`](https://github.com/BraveOPotato/FckSignups/blob/main/cloudflare-worker/worker.ts) directly from your application. The worker exposes three POST endpoints—`/suggest`, `/submit`, and `/report`—that accept JSON payloads and return standard HTTP responses.

### Submitting New Tools

When users suggest tools from your interface, forward the request to the suggestion handler:

```javascript
async function suggestTool(tool) {
  const response = await fetch('https://worker.nosignups.net/suggest', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json',
    },
    body: JSON.stringify(tool), // { name, url, description, category, tags, … }
  });
  const result = await response.json();
  if (!response.ok) throw new Error(result.error);
  return result; // e.g. { message: 'PR opened', prUrl: '…' }
}

```

The [`cloudflare-worker/urlHandlers/handleSuggestTool.ts`](https://github.com/BraveOPotato/FckSignups/blob/main/cloudflare-worker/urlHandlers/handleSuggestTool.ts) handler validates the payload and automatically creates a GitHub pull request using the repository owner and name specified in environment variables (`GITHUB_REPO_OWNER`, `GITHUB_REPO_NAME`, `GITHUB_TOKEN`).

### Reporting Abusive Entries

Similarly, abuse reports route through [`cloudflare-worker/urlHandlers/handleReportTool.ts`](https://github.com/BraveOPotato/FckSignups/blob/main/cloudflare-worker/urlHandlers/handleReportTool.ts) via the `/report` endpoint, allowing your application to maintain content quality without implementing your own moderation queue.

## Consume the Static Tool Catalog

You can bypass the UI entirely by importing the master tool list from [`src/data/schema.js`](https://github.com/BraveOPotato/FckSignups/blob/main/src/data/schema.js). This static JavaScript module exports the complete catalog including tool IDs, names, URLs, categories, and tags.

```javascript
import tools from 'https://nosignups.net/data/schema.js'; // public static file

// Example: filter tools by category
const devTools = tools.filter(t => t.category === 'development');
console.log(devTools);

```

Because the schema is a plain JavaScript module, you can bundle it with Webpack or Vite, or fetch it dynamically as JSON to power custom interfaces while relying on FckSignups as the single source of truth.

## CORS and Cross-Origin Configuration

The [`cloudflare-worker/utils.ts`](https://github.com/BraveOPotato/FckSignups/blob/main/cloudflare-worker/utils.ts) file explicitly configures CORS headers to whitelist production domains and common localhost ports. The `corsHeaders()` helper function ensures safe cross-origin requests from any domain you host, eliminating browser security errors when calling the API from external applications.

## Summary

- **Iframe embedding** requires zero code changes and loads the full React SPA from [`src/main.tsx`](https://github.com/BraveOPotato/FckSignups/blob/main/src/main.tsx) and [`src/App.tsx`](https://github.com/BraveOPotato/FckSignups/blob/main/src/App.tsx)
- **Direct API integration** uses the Cloudflare Worker endpoints in [`cloudflare-worker/worker.ts`](https://github.com/BraveOPotato/FckSignups/blob/main/cloudflare-worker/worker.ts) with handlers in [`cloudflare-worker/urlHandlers/handleSuggestTool.ts`](https://github.com/BraveOPotato/FckSignups/blob/main/cloudflare-worker/urlHandlers/handleSuggestTool.ts) and [`cloudflare-worker/urlHandlers/handleReportTool.ts`](https://github.com/BraveOPotato/FckSignups/blob/main/cloudflare-worker/urlHandlers/handleReportTool.ts)
- **Static schema consumption** imports the tool list from [`src/data/schema.js`](https://github.com/BraveOPotato/FckSignups/blob/main/src/data/schema.js) for custom UIs
- All methods work without database dependencies or server-side rendering requirements

## Frequently Asked Questions

### Can I host FckSignups on my own domain?

Yes, you can deploy the React application to your own infrastructure by building the source and serving the static files. The Cloudflare Worker runs independently and can be pointed to your own fork of the repository by updating the `GITHUB_REPO_OWNER` and `GITHUB_REPO_NAME` environment variables.

### Does the API require authentication?

The Cloudflare Worker endpoints do not require client-side authentication tokens. However, the worker itself validates requests using a server-side `GITHUB_TOKEN` to create pull requests and issues. Your application only needs to send standard JSON payloads without API keys.

### What data format does the tool schema use?

The [`src/data/schema.js`](https://github.com/BraveOPotato/FckSignups/blob/main/src/data/schema.js) exports an array of tool objects containing fields such as `id`, `name`, `url`, `category`, `tags`, `description`, and `addedDate`. Each tool follows a strict TypeScript interface defined in the source code, ensuring type safety when consumed by TypeScript applications.

### Is there a rate limit on the suggestion API?

While the source code does not implement explicit rate limiting in [`cloudflare-worker/urlHandlers/handleSuggestTool.ts`](https://github.com/BraveOPotato/FckSignups/blob/main/cloudflare-worker/urlHandlers/handleSuggestTool.ts), Cloudflare Workers inherently provide DDoS protection and resource limits. For high-volume integrations, consider implementing client-side debouncing or caching the static schema locally rather than hitting the suggestion endpoint repeatedly.