Uma base moderna para construir aplicações web com Laravel e Next.js.
Backend e frontend independentes durante o desenvolvimento, versionados juntos em um único monorepo.
Este repositório é um ponto de partida full-stack com uma API em Laravel e uma aplicação web em Next.js. A estrutura separa claramente as responsabilidades de backend e frontend, mas mantém todo o produto sob o mesmo histórico Git, facilitando mudanças coordenadas, revisão de código e deploy.
| Projeto | Responsabilidade | Tecnologias principais |
|---|---|---|
api/ |
Regras de negócio, persistência, filas e endpoints HTTP | PHP 8.3, Laravel 13, SQLite, PHPUnit, Pint |
frontend/ |
Interface web, componentes e experiência do usuário | Next.js 16, React 19, TypeScript 5, Tailwind CSS 4, shadcn/ui |
- PHP 8.3 e Laravel 13
- SQLite como banco local padrão, facilmente substituível por PostgreSQL ou MySQL
- Eloquent ORM, migrations, seeders, filas e cache do Laravel
- PHPUnit 12 para testes
- Laravel Pint para padronização de código
- Vite 8 e Tailwind CSS 4 para os assets do Laravel
- Next.js 16 com App Router e React Server Components
- React 19 e TypeScript 5
- Tailwind CSS 4
- shadcn/ui, Base UI e Lucide Icons
- Zod para validação de dados
- Componentes preparados para formulários, tabelas, gráficos, diálogos, navegação e feedback visual
boilerplate-full/
├── api/ # Aplicação Laravel
│ ├── app/ # Domínio, models, controllers e providers
│ ├── database/ # Migrations, factories e seeders
│ ├── routes/ # Rotas da aplicação
│ └── tests/ # Testes unitários e de integração
├── frontend/ # Aplicação Next.js
│ ├── app/ # Rotas, layouts e páginas
│ ├── components/ # Componentes reutilizáveis e UI
│ ├── lib/ # Utilitários e configurações
│ └── public/ # Arquivos estáticos
└── README.md
- PHP
8.3+ - Composer
2+ - Node.js
20.9+ - npm
10+ - Git
Clone o repositório e entre na pasta:
git clone <url-do-repositorio>
cd boilerplate-fullcd api
composer install
php -r "file_exists('.env') || copy('.env.example', '.env');"
php -r "file_exists('database/database.sqlite') || touch('database/database.sqlite');"
php artisan key:generate
php artisan migrate
npm installInicie o servidor Laravel, o worker de filas, os logs e o Vite em conjunto:
composer run devA API ficará disponível em http://localhost:8000.
Em outro terminal, partindo da raiz:
cd frontend
npm installCrie o arquivo de ambiente:
cp .env.example .envNo PowerShell, use:
Copy-Item .env.example .envInicie a aplicação:
npm run devO frontend ficará disponível em http://localhost:3000.
| Contexto | Comando | Descrição |
|---|---|---|
| API | composer run dev |
Inicia servidor, fila, logs e Vite |
| API | composer test |
Executa os testes do Laravel |
| API | ./vendor/bin/pint |
Formata o código PHP |
| API | php artisan migrate:fresh --seed |
Recria e popula o banco local |
| Frontend | npm run dev |
Inicia o Next.js em desenvolvimento |
| Frontend | npm run lint |
Executa o ESLint |
| Frontend | npm run build |
Gera e valida o build de produção |
| Frontend | npm run start |
Executa o build de produção |
Existe um único repositório Git na raiz. As pastas api/ e frontend/ não são submódulos nem repositórios separados: ao executar um comando Git dentro delas, o Git encontra automaticamente o repositório pai.
Para manter o histórico organizado, faça commits por projeto a partir da raiz:
# Alterações somente na API
git add api
git commit -m "feat(api): descreva a mudança"
# Alterações somente no frontend
git add frontend
git commit -m "feat(frontend): descreva a mudança"Uma mudança full-stack também pode ser versionada em conjunto:
git add api frontend
git commit -m "feat: descreva a entrega full-stack"O remoto e o push pertencem sempre ao repositório raiz:
git remote add origin <url-do-repositorio> # necessário apenas na primeira vez
git push -u origin main # primeiro push
git push # próximos pushesfeat(api): adiciona autenticação
fix(api): corrige validação do cadastro
feat(frontend): cria tela de login
fix(frontend): ajusta responsividade do menu
chore: atualiza dependências do monorepo
Execute as verificações do projeto alterado:
# API
cd api
composer test
./vendor/bin/pint --test
# Frontend
cd ../frontend
npm run lint
npm run build- Definir os endpoints da API em
api/routes/ - Configurar a URL da API nas variáveis de ambiente do frontend
- Adicionar autenticação e autorização
- Escolher o banco de produção
- Configurar CI/CD e ambientes de deploy
Feito para começar rápido, crescer com organização e manter frontend e backend alinhados.