Skip to content

Everything you wanted WhatsApp to be, and more. Slide is a simple and secure React and Node.js messaging platform, available to any authenticated user.

License

Notifications You must be signed in to change notification settings

arsantiagolopez/slide

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

93 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Fast, simple and secure messaging between users. Start a conversation with any user on the platform, add them as a friend, and get notified of incoming messages.




⚡ Preview

Mobile

Desktop

🎯 Features

  • Send messages to any user on the platform.
  • Local email authentication via email & password.
  • Update your profile name and picture.
  • Default gradient display picture upon sign-up.
  • Image uploads and hosting through ImgBB's API.
  • Friend/unfriend other users.
  • Receive live notifications of incoming messages.
  • Delete/archive unwanted messages.
  • Sort conversations by date, name or unread.
  • Sort friends by date or name.
  • Interactive inbox-like UI.

‎‍💻 Tech Stack

Client

Tech What for
React Build a component-based user interface.
Next.js Server-side rendering (SSR) of React components.
URQL GraphQL Client for data fetching, caching.
GraphQL Query language to describe how to interact with the API.
Websockets GraphQL live subscriptions for real-time messaging.
React Hook Form Form state management and validation.
React Dropzone Upload image files.
Dnd Kit Drag & Drop tookit.
Moment.js Parse & display dates.
Chakra UI Quickly build beautiful UI components.

Server

Tech What for
Node.js JavaScript runtime environment.
Express Design & build the API.
GraphQL Design & model the application entities.
PostgreSQL SQL database.
Redis Store session data in memory for lightning-fast queries.
Sequelize Interact with the database.
Apollo Server Express Create a GraphQL server with Express.js.
GOT Fetch data with promise-based HTTP requests.
GraphQL API HTTP API architecture.

DevOps

Tech What for
Vercel Host the client.
Heroku Server hosting & SSL certificate.
Babel Compile newer versions of JS to vanilla JS.

💡 Inspiration

The next intriguing step in my path to GraphQL mastery was GraphQL subscriptions. An instant messaging application was the perfect project to put GraphQL subscriptions to practice. Most social media applications have some sort of messaging system to allow users to interact with each other, so the ability to build one from the ground up seemed like a riveting challenge to me.

🚀 Learning Objectives

  • GraphQL mutations.
  • Master GraphQL.
  • Integrate a minimal modern conventional UI.
  • Advanced data fetching & caching with URQL.

📜 License

License

☕ Contact me

About

Everything you wanted WhatsApp to be, and more. Slide is a simple and secure React and Node.js messaging platform, available to any authenticated user.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages