Skip to content

The easiest way to write and host a serverless application

License

Notifications You must be signed in to change notification settings

bhavyastar/genezio

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation


The easiest way to write and host a serverless application


unit-tests windows-integration-tests-prod linux-integration-tests-prod

npm-downloads

npm-version PRs Welcome

Join our community Follow @geneziodev

What is genezio?

genezio is a developer platform for full-stack developers or teams who need to build, run and maintain web, mobile or enterprise apps with a typesafe backend that scales automatically.

For more details on how to use genezio, you can check out the official documentation.

⭐ If you want to support the genezio community, give us a star on this repo ⭐

Contents

Features

  • πŸ’‘ Full static type-safety with auto-completion in your favorite editor.
  • 🧩 Typesafe RPC: Ensuring type safety and IDE auto-completion across diverse languages like TypeScript, Dart, Kotlin and Go, by leveraging advanced code analysis.
  • πŸš€ Tested and production ready for Typescript.
    • Beta support for: Kotlin and DART.
    • Under development: GoLang and Swift.
  • πŸ“¦ Export the resulting SDK using dependency managers such as NPM Registry - private to your team or public for anybody to use.
  • 🌐 Framework agnostic: works with React, Vue, Angular, Svelte, ExpressJS, Fastify, etc.
  • 🎯 Seamless Bundling and Compiling
  • ⚑ Deploy with one command the backend and the frontend.
  • πŸ”„ Multiple staging environments supported as well as local development environment.
  • πŸ–₯️ Dashboard: explore logs, env variables for different environments, Test interface and easy to access third party integration.
  • πŸ‘₯ Collaboration: work alone or as a team - share the projects and dashboard features between team members with different access rights.
  • ➰ Queues: use them for your automation apps.
  • πŸ—„ Databases: provisioned by us or you can bring your own. The database is not exposed to the frontend directly. Table creation and CRUD boilerplate functions generated through LLM.
  • πŸ•’ Cron jobs: scheduled to be executed up to a minute granularity.

Getting Started

Check out our Getting started documentation page to find out how to start using Genezio.

For more details about the genezio CLI commands, run genezio help or genezio [command] help.

Test your project using the Test Interface

You can also test your code locally by running the following command in the server directory.

genezio local

This will spawn a local server that can be used for testing. Now, you can navigate to the Test Interface and test your project locally from GUI.

Test Interface

Once you are happy with your project, you can deploy it in a production environment by running: genezio deploy.

Commands Summary

The genezio CLI tool supports the commands shown in the following table:

Command Description
genezio Context aware, interactive command that simplifies project management. Learn more
genezio create fullstack <backend-template> <frontend-template> Create a new fullstack project based on two templates: one backend and one frontend. Learn more
genezio create backend <template> Create a new backend project based on a template. Learn more
genezio create frontend <template> Create a new frontend project based on a template. Learn more
genezio create templates [filter] Lists all the available starting templates. Learn more
genezio addClass <class-path> [<class-type>] Adds a new class to the 'genezio.yaml' file. Learn more
genezio generateSdk Generates an SDK corresponding to a deployed project. Learn more
genezio local --port <port> Runs a local environment with your project for testing purposes. Learn more
genezio deploy Deploys your project to the genezio infrastructure. Learn more
genezio ls [<identifier>] Displays details of your projects. You can view them all at once or display a particular one by providing its name or ID. Learn more
genezio delete [<project-id>] Deletes the project described by the provided ID. If no ID is provided, lists all the projects and IDs. Learn more
genezio account Display information about the current account logged in. Learn more
genezio login <access-token> Authenticates with genezio platform to deploy your code. Learn more
genezio logout Logout from genezio platform. Learn more
genezio help / genezio <command> --help Displays help for the CLI tool.

Examples deployed with genezio

You can find out more about genezio from our examples repository.

A detailed list of all the examples is below:

Official documentation

How does genezio work?

genezio is using JSON RPC 2.0 to facilitate the communication between SDK and your class. Your functions are deployed in the Genezio infrastructure. The functions are not executed on a long lasting Virtual Machine. Instead, our system uses a serverless approach. Whenever a request is received, your code is loaded and executed. This is more cost and energy efficient. However, the developer needs to take into account the following - the values of the global variables are not persistent between runs.

Detailed documentation

To find more details on how to use genezio, check out the official documentation:

If you cannot find what you are looking for in the docs, don't hesitate to drop us a GitHub issue or start a discussion on Discord.

Getting support

We want you to get your project up and running in no-time.

If you find yourself in a pickle using genezio, drop us a GitHub issue, start a discussion with us on Discord or drop us an email at contact@genezio.io.

System requirements

  • genezio can be installed and used on macOS, Linux-based distributions and Windows.
  • A version of node >= 16.0.0 should be installed on your machine.

Troubleshooting

For the most common issues that our users have dealt with, we created a Troubleshooting section in the documentation.

If you don't find the guidance there, drop us a GitHub issue. We are more than happy to help you!

Contributing

Contributions are welcome! Please see our Contributing Guide for more details.

Show your support by giving us a star ⭐, to help others discover genezio and become part of our community!

Ecosystem

There are a growing number of awesome projects deployed with genezio and we want to shout out about them.

If you deployed a project using genezio let us know on Discord and we will add it to our Hall Of Fame.

Hall Of Fame

Below you can find projects build by the community and deployed with genezio.

Check them out for inspiration:

If you've also built a project that you are proud of, please open a Pull Request adding it or let us know on Discord.

Badge

Brag to your friends that you are using genezio with this awesome badge -> deployed with: genezio

[![deployed with: genezio](https://img.shields.io/badge/deployed_with-genezio-6742c1.svg?labelColor=62C353&style=flat)](https://github.com/genez-io/genezio)

License

genezio is licensed under GNU General Public License v3.0. For more information, please refer to LICENSE.

About

The easiest way to write and host a serverless application

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 99.3%
  • Other 0.7%