No description
Find a file
2024-07-27 13:00:44 -03:00
.bundle Add .bundle/config 2023-12-20 11:24:54 -03:00
cli Add init.rb 2024-05-23 22:53:54 -03:00
client Replace abandoned (Ruby) sass with nodejs sass 2024-07-27 13:00:44 -03:00
host Replace nanoc.yaml with nanoc.yaml.sample 2024-07-22 01:21:52 -03:00
server Add more init.rb files 2024-05-23 23:05:29 -03:00
.gitignore Replace nanoc.yaml with nanoc.yaml.sample 2024-07-22 01:21:52 -03:00
.gitmodules Update .gitmodules 2024-04-26 22:37:50 -03:00
.projectile Combine multiple entry points into one 2024-04-25 03:40:55 -03:00
.rubocop.yml Extend scope of 'rubocop:apply' 2024-04-25 04:16:57 -03:00
Gemfile Drop 'twenty-' prefix from toplevel directories 2024-04-21 20:11:25 -03:00
Gemfile.lock Replace abandoned (Ruby) sass with nodejs sass 2024-07-27 13:00:44 -03:00
LICENSE Add twenty-frontend/ 2023-12-08 15:27:00 -03:00
Rakefile.rb Update server.rake 2024-06-21 04:37:44 -03:00
README.md README: update 2024-05-04 14:48:58 -03:00
twenty.gemspec Replace abandoned (Ruby) sass with nodejs sass 2024-07-27 13:00:44 -03:00
twenty.gemspec.tt Replace abandoned (Ruby) sass with nodejs sass 2024-07-27 13:00:44 -03:00
VERSION v0.5.8 2024-05-04 12:23:11 -03:00

About

Twenty is a standalone web application with a practical purpose. But it's also a place where I can experiment with a different stack for the development of [web] applications in Ruby. See Design for more info.

Features

  • Provides a command-line utility to start / stop a web server
  • Connect / disconnect a project from the command line
  • Designed to work offline
  • Lightweight stack
  • Easy to install, easy to use

Design

  • The server is powered by rack and puma:
    • Accepts GraphQL requests at /graphql
    • Serves client (HTML, JS, CSS)
    • Dependencies: Sequel, SQLite3, ruby-graphql
  • The client is a statically compiled nanoc website:
    • Dependencies: webpack, typescript, react
  • The CLI controls the web server:
    • Start / stop web server
    • Run database migrations
    • Run developer console
  • Each component (server, client, cli) are separate packages in a monorepo
  • Easy to distribute as a RubyGem

Usage

CLI

Usage: twenty COMMAND [OPTIONS]

Commands:
  up             Start the twenty web server
  down           Stop the twenty web server
  connect        Connect a project to twenty
  disconnect     Disconnect a project from twenty
  migrate        Migrate the database
  console        Start the twenty developer console

Install

Twenty is distributed as a RubyGem:

$ gem install twenty

Sources

License

BSD Zero Clause.
See LICENSE