Take a local, read-only tour of faiNET. Payments, deployments, and account changes are unavailable in Preview Mode.
👁 Preview Mode — you're browsing without an account
· WEB & MOBILE DEVELOPMENT STUDIO ·
faiNET
OWNER: FAISAL HADAWAL
FreeProAdvance
📄 Use Template
🔌 Get API
🚀 Host for your web
📱 Build App
+50PROJECTS
+10KUSERS
+12MONTHS EXPERIENCE
Editor not loading below? Some sites block embedding.
API Keys Management & Studio
Create 20-digit API keys starting with FaiNxxx... (no repeated characters). Use these keys to power a Translator app, a Messenger, an AI Chatbot, or a Search Engine.
Test any of your API keys against a real AI model, powered by this site's own Cloudflare Functions.
Sends a real request through your first API key to an AI model. Uses real OpenRouter credits — send deliberately.
This key also works from any other app — just send it as a Bearer token to this same endpoint: curl -X POST https://YOUR-SITE.pages.dev/api/chat \
-H "Authorization: Bearer YOUR_FAINET_KEY" \
-H "Content-Type: application/json" \
-d '{"message":"hello"}'
Search
Real web search, powered by Tavily through this site's own Netlify Functions.
Sends a real request through your first API key to Tavily's search index.
This key also works from any other app: curl -X POST https://YOUR-SITE.pages.dev/api/search \
-H "Authorization: Bearer YOUR_FAINET_KEY" \
-H "Content-Type: application/json" \
-d '{"query":"your search terms"}'
Development & Hosting
Pick a project, then deploy, configure and monitor it.
Saved with your project. On every Deploy, these are injected as window.ENV into your HTML files automatically — read them in your JS with window.ENV.KEY.
Guide
1. Pick your project above.
2. Go to Deploy, drag & drop your project folder/files (or click to select), then hit Deploy.
3. Your project goes live at fainet.pages.dev/u/<yourFaisalID>/<project>/ — check it under Deploy.
4. Give your project a memorable name when creating it — that becomes part of the live link.
5. Files upload straight to your faiNET account — no build step needed for plain HTML/CSS/JS.
App Builder
Build mobile and desktop apps easily.
faiNET App Builder
Coming soon.
Buy a Domain
Coming soon — real domain search & registration is being finished up.
Buy a Domain
Search for a domain and connect it to your faiNET site. You're an admin — all domains are free for you.
All Available Domains
My Domains
Templates
Ready-made starters from the community — like, comment, and download.
Default
Top
Others
Yours
Post a New Template
faiNET Ecosystem Projects
Complete systems, apps, and learning experiments built by Faisal Hadawal. (Separate from your own projects under Development.)
Notifications
Updates about your account, deploys, and payments.
faiNET Platform Policies & Terms
Review our guidelines, privacy terms, API usage rules, and developer standards.
1. API Key & Chatbot File Upload Policy
API keys generated here grant full permissions for connected Chatbots and external apps to upload and analyze text, photos, audio, network files, docs, and zips.
2. Development & Deployment Security
All files uploaded via Development hosting are encrypted and securely processed.
3. App Builder Guidelines
App Builder generates application packages based on provided web URLs.
4. Privacy & Data Protection
Personal credentials and sessions are securely managed by Faisal Hadawal.
5. Subscription & Payment Terms
Payments are processed directly via Hesab Pay, without needing external ID verification.
6. Faisal ID — Unified Identity
Every account is tied to a single Faisal ID (a unique handle, similar to a GitHub username). This same ID is meant to carry across all of Faisal Hadawal's products — faiNET, fcode, faisal-AI-assistant, and future apps — so one identity works everywhere.
System Settings & Plans
Manage your platform preferences, appearance, subscription tiers, and support options.
Appearance & Theme
Switch between Dark Neon and Clean Light interface styles.
⚡ Subscription & Resource Plans
Choose the appropriate tier for your project requirements.
Free Plan
$0 / forever
10API keys
30Dev deployments
10App Builder
Popular
Pro Plan
$20 / month
100API keys
300Dev deployments
100App Builder
Advanced Plan
$199 / year
1,000API keys
3,000Dev deployments
1,000App Builder
Support & Donate ($2 - $500)
Support Faisal Hadawal's independent development studio and open-source projects.
Payment History
Real record of your upgrades and donations, tied to your account.
Log in with a real email account to see your history here.
Admin — Pending Hesab Pay Payments
Only visible to the account matching ADMIN_EMAIL. Approve to upgrade the user's plan for real.
powered by cloudflare
Main Control
Manage every faiNET account and platform-wide settings. Visible only to admins.
Platform Management
Add User
Users (0)
Profile
Set your name, cover photo, and profile photo — shown at the top of Home.
Your faiNET Site
—
Deploy under Development to publish your site at this address.
Name
Cover Photo
Profile Photo
Secure Payment
Pay securely via Hesab Pay.
1. Send payment via Hesab Pay to this number:
0766624975
2. Enter the transaction reference/number from your Hesab Pay app:
Hesab Pay has no public API to auto-verify transfers, so this goes to manual review instead of instant upgrade — usually confirmed within a few hours.
Are you sure?
This action cannot be undone.
\n`
: '';
for (const file of pendingFiles) {
const relPath = (file.webkitRelativePath || file.name).replace(/^[^/]+\//, '');
const finalPath = relPath || file.name;
let contentBase64 = await new Promise((resolve, reject) => {
const reader = new FileReader();
reader.onload = () => resolve(reader.result.split(',')[1]);
reader.onerror = reject;
reader.readAsDataURL(file);
});
// Real effect for Variables: inject window.ENV into every HTML file
// right before (or at the top if there's no ), so the
// project's own JS can read the values it saved.
if (varsScript && /\.html?$/i.test(finalPath)) {
const html = atob(contentBase64);
const injected = /<\/head>/i.test(html)
? html.replace(/<\/head>/i, varsScript + '')
: varsScript + html;
contentBase64 = btoa(unescape(encodeURIComponent(injected)));
}
const res = await fetch('/api/deploy', {
method: 'POST',
headers: { 'Content-Type': 'application/json', 'Authorization': 'Bearer ' + sessionToken },
body: JSON.stringify({ project: subdomain, path: finalPath, contentBase64 })
});
const result = await res.json();
if (!res.ok || !result.ok) {
deployConsole.innerHTML += `
⚠ Failed on ${finalPath}: ${result.error || res.statusText}
${tld}${adminFree ? 'Free (admin)' : `$${price.first.toFixed(2)} first yr · $${price.renew.toFixed(2)}/yr renew`}
`).join('');
}
// Legacy fake-domain helpers removed — search/buy now uses the real
// Cloudflare Registrar API (see renderDomainResult / buyDomain below).
function normalizeDomainName(raw) {
return raw.trim().toLowerCase().replace(/[^a-z0-9-]/g, '');
}
const DOMAIN_MARKUP = 3; // your profit per domain, added on top of Cloudflare's at-cost price
async function renderDomainResult(name, tld) {
const domain = name + tld;
domainResultBox.style.display = 'block';
domainResultBox.innerHTML = '
Checking real availability…
';
try {
const res = await fetch('/api/domain-search?q=' + encodeURIComponent(domain));
const data = await res.json();
if (!res.ok) {
domainResultBox.innerHTML = `