← Tutte le idee Strumenti online

Scissor Studio

Un programma di grafica gratuito, alternativo ai grandi nomi

Cosa fa

Strumento di grafica nel browser, gratuito, pensato come alternativa ai programmi di design più costosi.

Come guadagna

Presentato su Hacker News dal suo creatore, che non dichiara incassi. Idee nostre per guadagnare con un progetto simile: funzioni avanzate a pagamento, modelli premium.

Rendilo tuo

  • Non competere su tutto: uno strumento solo per un compito, come le grafiche per i social dei negozi.
  • Modelli pronti in italiano per le festività e i saldi.

Le frasi da scrivere all'AI

1. Base del sito e grafica

Crea un'app web in italiano chiamata "Grafica Facile": uno strumento di grafica nel browser, gratuito per l'uso base, per creare post social, locandine, biglietti da visita e copertine con modelli pronti, testi, forme e immagini. Usa React, Vite, TypeScript e Tailwind CSS.

Pagine da creare:
1. Pagina iniziale con i modelli per formato e "Inizia a creare"
2. Editor: tela al centro, elementi a sinistra, proprietà a destra
3. Modelli per formato (post Instagram, storia, locandina A4, biglietto da visita)
4. I miei progetti
5. Pagina Pro

Stile: creativo e pulito: interfaccia grigio chiaro #F4F4F5, viola #7C3AED per le azioni, carattere "Inter", tela bianca grande al centro con le guide di allineamento rosa. Nessuna immagine generica di stock.

Tutto deve funzionare perfettamente da telefono. Tutti i testi in italiano, chiari e senza parole tecniche.

2. Database, account e sicurezza

Collega il progetto a Supabase e attiva la registrazione con email e password.

Crea queste tabelle:
- "progetti": nome, formato, contenuto della tela in JSON, miniatura, collegati all'utente
- "modelli": nome, formato, contenuto in JSON, gratuito o Pro

Regole di sicurezza obbligatorie:
- ogni utente vede solo i suoi progetti
- i modelli Pro si caricano solo per gli utenti Pro
- le immagini caricate stanno in uno spazio privato

Usa esattamente il codice SQL che trovi nei "Dettagli tecnici" di questa scheda: eseguilo nel SQL Editor di Supabase prima di continuare, poi collega le pagine alle tabelle.

3. L'editor sulla tela

L'editor usa la libreria Konva (canvas con oggetti): testi, forme, immagini, icone, che si spostano, ruotano e ridimensionano con le maniglie; guide di allineamento che compaiono vicino al centro e ai bordi; livelli, raggruppamento, annulla/ripeti.

Tutto il progetto si salva come JSON (posizioni, testi, colori), quindi resta modificabile; il salvataggio è automatico ogni 5 secondi dopo una modifica.

Esportazione in PNG e JPG ad alta risoluzione (codice nei Dettagli tecnici) e in PDF per la stampa. Caratteri da Google Fonts ospitati sul sito.

4. Modelli e Pro

Modelli per formato divisi per tema (ristorante, saldi, evento, compleanno), personalizzabili cambiando testi e colori.

Pro: tutti i modelli, rimozione dello sfondo dalle foto, esportazione PDF per la tipografia con margini di taglio, kit del marchio (colori e caratteri salvati) e nessuna filigrana.

5. Pagamenti con Stripe

Aggiungi un abbonamento a 5,99 € al mese. Gratis l'utente ha: modelli base ed esportazione PNG con una piccola filigrana. Con il piano Pro sblocca: tutti i modelli, rimozione sfondo, PDF per la stampa, kit del marchio e nessuna filigrana.

A pagamento riuscito il webhook porta l'utente al piano Pro; se l'abbonamento viene disdetto o non rinnovato lo riporta al piano gratuito.

Per la sessione di pagamento e il webhook segui la guida "Pagamenti con Stripe" di Fattibile.

6. Controlli specifici di questo progetto

Oltre ai controlli della guida "Controllo finale", verifica in particolare:
1. Stampa: esporta una locandina A4 in PDF e stampala: i testi devono essere nitidi e nulla deve essere tagliato vicino ai bordi.
Correggi quello che non va e scrivimi cosa hai cambiato.

Dettagli tecnici

Tela con oggetti ed esportazione nitida

Crea la tela con Konva, aggiunge un testo trascinabile con le maniglie e la esporta a 3 volte la risoluzione dello schermo per una stampa nitida.

import Konva from "konva";

export function creaTela(contenitore: HTMLDivElement, larghezza: number, altezza: number) {
  const tela = new Konva.Stage({ container: contenitore, width: larghezza, height: altezza });
  const livello = new Konva.Layer();
  tela.add(livello);

  const maniglie = new Konva.Transformer({ rotateEnabled: true, keepRatio: true });
  livello.add(maniglie);

  // Clic su un oggetto: compaiono le maniglie; clic sul vuoto: spariscono
  tela.on("click tap", (e) => maniglie.nodes(e.target === tela ? [] : [e.target]));
  return { tela, livello, maniglie };
}

export function aggiungiTesto(livello: Konva.Layer, testo: string) {
  const t = new Konva.Text({
    text: testo, x: 50, y: 50, fontSize: 48, fontFamily: "Inter", fill: "#111827", draggable: true,
  });
  livello.add(t);
  return t;
}

// Salvataggio come JSON (resta modificabile) ed esportazione ad alta risoluzione
export const salva = (tela: Konva.Stage) => tela.toJSON();

export function esporta(tela: Konva.Stage, maniglie: Konva.Transformer, formato: "png" | "jpeg" = "png") {
  maniglie.nodes([]);                                  // le maniglie non devono finire nell'immagine
  return tela.toDataURL({ mimeType: "image/" + formato, pixelRatio: 3, quality: 0.95 });
}

Progetti e modelli Pro

I progetti salvati come JSON e i modelli, con quelli Pro leggibili solo dagli abbonati.

create table progetti (
  id uuid primary key default gen_random_uuid(),
  utente_id uuid not null references auth.users(id) on delete cascade,
  nome text not null,
  formato text not null,
  contenuto jsonb not null,
  miniatura_url text,
  aggiornato_il timestamptz not null default now()
);
alter table progetti enable row level security;
create policy "le mie righe" on progetti
  for all using (auth.uid() = utente_id) with check (auth.uid() = utente_id);

create table modelli (
  id uuid primary key default gen_random_uuid(),
  nome text not null,
  formato text not null,
  contenuto jsonb not null,
  pro boolean not null default false
);
alter table modelli enable row level security;
create policy "modelli gratuiti o pro" on modelli for select using (
  not pro or exists (select 1 from profili p where p.id = auth.uid() and p.piano = 'pro'));

Pezzi comuni a tutti i progetti

Glossario

JSONB
Un tipo di colonna che contiene dati strutturati flessibili, come un piccolo documento.
Storage
Lo spazio di Supabase dove si salvano i file, come foto e audio, con le sue regole di accesso.
Konva
Una libreria che rende gli elementi disegnati su canvas spostabili e modificabili come in un programma di grafica.