Materializr
Open-source parametric 3D CAD for makers — constraint sketches, solid modeling, threads, SVG & text engraving, STL/STEP export. Android, iPad, Linux, Mac, Windows. Vibe coded.
RTX 5080 GPU workstations on demand for D5 Render, Lumion, Enscape. Pay-as-you-go or committed plans. Hosted in Bengaluru.
DesignTypeScript · CSSGitHub @coreframecloudAvailability needs another checkOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗This is a Next.js project bootstrapped with create-next-app.
First, run the development server:
npm run dev
# or
yarn dev
# or
pnpm dev
# or
bun dev
Open http://localhost:3000 with your browser to see the result.
You can start editing the page by modifying app/page.tsx. The page auto-updates as you edit the file.
This project uses next/font to automatically optimize and load Geist, a new font family for Vercel.
To learn more about Next.js, take a look at the following resources:
You can check out the Next.js GitHub repository - your feedback and contributions are welcome!
The easiest way to deploy your Next.js app is to use the Vercel Platform from the creators of Next.js.
Check out our Next.js deployment documentation for more details.
Set in Vercel → Project → Settings → Environment Variables (Production, and
Preview if wanted). All are optional and all are NEXT_PUBLIC_*, so they are
inlined at build time: redeploy after adding or changing one. Names only —
never commit values (.env* is gitignored).
| Variable | What it turns on |
|---|---|
NEXT_PUBLIC_GA4_ID | GA4 measurement id, G-…. Unset = the existing property G-BX4WY4GBSZ; off = no GA4. |
NEXT_PUBLIC_META_PIXEL_ID | Meta pixel (digits only). Unset = no pixel loaded. |
NEXT_PUBLIC_GOOGLE_ADS_ID | Google Ads tag, e.g. AW-…. Unset = no Ads tag. |
NEXT_PUBLIC_GOOGLE_ADS_LABEL_SIGNUP | Ads conversion label sent on sign_up |
NEXT_PUBLIC_GOOGLE_ADS_LABEL_LEAD | Ads conversion label sent on WhatsApp generate_lead |
NEXT_PUBLIC_GOOGLE_ADS_LABEL_PURCHASE | Ads conversion label sent on wallet purchase |
NEXT_PUBLIC_GOOGLE_ADS_LABEL_FIRST_TOPUP | Ads conversion label sent on the first paid top-up (first_topup, the intro offer). Make this the primary bid conversion. |
The labels are optional: without them, mark the GA4 events sign_up,
generate_lead, purchase and first_topup as key events and import them
into Google Ads. Conversions are sent from trackConversion in
lib/analytics.ts, which also pushes cf_<name> events to dataLayer for a
future Tag Manager container. Consent Mode v2 defaults (denied in the EEA, UK
and Switzerland, granted elsewhere) are set in app/layout.tsx before any
config call.
Every customer page (login, verify, My Activity, top-up, magic link, header,
org admin, CFD intake, rate card, download route) reaches the control plane
through ONE constant, API_BASE in lib/api-base.ts:
| Variable | What it does |
|---|---|
NEXT_PUBLIC_CONTROL_PLANE_API | API base URL, e.g. https://staging.example.com/api. Unset = https://control.coreframecloud.com/api (production, unchanged). |
Like every NEXT_PUBLIC_* variable it is read at build time (the API
base is inlined into the client bundles and the CSP header is baked into the
build), so rebuild after changing it. Only an https:// URL is accepted; http://localhost / http://127.0.0.1
are accepted only under next dev (non-production). Anything else falls back
to the production API. The CSP connect-src in next.config.ts always allows
the production origin and adds the configured origin when it differs. The
/tools, /dwg-check, /r/* and Studio rewrites in next.config.ts still
point at production on purpose.
The signup country pickers load GET /auth/countries from that API (every
country it accepts); the bundled list in lib/validation.ts is only the
offline fallback.