Pular para o conteúdo
Projetos
No ar2026

Social Engine

Plataforma social fullstack com feed, autenticação, posts, perfis, comentários, likes e descoberta de conteúdo.

Função
Fullstack Developer
Status
No ar
Social Engine
// Visão geral

Social Engine é uma plataforma social fullstack criada como projeto de portfólio para demonstrar arquitetura limpa entre frontend, backend e banco de dados. O frontend foi desenvolvido com SvelteKit, Svelte 5, TypeScript e TailwindCSS, enquanto a API foi construída em Go com Fiber, GORM e PostgreSQL. O projeto permite cadastro, login, publicação de posts com hashtags, feed público, curtidas, comentários, perfis públicos, páginas de exploração e tópicos em alta. Um dos diferenciais é o suporte a dois modos de execução: offline, usando dados mockados para explorar a interface sem backend, e online, conectado à API real em Go com PostgreSQL. A arquitetura foi pensada para simular um produto real, com sessão protegida por cookies httpOnly, API tipada no frontend, backend em camadas, migrations, Docker Compose, documentação Swagger e workflow de CI com testes.

Principais recursos

  • Autenticação com cadastro, login, JWT, bcrypt e sessão em cookie httpOnly.
  • Feed público com posts, hashtags automáticas e página individual de post.
  • Sistema de likes/unlikes com estado por usuário.
  • Comentários em posts.
  • Perfis públicos com estatísticas, avatar e banner customizáveis.
  • Explore com pessoas sugeridas, posts e filtro por tag.
  • Trending com hashtags e posts em alta.
  • Modo offline com dados mockados e modo online conectado à API real.
  • Interface polida com microinterações, transições e suporte a prefers-reduced-motion.
// Arquitetura

Arquitetura

O browser conversa com o servidor SvelteKit, que mantém a sessão via cookie httpOnly e chama a API Go de forma server-side. A API Go concentra a lógica de negócio, validações, autenticação e persistência no PostgreSQL.

  • Fluxo: Browser → servidor SvelteKit → API Go → PostgreSQL.
  • Auth tokens não ficam expostos diretamente no browser.
  • O frontend possui um client tipado para a API.
  • Backend em camadas: handlers, models / lógica de domínio e repositories.
  • Uma mock layer no frontend espelha o contrato da API.
  • Migrations e Docker Compose para o ambiente local.
  • Swagger para documentação da API.
  • GitHub Actions para testes e coverage gate.
// Desafios e soluções

Desafios e soluções

Backend opcional durante o desenvolvimento

Problema

Criar uma experiência completa de produto mesmo com backend opcional durante o desenvolvimento.

Solução

Implementei dois modos de execução: offline com dados mockados e online conectado à API real, controlados por uma flag de ambiente.

Autenticação segura

Problema

Manter autenticação segura sem expor tokens diretamente no browser.

Solução

A sessão é mantida em cookie httpOnly no servidor SvelteKit, enquanto as chamadas autenticadas para a API Go acontecem server-side.

Backend organizado e evolutivo

Problema

Organizar o backend de forma clara e fácil de evoluir.

Solução

A API foi separada em camadas, com handlers HTTP, lógica de domínio, repositories, validações, erros padronizados e logging estruturado.

// O que aprendi
  • Como conectar SvelteKit e Go em uma arquitetura fullstack real.
  • Como proteger sessões com cookies httpOnly e chamadas server-side.
  • Como criar um frontend que funciona tanto com mocks quanto com API real.
  • Como estruturar uma API Go em camadas.
  • Como pensar em produto, UX e arquitetura ao mesmo tempo.
// Tecnologias
SvelteKitSvelte 5TypeScriptGoPostgreSQLDockerTailwindCSSFiberGORMJWTSwaggerGitHub Actions