Edge
Edge로 모든 암호자산을 관리하고, 가장 안전하게 구매·보관·거래
1분에 전문가 수준의 예방 서류 PDF 생성, AI가 항목을 자동 작성
Crea preventivi professionali in PDF in un minuto: rivalsa INPS, ritenuta d'acconto, regime forfettario, bollo. Nessuna registrazione, l'AI scrive le voci per te.
금융TypeScript · CSSGitHub @alifatico온라인운영자 미확인
써 보셨어요? 한 번만 눌러 주세요. 로그인은 필요 없어요.
아직 감지된 업데이트가 없습니다. GitHub 릴리스가 나오면 여기에 보입니다.
개인 계정의 공개 저장소 소유자는 GitHub로 로그인해 운영자를 확인하고 소개를 직접 관리할 수 있습니다. 관리자 승인은 필요하지 않습니다.
로그인한 뒤 확인 파일을 만들어 이 저장소의 기본 브랜치에 30분 안에 커밋해 주세요. 다른 브랜치나 포크의 파일은 인정하지 않습니다. 파일을 올린 뒤 아래에서 확인하면 관리자 승인 없이 관리할 수 있습니다. 자격을 유지하려면 파일을 남겨 두세요.
로그인이 필요하면 로그인 화면으로 이동합니다. 로그인 후 이곳으로 돌아와 원하는 확인 버튼을 다시 눌러 주세요.
프로젝트 폴더에서 /nomorevibe verify를 실행하면 소유권을 확인하고 소개를 직접 관리할 수 있습니다.
1분 만에 확인하기메이커가 쓴 소개는 위의 한 줄이 전부입니다. 더 자세한 내용은 저장소 README에서 읽을 수 있습니다. 저장소 README ↗
README 전체를 불러오는 중입니다.
README 전문 보기 ↗Preventivi professionali in PDF in 60 secondi — un micro-SaaS pronto a incassare.
Chi ha una Partita IVA fa preventivi ogni settimana, di solito con Word o Excel: i calcoli (rivalsa INPS, ritenuta d'acconto, IVA per aliquota, bollo, regime forfettario) sono noiosi e si sbagliano. Preventivissimo li fa in automatico, l'AI scrive le voci, il PDF esce pulito con logo e colore del professionista.
Modello di business
| Piano | Prezzo | Cosa sblocca |
|---|---|---|
| Gratis | 0 € | Preventivi illimitati nel browser, PDF con filigrana "ANTEPRIMA" |
| Singolo | 4,90 € una tantum | PDF pulito di quel preventivo, riscaricabile dopo le modifiche |
| Pro | 9 €/mese o 59 €/anno | PDF illimitati, portale Stripe per gestire l'abbonamento |
Nessun database per gli utenti, nessun account: i preventivi vivono nel browser, Stripe è l'unica fonte di verità per i pagamenti e il server rilascia token firmati (HMAC) come prova di acquisto. L'unico stato lato server è opzionale: i preventivi inviati al cliente con link e accettazione online, salvati in un Redis (Upstash) con scadenza a 12 mesi. Costi fissi: solo l'hosting (Vercel Pro 20 $/mese per uso commerciale, oppure Railway/Fly.io/un VPS da pochi euro) più le commissioni Stripe per transazione.
sk_test_… per provare, sk_live_… per incassare).STRIPE_SECRET_KEY e fai deploy. Non serve altro: l'URL pubblico viene rilevato da solo.4242 4242 4242 4242: crea un preventivo, clicca Scarica PDF, paga, torna sulla pagina di successo e il PDF pulito si scarica da solo.sk_live_… e compila BUSINESS_* e SUPPORT_EMAIL (compaiono nel footer e nelle pagine legali).Opzionali ma consigliati:
UPSTASH_REDIS_REST_URL/TOKEN vengono iniettate da Vercel.ANTHROPIC_API_KEY → attiva Bozza con AI (descrivi il lavoro → voci, prezzi e condizioni). Costo per bozza nell'ordine dei centesimi; AI_DAILY_LIMIT limita la spesa.APIFY_TOKEN oppure OPENAPI_COMPANY_TOKEN → attiva la ricerca nel Registro Imprese nel campo cliente: la scelta di un'impresa compila tutti i dati (P. IVA, codice fiscale, indirizzo, CAP, città, provincia, codice SDI, PEC quando disponibile). Con Apify (actor jungle_synthesizer/italy-registroimprese-bilanci-scraper, piano Free da 5 $/mese senza carta, ~0,03 $ a ricerca) compare un pulsante "Cerca nel Registro Imprese" e ogni ricerca è un run di qualche decina di secondi; con openapi.com (wallet prepagato, ricarica minima 50 €, ~2 centesimi a cliente) i suggerimenti arrivano mentre si scrive. COMPANY_LOOKUP sceglie il provider quando ci sono entrambi i token, COMPANY_LOOKUP_DAILY_LIMIT limita la spesa, COMPANY_LOOKUP=mock prova la funzione in locale senza token.RESEND_API_KEY → recupero della chiave Pro via email ("ho perso la chiave").NEXT_PUBLIC_PLAUSIBLE_DOMAIN → statistiche senza cookie.STRIPE_PRICE_* → usa Prezzi creati nel dashboard Stripe invece di quelli ad-hoc.Tutte le variabili sono documentate in .env.example.
npm install
cp .env.example .env.local # compila almeno STRIPE_SECRET_KEY per provare i pagamenti
npm run dev # http://localhost:3000
npm test # calcoli fiscali, token di licenza, rendering PDF
npm run lint && npm run typecheck
npm run build && npm start # build di produzione
Per i pagamenti in locale non servono webhook: la pagina /success verifica la sessione Checkout direttamente con l'API di Stripe. Per provare Invia al cliente in locale usa SHARE_STORE=memory (store in memoria, si svuota al riavvio).
Browser (localStorage) Server (Next.js route handlers, stateless)
┌─────────────────────────┐ POST /api/pdf {quote, unlock|license} ┌─────────────────────────┐
│ preventivi, profilo, │ ───────────────────────────────────────▶ │ zod → calcoli → react-pdf│
│ chiave Pro │ ◀─────────────────────────────────────── │ filigrana se non pagato │
└─────────────────────────┘ application/pdf └─────────────────────────┘
│ POST /api/checkout {plan, docId} │
▼ ▼
Stripe Checkout ──▶ /success?session_id=… ──▶ GET /api/checkout/verify ──▶ token HMAC
(single: legato al docId · pro: valido fino a fine periodo)
docId), per sempre, anche dopo modifiche./api/license/refresh, che controlla lo stato dell'abbonamento su Stripe. Disdetta → nessun rinnovo./api/license/recover cerca l'email tra i clienti Stripe con abbonamento attivo e invia una nuova chiave (risposta identica in ogni caso: niente enumerazione di email)./api/share salva uno snapshot del preventivo pagato in Redis con un id pubblico e una chiave proprietario; /p/<id> mostra il preventivo, il PDF pulito e i pulsanti Accetta/Rifiuta; la decisione registra nome, nota, data e un hash giornaliero dell'IP e avvisa il mittente via email (Resend)./preventivo/<slug>): 20 modelli con contenuti unici e voci precompilate che si aprono nel builder con /app?template=<slug>; /preventivo-ai presenta la bozza con AI./api/company/search?q=, /api/company/run/<id>, /api/company/<id>): due provider dietro src/lib/company.ts. Apify: la ricerca avvia un run dell'actor e risponde con il suo id, il browser fa polling finché i record arrivano, ogni record porta già la scheda completa. openapi.com: autocomplete con arricchimento name mentre si scrive e una chiamata IT-start alla scelta. In entrambi i casi risposte in cache in memoria, rate limit per IP e tetto giornaliero di chiamate a pagamento.src/
app/ pagine (landing, /app, /success, /privacy, /termini) e API in app/api/*
components/ UI: builder/*, QuotePreview (gemello HTML del PDF), Landing, …
lib/quote/ modello, calcoli (calc.ts), schema zod, etichette documento it/en
lib/pdf/ documento react-pdf + sanitizzazione caratteri
lib/stripe.ts Checkout, verifica sessione, abbonamenti, portale
lib/share.ts link al cliente e accettazione (store.ts: Upstash Redis o memoria)
lib/professions.ts modelli e contenuti delle pagine per professione
lib/license.ts token HMAC (single/pro)
lib/ai.ts bozza con Claude (output strutturato via zod)
lib/i18n/ dizionari UI it/en
tests/ vitest
Sconti di riga e globale · IVA per aliquota (22/10/5/4/0) · rivalsa INPS 4% (soggetta a IVA e a ritenuta) · ritenuta d'acconto 20% (su imponibile + rivalsa, mai sull'IVA) · imposta di bollo 2 € sugli importi esenti > 77,47 € · regime forfettario (IVA 0, niente ritenuta, dicitura L. 190/2014) · acconto in percentuale. Tutto coperto da test in tests/calc.test.ts.
La checklist operativa (SEO, canali, prezzi, metriche) è in docs/LAUNCH.md; l'analisi dei concorrenti e le scelte di posizionamento in docs/COMPETITORS.md.
Codice proprietario — tutti i diritti riservati.