Pivella - Gestione P.IVA in forfettario
App per gestire il regime forfettario - P.IVA italiana
Live version: https://pivella.netlify.app/
- Node.js (v18 or higher recommended)
- npm (comes with Node.js)
- Clone the repository:
git clone https://github.com/MakhBeth/pivella.git
cd pivella- Install dependencies:
npm installStart the development server with hot module replacement:
npm run devThe application will be available at http://localhost:5173 (default Vite port).
Build the application for production:
npm run buildThe built files will be in the dist/ directory.
Preview the production build locally:
npm run previewCheck TypeScript types without building:
npm run lintpivella/
├── src/
│ ├── components/ # React components
│ │ ├── Header.tsx # Header component with navigation
│ │ ├── Header.module.css
│ │ ├── Footer.tsx # Footer component
│ │ ├── Footer.module.css
│ │ ├── Home.tsx # Main home page component
│ │ ├── Home.module.css
│ │ └── ForfettarioApp.tsx # Main app logic
│ ├── App.tsx # Root App component
│ ├── App.module.css # Global styles
│ └── main.tsx # Application entry point
├── public/ # Static assets
├── index.html # HTML template
├── vite.config.ts # Vite configuration
├── tsconfig.json # TypeScript configuration
└── package.json # Project dependencies and scripts
- React 18.2.0 - UI library
- TypeScript 5.9.3 - Type safety
- Vite 5.0.8 - Build tool and dev server
- CSS Modules - Scoped component styling
- Recharts - Charting library
- Lucide React - Icon library
Each component follows this pattern:
ComponentName.tsx- TypeScript React component with typed propsComponentName.module.css- CSS module for component-specific styles
The project uses strict TypeScript configuration. All components are typed with proper interfaces for props and state.
The production build generates optimized static files including:
- Minified JavaScript bundles
- Optimized CSS
- Service Worker for PWA functionality
- Static assets
Configuration can be modified in vite.config.ts.
TypeScript compiler options are in tsconfig.json and tsconfig.node.json.
This project is part of the Pivella suite for managing Italian VAT regime (regime forfettario).
Contributions are welcome! Please feel free to submit a Pull Request.
This started as an experiment in pure vibecoding. V1 was built entirely with the Claude iOS app, but it couldn't handle deployment. After manually deploying and configuring Netlify (the meme "AI: why can't they see my new site on localhost" is real), I started using GitHub Copilot for new features.
It didn't go badly until: I found conflicts to resolve... in the node_modules folder, a couple of "undefined is not a function" (sigh), and most importantly, hallucinations. So I had to bring out Claude Code and managed to rewrite the project so it wasn't a complete mess anymore.
The vibecoding experiment failed on some CSS and UI bugs that I just couldn't solve with prompting alone, but the product is still nice and it's a tool I'm proud of. Let's see how it goes.