Code Monkey home page Code Monkey logo

mockoops---ec's Introduction

๐Ÿ“ฑ Mockoops

Intro GIF

Create animated mockups from boring screen recordings in seconds, powered by React.

  • โšก๏ธ Superfast rendering powered by Serverless Functions
  • ๐Ÿ“ธ Updates previewed as soon as parameters are changed
  • ๐Ÿ“ Responsive Video Templates
  • ๐Ÿฅณ Comes with a bunch of templates suited for different scenarios.
  • ๐Ÿ˜Ž Long-term Caching for saving rendering times
  • ๐ŸŒค Light Mode / Dark Mode (Manual + Device preferences-based)

What is Mockoops? Click this ๐Ÿ‘‡

Recommended Video

๐ŸŽฌ Templates

Pckd comes with a bunch of templates. View the final renders here:

Current Templates ๐ŸŒˆ

Mockoops comes with a bunch of templates right out of the box! They are very responsive, customisable and diversified for each of your motion-graphics video need. Some of them are here:

๐Ÿ“ Angled Presentation

This template is idea for long-form content to make it more appealing (and possibly less boring too!). Here's a quick Showdown

angled-presentation.mp4

โšก๏ธ Quick Teaser

This one is great for quick teasers that start out by build anticipation in the begenning, revealing only certain part of the input video at first, and slowly reveal the entire thing.

Here's me, using it for Pckd's reveal

quick-teaser.mp4

๐Ÿ’ป Laptop Zoom

This one is for the more lo-fi people out there. This template lets you present your video on a moving MacBook screen on a beautiful workstation background. This could be used with non-screen recorded stuff as well!

laptop.mp4

๐Ÿ“š Text Reveal

This one is for short announcements or reveals. Most suitably when you just have one screen for an app and you want to tease the coming soon status!

text-reveal.mp4

Or it could even be used for things like the release of a new version of a product. The possibility with this one are endless

๐ŸŽญ Rotate Title

This one is well suited for use-cases where you need to present some text before a video, while not having to setup any fancy stuff

rotate-title.mp4

๐Ÿก Architecture

Here's a diagram explaining exactly how everything fits into place

Here's how everything fits into the scene

๐Ÿ“ Tech Stack

  • ๐Ÿ”ฅ NextJS - Because it's one of the best frontend JS Frameworks
  • โ–ถ๏ธ Remotion - For the video and rendering
  • ๐Ÿชฃ Linode S3 Storage - For quickly storing uploaded video files in storage buckets
  • ๐Ÿ’… Sass - For making the app look beautiful
  • ๐ŸŒฑ MongoDB (w/ Linode) - For caching renders with the same input params
  • ๐Ÿ”ซ React Recoil - For app-wide state management
  • ๐Ÿž React Hot Toast - For the notifications
  • ๐ŸŽ‰ React Confetti - For the joyous animations
  • ๐Ÿ’ฆ React Dropzone - For handling advanced drag-drop animations

๐Ÿ’พ Installation

Pre-Requisites

  1. NodeJS 14+
  2. NPM installation
  3. A S-3 compatible storage bucket with read and write access. (Optional)
  4. An Serverless account for rendering, (Optional)

The videos will only render to an mp4 file if you have all of this set-up. However, you would still be able to preview the videos in the browser without the last two.

Install steps

  1. Setup an Object storage bucket with Linode or any other cloud provider.
  2. Rename the .env.example file to .env.
  3. Install packatges using npm install
  4. Follow the installation instructions at Remotion Lambda Installation docs, till step 6 .
  5. Once you have the key ID and Secret from the lambda console, edit these values into the .env file along with other values.
  6. Verify .env setup using npx remotion lambda policies validate. Only proceed if you get checkmarks on everything, else repeat from step 4.
  7. Edit your preferred regions in src/deploy/regions.ts file.
  8. Deploy the functions using the command npm run deploy. Wait for deployment.

Run the app

  1. Run the development server using npm run dev. Navigate to the address displayed in the terminal to view the app. Verify that everything works.
  2. Create a production build using npm run build and serve using npm start.

๐Ÿ‘ฉโ€โš–๏ธ License

The software is published under the MIT License.

๐ŸŒŸ Support this project

If you believe this project has potential, feel free to star this repo just like many amazing people have.

Note The was originally a hackathon project, and at the time, I was not a very experienced programmer (which is appearant with the usage of JS over TS). Apologies if the code is a bit messy. I'll be refactoring it soon.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.