
A Fullstack Discord Clone using React and Go.
Valkyrie is a Discord clone built using React and Go. It includes features such as message, channel, and server CRUD operations, authentication using Express Sessions, real-time events, file uploads to S3, direct messaging, private channels, a friend system, and basic moderation and voice chat capabilities. The stack includes Gin for the HTTP server, Gorilla Websockets for WS communication, Gorm as the database ORM, PostgreSQL for data storage, Redis for session storage, S3 for file storage, and Gmail for sending emails. The theme is designed with React and Chakra UI, and state management is handled with React Query and Zustand.
make, you can look at the Makefile to quickly setup the following steps. Alternatively, copy the commands into your CLI.make postgres && make redis.make start and create a DB by running make createdb.go mod tidy..env.example to .env and fill in the values.go run github.com/sentrionic/valkyrie to start the server.If you only want to run the backend without installing Go and all the dependencies, you can download the pre-compiled server from the Release tab. Note that you will still need to follow steps 1, 2, and 4.
yarn to install the dependencies.yarn start to start the client.localhost:3000 to access the application.Once the server is running, go to localhost:<PORT>/swagger/index.html to see all the HTTP endpoints, and localhost:<PORT> for all the websocket events.
Valkyrie is a Discord clone built using React and Go. It offers a range of features similar to Discord, including messaging, channel and server management, authentication, file uploads, direct messaging, private channels, friend system, moderation capabilities, and voice chat. The application is built using a stack of technologies including Gin, Gorilla Websockets, Gorm, PostgreSQL, Redis, S3, React, Chakra UI, React Query, and Zustand. Installation instructions are available for setting up the server and web components separately.

A progressive Node.js framework for building efficient, scalable, and enterprise-grade server-side applications with TypeScript/JavaScript.
React is a widely used JavaScript library for building user interfaces and single-page applications. It follows a component-based architecture and uses a virtual DOM to efficiently update and render UI components
Chakra UI is a popular open-source React component library that provides a set of accessible and customizable UI components to help developers create modern web applications.
TypeScript is a superset of JavaScript, providing optional static typing, classes, interfaces, and other features that help developers write more maintainable and scalable code. TypeScript's static typing system can catch errors at compile-time, making it easier to build and maintain large applications.